Showing SMS counters with 3rd party FEP on Symbian
This article explains how to show SMS counters using a 3rd party FEP input method which is based on the S60 Platform: FEP Example.
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.
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)
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 =
// 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.