In the S60 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. The UI components consist of data structures that are defined in resource files, and then are called from the classes controlling the UI implementation. When UI component implementation is split into these two approaches, it means that resources can be recompiled, for example for new languages, without having to recompile the application code.
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 with the SDK in the ./Epoc32/include subfolder
that are required for data structures used in the resource file. For more
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
with the SDK in the ./Epoc32/include subfolder that provides
a list of symbolic IDs that point to compiled resources. For more on S60 precompiled
options, see Precompiled resource values available from the S60 platform.
#include <appinfo.rh>
This is a preprocessor statement for an AVKON file
provided with the SDK 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.