×
Namespaces

Variants
Actions
Revision as of 17:16, 6 November 2008 by extkbeditor1 (Talk | contribs)

Showing SMS counters with 3rd party FEP on Symbian

From Nokia Developer Wiki
Jump to: navigation, search

Template:KBTS


Article Metadata
CompatibilityArticle
Keywords: CreateMessageLabelL, CAknNavigationDecorator, CAknNavigationControlContainer
Created: (03 Oct 2008)
Last edited: extkbeditor1 (06 Nov 2008)

Overview

This article explains how to show SMS counters using a 3rd party FEP input method which is based on the S60 Platform: FEP Example.

Description

According to the S60 Platform: FEP Example, you should use the method iNaviPane->CreateMessageLabelL(KNaviPaneTextPinYin), and then Push the label to the navi pane. This will, however, make the user lose the SMS counters in the SMS application.

Solution

In the S60 Platform: FEP Example, CreateMessageLabelL creates a new CAknNavigationDecorator object which covers the original navi pane which is sometimes used by another application (such as the SMS application). You can use the following solution to get the content of the original navi pane and add this content into the CAknNavigationDecorator object you created.

 void CFepIndicator::SetState(TAknEditingState aState)
{
.
.
.
else if (aState == ENumeric)
{
if (iNaviDecorator)
{
delete iNaviDecorator;
iNaviDecorator = NULL;
}
// Get original the pointer to CAknNavigationDecorator object
// from original navi pane
 
CAknNavigationDecorator* deco = iNaviPane->Top();
 
// If the original object is text or navi label type, retrieve
// its content
if( deco->ControlType() == CAknNavigationDecorator::EHintText
|| deco->ControlType() == AknNavigationDecorator::ENaviLabel )
{
CAknNaviLabel* label =
STATIC_CAST(CAknNaviLabel*, deco->DecoratedControl());
 
// After this, label->Text() retrieves the text used in the orig.
// label, which can then be added to the new navi label.
}
}

To get change events in the original navi pane, you need to create a MAknNaviDecoratorObserver and add it into the deco->SetNaviDecoratorObserver(). HandleNaviDecoratorEventL from MAknNaviDecoratorObserver can be used to check whether you need to update your navi pane.

54 page views in the last 30 days.