To define resources for an Options menu:
Determine the requirements of your application.
Declare the MENU_BAR
and MENU_TITLE
resource
statements:
Depending on your application's structure, declare menubar
= r_name4
in either the EIK_APP_INFO
or AVKON_VIEW
statements,
where r_name16
is a unique identifier in your application.
Create a resource statement for the menu bar.
The syntax is as follows:
RESOURCE MENU_BAR r_name4 { titles = { MENU_TITLE { menu_pane = r_name5; } }; }
,where:
r_name4
is the resource name that uniquely
identifies this RESOURCE statement in the application.
titles
is the name defined for an array
that contains the menu titles for the menu bar.
MENU_TITLE
is a structure defined in eikon.rh
.
Note that you may add as many MENU_TITLE
structures
as you desire. The application framework combines them together when constructing
the Options
menu. This feature allows you to break your Options
menu
up into different segments, which may be useful when constructing context
sensitive Options
menus. For more information, see Using menu sections in menu bar resource statements
Create a resource
statement for the MENU_PANE
resource:
The MENU_PANE
resource is defined in eikon.rh
,
and contains an array of items defined by the MENU_ITEM
structure.
The syntax is as follows:
RESOURCE MENU_PANE r_name5 { items = { MENU_ITEM { command = enumerated command; txt = STRING_r_string1; }, MENU_ITEM { command = enumerated command other; txt = STRING_r_string2; } }; }
, where:
r_name5
is the resource name that uniquely
identifies this resource statement in this application.
items
is the name defined for an array
that contains the items for the menu pane.
MENU_ITEM
is a structure defined in eikon.rh
.
The MENU_ITEM
structure is used to define the option
presented. The typical syntax is as follows:
MENU_ITEM { command = enumerated command; txt = STRING_r_string1; }
, where:
command
is an enumerated value for the
command that is associated with the button. The value used can be provided
either by the underlying
S60 platform or by your
application. The are collected by the event loop of the application
framework and delivered to your application for command
handling
txt
defines the text that is displayed
in the Options
menu.
Create submenus as needed:
Menu panes can also be nested by using the cascade declaration (illustrated in Figure by the arrow to the right of the Call option).
The following example creates a menu pane with two items, each of which opens up another menu pane as a submenu.
RESOURCE MENU_PANE r_name7 { items = { MENU_ITEM { cascade = r_name8; txt = STRING_r_string3; }, MENU_ITEM { cascade = r_name9; txt = STRING_r_string4; } }; }
The resource statements for r_name8
and r_name9
need
to be defined in a menu pane structure in the resource file.
txt
defines the text that is displayed in the Options
menu.
Note that it is also possible to have icons associated with the menu items in the pane.
The Options
Menu API provides access to the MENU_BAR
resource.