In the Symbian platform, resource files are used to define UI components such as status panes, CBA (Control Button Area) buttons, menu bars, views, dialogs, strings, and constants used in applications.
For more information about resource files, see Managing resource files.
// RESOURCE IDENTIFIER NAME HEWB // 4 letter ID
This NAME statement defines the mandatory identifier for this resource file, which is unique within this application. For more information, see Resource file structure.
// INCLUDES #include <eikon.rh> #include <avkon.rh>
These are preprocessor statements for EIKON and AVKON files provided in the ./Epoc32/include sub-folder. They are required for data structures used in the resource file. For more information on the available preprocessor statements in resource files, see Resource file structure.
#include <avkon.rsg>
These is a preprocessor statement for a generated resource file provided in the ./Epoc32/include subfolder that provides a list of symbolic IDs that point to compiled resources. For more on Symbian precompiled options, see Precompiled resource values available from the Symbian platform.
#include <appinfo.rh>
This is a preprocessor statement for an AVKON file provided in the ./Epoc32/include subfolder that is required for the data structure used for the localizable information for the application registration resource file.
#include "HelloWorldBasic.hrh"
This is a preprocessor statement for the HelloWorldBasic custom command IDs. For more on custom command IDs, see Creating resource header files.
#include "HelloWorldBasic.rls"
This is a preprocessor statement for the file used to manage building the localized strings for the HelloWorldBasic application. For more on internationalization and localization, see Internationalization and localization.
// RESOURCE DEFINITIONS // ----------------------------------------------------------------------------- // // Define the resource file signature // This resource should be empty. // // ----------------------------------------------------------------------------- // RESOURCE RSS_SIGNATURE { }
This is the required RESOURCE definition that indicates the version of this resource file. For this application, no version is defined.
// ----------------------------------------------------------------------------- // // Default Document Name // // ----------------------------------------------------------------------------- // RESOURCE TBUF r_default_document_name { buf="HEWB"; }
This is the required RESOURCE definition that defines the name used if the helloworldbasicdocument class needs to store a document.
// ----------------------------------------------------------------------------- // // Define default menu and CBA key. // // ----------------------------------------------------------------------------- // RESOURCE EIK_APP_INFO { menubar = r_helloworldbasic_menubar; cba = R_AVKON_SOFTKEYS_OPTIONS_EXIT; }
This is the required RESOURCE definition that defines the resource used for constructing the menu bar and the Control Button Area (CBA) buttons used in the application. The menu bar is constructed later in this resource file. The CBA buttons declaration uses a precompiled symbolic ID from the avkon.rsg file, which in turns points to a compiled resource that provides an Options text above the left softkey and an Exit text above the right softkey. The application framework handles the event generated by selection of the Options softkey and opens the MENU_PANE resource. Selection of the Exit softkey generates a EAknSoftkeyExit event that needs to be handled by your code. For more information on event handling, see Event handling.
// ----------------------------------------------------------------------------- // // r_helloworldbasic_menubar // Menubar for HelloWorldBasic example // // ----------------------------------------------------------------------------- // RESOURCE MENU_BAR r_helloworldbasic_menubar { titles = { MENU_TITLE { menu_pane = r_helloworldbasic_menu; } }; }
This RESOURCE definition defines the r_helloworldbasic_menubar menu bar declared in EIK_APP_INFO. The MENU_TITLE statement maps to the Options softkey, which opens the defined MENU_PANE resources when selected.
// ----------------------------------------------------------------------------- // // r_helloworldbasic_menu // Menu for "Options" // // ----------------------------------------------------------------------------- // RESOURCE MENU_PANE r_helloworldbasic_menu { items = { // added the new Options menu command here MENU_ITEM { command = EHelloWorldBasicCommand1; txt = STRING_hewb_command1; }, MENU_ITEM { command = EHelloWorldBasicCommand2; txt = STRING_hewb_command2; }, MENU_ITEM { command = EHelloWorldBasicCommand3; txt = STRING_r_hewb_command3; }, MENU_ITEM { command = EAknSoftkeyExit; txt = STRING_r_hewb_exit; } }; }
This RESOURCE definition defines the r_helloworldbasic_menu menu opened when Option is selected. Four menu items are offered: Hello, Hello from file, Hello from edit, and Exit. The command definitions indicate which event is returned by the application framework when the option is selected and the txt declarations provide the strings used in the menu. The enumerated command command IDs here are listed in the helloworldbasic.hrh file, with the exception of EAknSoftkeyExit, which is a command ID available from avkon.hrh.
// ----------------------------------------------------------------------------- // // Resources for messages. // // ----------------------------------------------------------------------------- // RESOURCE TBUF32 r_hewb_command1_text { buf=STRING_r_hewb_command1_text; } RESOURCE TBUF32 r_hewb_file_text { buf=STRING_r_hewb_file_text; } RESOURCE TBUF32 r_hewb_caption_string { buf=STRING_r_hewb_caption_string; }
These RESOURCE definitions define TBUF32 resources that can be read in the application implementation code later with the StringLoader class.
// ---------------------------------------------------------------------------- // // r_helloworldbasic_localisable_app_info // // ---------------------------------------------------------------------------- // RESOURCE LOCALISABLE_APP_INFO r_helloworldbasic_localisable_app_info { short_caption = STRING_hewb_caption_string; caption_and_icon = CAPTION_AND_ICON_INFO { caption = STRING_hewb_caption_string; number_of_icons = 1; icon_file = "\\resource\\apps\\Helloworldbasic_aif.mif"; }; }
This RESOURCE definition defines the localizable information for the HelloWorldBasic registration file, where:
r_helloworldbasic_localisable_app_info is the resource identifier
STRING_hewb_caption_string is the symbolic ID for HelloWorld, which is used for both the short and long caption
there is one icon for HelloWorldBasic and it is in the \\resource\\apps\\Helloworldbasic_aif.mif file
// ---------------------------------------------------------------------------- // // r_dialog_text_edit_query // // ---------------------------------------------------------------------------- // RESOURCE DIALOG r_dialog_text_edit_query { flags = EGeneralQueryFlags; buttons = R_AVKON_SOFTKEYS_OK_CANCEL; items = { DLG_LINE { type = EAknCtQuery; id = EGeneralQuery; control = AVKON_DATA_QUERY { layout = EDataLayout; label = ""; control = EDWIN { width = 32; maxlength = 32; lines = 1; }; }; } }; } // End of File
This RESOURCE definition defines the resource required for a dialog used in theHelloWorldBasic application. For more information on defining DIALOG resources, see Using Dialog API.