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.
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. For more information, see Symbian C++ API specifications.