Please note that as of October 24, 2014, the Nokia Developer Wiki will no longer be accepting user contributions, including new entries, edits and comments, as we begin transitioning to our new home, in the Windows Phone Development Wiki. We plan to move over the majority of the existing entries. Thanks for all your past and future contributions.

Showing SMS counters with 3rd party FEP on Symbian

From Wiki
Jump to: navigation, search

Archived.pngArchived: This article is archived because it is not considered relevant for third-party developers creating commercial solutions today. If you think this article is still relevant, let us know by adding the template {{ReviewForRemovalFromArchive|user=~~~~|write your reason here}}.

The article is believed to be still valid for the original topic scope.

Article Metadata
Keywords: CreateMessageLabelL, CAknNavigationDecorator, CAknNavigationControlContainer
Created: User:Symbian expert 0 (02 Oct 2008)
Last edited: lpvalente (10 Mar 2013)


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)
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.

This page was last modified on 10 March 2013, at 13:52.
33 page views in the last 30 days.