Creating your own status pane resources

To override the default status pane resource structure and create your own:

  1. Determine your application requirements for the status pane.

  2. Declare status_pane = r_name15 in the EIK_APP_INFO statement, where r_name15 is a unique identifier for a status pane resource statement.

  3. Create a resource statement for the status pane. Using the resource identifier in the step above, the syntax is as follows:

    RESOURCE STATUS_PANE_APP_MODEL r_name15
    	{
    	layout=C preprocessor macro;
    	panes  = 
    		{
    		SPANE_PANE
    			{
    			}
    		};
    	} 

    , where

    • layout is a preprocessor macro available in uikon.hrh that defines the layout used by your application on startup. The default value is EEikStatusPaneUseDefaults. To change the layout, choose a different preprocessor macro.

    • panes is an array that contains a SPANE_PANE resource that provides the resource declaration to override the default behaviour.

  4. Define the SPANE_PANE resource. The syntax is as follows:

    RESOURCE SPANE_PANE
    	{
    	LONG id;
    	WORD flags=EEikStatusPaneServerOwned;
    	WORD type;
    	LLINK resources=0;
    	}

    where,

    • id is an enumerated value defined in avkon.hrh that defines which element of the status pane is to be overridden

      For example, EEikStatusPaneUidNavi indicates that the resource is for the Navi pane subpane.

    • flags is defined in uikon.rh and is EEikStatusPaneServerOwned by default, meaning that the pane is owned by the window server.

    • type is a value defined in the avkon.hrh file that maps to the type of control for which you are defining a resource. For example EAknCtNaviPane specifies a Navi Pane control.

    • resource specifies the location where the Navi Pane is defined. For example, r_navi_decorator is used in the next step.

  5. Define the resources specified in the SPANE_PANE resource. Applications can define the Title Pane, Context Pane, and Navi Pane subpanes.

    For example, to define a Navi Pane, the syntax is:

    RESOURCE NAVI_DECORATOR r_navi_decorator
        {
        type = ENaviDecoratorLabel;
        control = NAVI_LABEL
            {
            txt="label";
            };
        }
        }

    where,

    • type is an enumerated value in avkon.hrh that defines how the resource is used.

    • control is another resource structure. Another possible value is TAB_GROUP. These values are defined in avkon.rh.

    • txt defines a string that is mapped to a corresponding text string in the .rls localization file. This value is specific to the NAVI_LABEL resource.

    The resource for the Title Pane is TITLE PANE and the resource for Context Pane is CONTEXT PANE. Both are declared in avkon.rh. Note that the id and type values in the SPANE resource should match accordingly.