diff -r 666f914201fb -r 2fe1408b6811 epoc32/include/mw/avkon.rh --- a/epoc32/include/mw/avkon.rh Tue Nov 24 13:55:44 2009 +0000 +++ b/epoc32/include/mw/avkon.rh Tue Mar 16 16:12:26 2010 +0000 @@ -1,1 +1,993 @@ -avkon.rh +/* +* Copyright (c) 2002-2008 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members +* which accompanies this distribution, and is available +* at the URL "http://www.symbianfoundation.org/legal/licencesv10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Resource structure definitions for Avkon. +* +*/ + + +#ifndef __AVKON_HRH__ +#include +#endif + +#if !defined(__BADEF_RH__) +#include +#endif + +#if !defined(__UIKON_HRH__) +#include +#endif + +STRUCT AVKON_SYSTEM_FONT + { + LONG fontuid; // a value from fontids.hrh + STRUCT named_font; // this must be a NAMED_FONT structure type + } + +STRUCT NAVI_DECORATOR + { + WORD type=ENaviDecoratorControlNone; + STRUCT control; + } + +STRUCT TITLE_PANE + { + LTEXT txt=""; + LTEXT bmpfile=""; + WORD bmpid=0xffff; + WORD bmpmask=0xffff; + } + +STRUCT CONTEXT_PANE + { + LTEXT bmpfile=""; + WORD bmpid=0xffff; + WORD bmpmask=0xffff; + } + +STRUCT TAB_GROUP + { + WORD tab_width = EAknTabWidthWithTwoTabs; // two tabs + WORD active = 0; // index of the first active tab + STRUCT tabs[]; + } + +STRUCT TAB + { + WORD id=0; + LTEXT txt=""; + LTEXT bmpfile=""; + WORD bmpid=0xffff; + WORD bmpmask=0xffff; + } + +STRUCT NAVI_LABEL + { + LTEXT txt=""; + } + +STRUCT NAVI_IMAGE + { + LTEXT bmpfile=""; + WORD bmpid=0xffff; + WORD bmpmask=0xffff; + } + +STRUCT SIGNAL_PANE + { + WORD level = 0; + } + +STRUCT BATTERY_PANE + { + WORD level = 0; + } + +STRUCT INDICATOR_PANE + { + STRUCT indicators[]; + } + +STRUCT INDICATOR + { + WORD uid; + WORD npriority=0xffff; + WORD wpriority=0xffff; + LTEXT bmpfile=""; + STRUCT states[]; + } + +STRUCT INDICATOR_STATE + { + WORD id; + STRUCT icons[]; + } + +STRUCT INDICATOR_ICON + { + WORD narrowbmpid=0xffff; + WORD narrowbmpmask=0xffff; + WORD widebmpid=0xffff; + WORD widebmpmask=0xffff; + } + +STRUCT AVKON_VIEW + { + BYTE version=0; // resource struct version, do not change. + LLINK hotkeys=0; + LLINK menubar=0; + LLINK cba=0; + LLINK toolbar=0; + LLINK extension=0; // reserved for future extensions + } + +STRUCT AVKON_NOTE + { + WORD layout; + LTEXT singular_label; + LTEXT plural_label=""; + LTEXT imagefile=""; + WORD imageid=0xffff; + WORD imagemask=0xffff; + LTEXT iconfile=""; + WORD iconid=0xffff; + WORD iconmask=0xffff; + LLINK animation=0; + WORD flags=0; //TNoteFlags (defined in aknnoteattributes.h) + } + +STRUCT NOTE_COMPONENT + { + WORD component_type; + WORD x; + WORD y; + WORD width; + WORD height; + } + +STRUCT NOTE + { + STRUCT components[]; + } + +STRUCT AVKON_CONFIRMATION_QUERY + { + WORD layout; + LTEXT label; + LTEXT bmpfile=""; + WORD bmpid=0xffff; + WORD bmpmask=0xffff; + LLINK animation=0; + } + +STRUCT AVKON_DATA_QUERY + { + WORD layout; + LTEXT label; + STRUCT control; + } + +STRUCT AVKON_MESSAGE_QUERY + { + LTEXT message = ""; + } + +STRUCT AVKON_MULTI_LINE_DATA_QUERY + { + WORD layout; + LTEXT firstlabel; + LLINK firstcontrol; + LTEXT secondlabel; + LLINK secondcontrol; + } + + +// use this with CAknQueryDialog. +// This is for one dialog DLG line with EAknCtListQueryControl +// +// The list query window type is determined from EAknCtSinglePopupMenuListBox - if you want to +// have your own borders, derive from CAknListQueryDialog and override some methods. + +STRUCT AVKON_LIST_QUERY_CONTROL + { + WORD listtype; // type of the list, for example EAknCtSinglePopupMenuListBox (window type is determined from this) + STRUCT listbox; // LISTBOX resource, use AVKON_LIST_QUERY_LIST or AVKON_MULTISELECTION_LIST_QUERY_LIST + LTEXT heading = ""; + LTEXT bmpfile=""; + WORD bmpid=0xffff; + WORD bmpmask=0xffff; + LLINK animation=0; + } + +STRUCT AVKON_HEADING + { + LTEXT label = ""; // default is no heading + LTEXT bmpfile=""; + WORD bmpid=0xffff; + WORD bmpmask=0xffff; + LLINK animation=0; + LLINK headinglayout = R_AVKON_LIST_HEADING_PANE; + } + +// CAknPopupField +STRUCT POPUP_FIELD + { + WORD flags=0; // permitted flags: EAknPopupFieldFlagAllowsUserDefinedEntry + WORD width=0; // in characters + LTEXT other=""; // if non-empty, replaces + LLINK emptynote = 0; // note to be displayed if popupfield is empty + LTEXT empty=""; // text to display if popupfield is empty + LTEXT invalid = ""; // text to display if popupfield is invalid + } + +STRUCT POPUP_FIELD_TEXT + { + STRUCT popupfield; // only use POPUP_FIELD here + LLINK textarray = 0; // resource ID of an array of text + WORD active = 0; // zero based, item in textarray to be initially selected + } + +STRUCT POPUP_FIELD_SELECTION_BMP + { + LTEXT bmpfile=""; + WORD bmpidon=0xffff; + WORD bmpmaskon=0xffff; + WORD bmpidoff=0xffff; + WORD bmpmaskoff=0xffff; + } + +STRUCT SLIDER + { + WORD layout; + WORD minvalue; + WORD maxvalue; + WORD step; + WORD valuetype=EAknSliderValueBareFigure; + WORD decimalplaces=0; + LTEXT singular_valuelabel = ""; + LTEXT minlabel=""; + LTEXT maxlabel=""; + LTEXT valuelabel=""; + LLINK graphical_image=0; + } + +/** used with CAknVolumeControl + * see avkon.hrh for the flag definitions + * This struct uses default values for volume range: + * ESettingsVolumeControl, EDynRangeSettingsVolumeControl: 1-10 + * ENaviPaneVolumeControl, EPopupVolumeControl, EDynRangeNaviPaneVolumeControl, + * EDynRangePopupVolumeControl, ESmallPopupVolumeControl, + * ESmallPopupVolumeControlWithPercent: 0-10 + */ +STRUCT VOLUME + { + WORD flags; + WORD value; + LTEXT bmpfile=""; + WORD bmpid=0xffff; + WORD bmpmask=0xffff; + } + +/** used with CAknVolumeControl + * This struct is used with flags defined in + * TAknVolumeControlDynamicLayouts + * see avkon.hrh for the flag definitions + * @since 3.2 + */ +STRUCT DYNAMIC_VOLUME + { + WORD identifier = 0xffff; // Do not change + WORD flags; + WORD value; + LTEXT bmpfile=""; + WORD bmpid=0xffff; + WORD bmpmask=0xffff; + WORD minvalue = 0; + WORD maxvalue = 10; + } + +STRUCT NUMSECRETED + { + WORD num_code_chars=8; + } + +STRUCT GRID_STYLE + { + WORD layoutflags = 0; + WORD primaryscroll = 0; + WORD secondaryscroll = 0; + WORD itemsinprimaryorient = 0; + WORD itemsinsecondaryorient = 0; + WORD height = 0; + WORD width = 0; + WORD gapwidth = 0; + WORD gapheight = 0; + } + +STRUCT GRID + { + BYTE version = 0; + LONG flags = 0; + WORD height = 5; // in items + WORD width = 10; // in chars + LLINK array_id = 0; + LTEXT emptytext = ""; + LLINK style = 0; + } + +STRUCT AVKON_SETTING_PAGE + { + WORD number = EAknSettingPageNoOrdinalDisplayed; + LTEXT label; + LTEXT hint_text; + LLINK softkey_resource = 0; + LLINK menubar= 0; + WORD type=0xffff; + LLINK editor_resource_id = 0; + LLINK invalid_contents_softkey_resource = 0; + LLINK extension = 0; + } + +STRUCT AVKON_SETTING_ITEM_LIST + { + WORD flags = 0; // Allowed values: EAknSettingItemListNumberedStyle + LTEXT title = ""; + WORD initial_number = 1; + STRUCT items[]; + } + +STRUCT AVKON_SETTING_ITEM + { + WORD identifier = 0; + LTEXT name =""; + LLINK setting_page_resource = 0; + WORD type=0xffff; + LLINK setting_editor_resource = 0; + LLINK associated_resource = 0; + LTEXT empty_item_text = ""; + LTEXT compulsory_ind_string = ""; + LLINK reserved = 0; // Added for extensions + } + +STRUCT AVKON_PASSWORD_CONFIRMATION + { + LLINK password_query_resource = 0; + LLINK success_note_resource = 0; + LLINK failure_note_resource = 0; + } + +STRUCT AVKON_ENUMERATED_TEXT + { + WORD value = 0 ; + LTEXT text; + } + +STRUCT AVKON_POPUP_SETTING_TEXTS + { + WORD flags = 0; + LLINK setting_texts_resource = 0; + LLINK popped_up_texts_resource = 0; + LLINK reserved = 0; + } + +STRUCT AVKON_SEARCH_FIELD + { + } + +STRUCT AVKON_LISTBOX_LINES + { + STRUCT vline1; + STRUCT vline2; + STRUCT hline; + } + +// Bitmap Animation +STRUCT BMPANIM_DATA + { + BYTE identifier = 0; // Do not change, used to identify the used resource struct. + WORD frameinterval = -1; + WORD playmode = 0; + BYTE flash = 0; + LTEXT bmpfile = ""; + LLINK frames = 0; + LLINK backgroundframe = 0; + } + +STRUCT BMPANIM_FRAME + { + WORD time = -1; + WORD posx = 0; + WORD posy = 0; + WORD bmpid = -1; + WORD maskid = -1; + } + +// Resource-based layout resources (Deprecated) +// These does not define absolute coordinates => resizing these layouts is possible! +// +// (those which does not mention column or form in their name could be used later by +// other controls for their layout - there will be generic resource reader for these) + +// this is used with listboxes +STRUCT AVKON_LB_LAYOUT_POS + { + WORD l=ELayoutEmpty; + WORD t=ELayoutEmpty; + WORD r=ELayoutEmpty; + WORD b=ELayoutEmpty; + WORD W=ELayoutEmpty; + WORD H=ELayoutEmpty; + } + +// this is used with listboxes too +STRUCT AVKON_LB_LAYOUT_GFX + { + WORD id; + WORD C=ELayoutEmpty; + WORD l=ELayoutEmpty; + WORD t=ELayoutEmpty; + WORD r=ELayoutEmpty; + WORD b=ELayoutEmpty; + WORD W=ELayoutEmpty; + WORD H=ELayoutEmpty; + } + +// This is used with listboxes +STRUCT AVKON_LB_LAYOUT_TEXT + { + WORD id; + WORD font; WORD C; WORD lm; WORD rm; WORD B; WORD W; WORD align; + } + +// This is used with CAknLayoutUtils::LayoutControl() +STRUCT AVKON_LAYOUT_CONTROL + { + WORD C=ELayoutEmpty; + WORD l=ELayoutEmpty; + WORD t=ELayoutEmpty; + WORD r=ELayoutEmpty; + WORD b=ELayoutEmpty; + WORD W=ELayoutEmpty; + WORD H=ELayoutEmpty; + } + +// This is used with TAknLayoutRect +STRUCT AVKON_LAYOUT_RECT + { + WORD C=ELayoutEmpty; + WORD l=ELayoutEmpty; + WORD t=ELayoutEmpty; + WORD r=ELayoutEmpty; + WORD b=ELayoutEmpty; + WORD W=ELayoutEmpty; + WORD H=ELayoutEmpty; + } + +// this is used with AknListBoxLayouts::LayoutImage +#define AVKON_LAYOUT_IMAGE AVKON_LAYOUT_RECT + +STRUCT AVKON_LAYOUT_TEXT + { + WORD font; + WORD C; + WORD l; + WORD r; + WORD B; + WORD W; + WORD J; + } + +// This should be used with CAknLayoutUtils::LayoutEdwin +STRUCT AVKON_LAYOUT_EDWIN + { + WORD font; + WORD C; + WORD l; + WORD r; + WORD B; + WORD W; + WORD J; + WORD lines=1; // Number of lines shown + WORD nextB=0; // Second row's baseline position + } + +// This can be used with CAknLayoutUtils::LayoutLabel to layout CEikLabel's. +STRUCT AVKON_LAYOUT_LABEL + { + WORD font; + WORD C; + WORD l; + WORD r; + WORD B; + WORD W; + WORD J; + WORD nextB=0; + } + +// This is used with CAknLayoutUtils::LayoutPopupField() +STRUCT AVKON_LAYOUT_FORM_FIELD_POPUP_PANE + { + WORD font; + WORD C = ELayoutEmpty; + WORD l = ELayoutEmpty; + WORD t = ELayoutEmpty; + WORD r = ELayoutEmpty; + WORD b = ELayoutEmpty; + WORD W = ELayoutEmpty; + WORD H1 = ELayoutEmpty; + WORD H2 = ELayoutEmpty; + WORD H3 = ELayoutEmpty; + WORD H4 = ELayoutEmpty; + WORD H5 = ELayoutEmpty; + WORD H6 = ELayoutEmpty; + WORD lines = 1; // Number of lines shown + } + +STRUCT AVKON_LB_LAYOUT_AREA + { + WORD id; + WORD x1; WORD y1; + WORD x2; WORD y2; + } + +STRUCT AVKON_LB_LAYOUT_COMMAND + { + WORD id; + WORD cmd; + WORD data=0; + } + +// This is only for listboxes, use +// AknLayoutUtils/TAknLayoutText/TAknLayoutRect for getting correct layouts. +STRUCT AVKON_LAYOUT_MANAGER + { + STRUCT gfx[]; // AVKON_LAYOUT_GFX + STRUCT text[]; // AVKON_LAYOUT_TEXT + STRUCT cmds[]; // AVKON_LAYOUT_COMMAND + STRUCT area[]; // AVKON_LAYOUT_AREA + STRUCT pos; // AVKON_LAYOUT_POS + } + +// This should be used with AknEditUtils::ConstructEditingL +STRUCT AVKON_CONFIG_EDWIN + { + WORD editingSpace; // Max number of character in a editor field + WORD editingWindow; // Maximum number of lines in a editor field + WORD characterCase; // EAknEditorCharactersUpperCase, EAknEditorCharactersLowerCase, EAknEditorCharactersTextCase + WORD justification; // EAknEditorAlignNone, EAknEditorAlignCenter, EAknEditorAlignLeft, EAknEditorAlignRight + WORD allowedToMoveInsertionPoint; + WORD cursorYesNo; + WORD overflowYesNo; + } + +STRUCT AVKON_CBA_BUTTON + { + BYTE version=KAknCbaVersion; + WORD id=0; + WORD longpressid=0; + LTEXT txt=""; + LTEXT bmpfile=""; + WORD bmpid=0xffff; // -1 + WORD bmpmask=0xffff; // -1 + } + +// Special Character Table + +STRUCT SPECIAL_CHAR_TABLE + { + STRUCT contents[]; // SCT_CHAR_SET + } + +STRUCT SCT_CHAR_SET + { + WORD id; + LTEXT chars = ""; + } + +// --------------------------------------------------------- +// Resource structure for CAknIconArray class. +// --------------------------------------------------------- +// +STRUCT AKN_ICON_ARRAY + { + WORD type = EAknIconArraySimple; + // Bitmap file name + LTEXT bmpfile; + // Array of AKN_ICON structures. + STRUCT icons[]; + } + +STRUCT AKN_ICON_ARRAY_ARRAY + { + WORD type = EAknIconArrayComplex; + STRUCT iconarrays[]; // AKN_ICON_ARRAY + } + +// --------------------------------------------------------- +// One icon in AKN_ICON_ARRAY +// --------------------------------------------------------- +// +STRUCT AKN_ICON + { + // Id of the icon bitmap + LONG iconId; + // Id of the mask bitmap + LONG maskId; + } + +// Avkon KeySounds + +STRUCT AVKON_SOUND_INFO + { + WORD signature1 = 0x1234; + WORD signature2 = 0x5678; + WORD sid; + WORD priority = EAvkonKeyClickPriority; + LONG preference = EAvkonKeyClickPreference; + LTEXT file=""; + WORD frequency=0; + LONG ms=0; + WORD sequencelength=0; + BYTE sequence[]; + BYTE volume=9; // default to loudest value + } + +STRUCT AVKON_SOUND_INFO_LIST + { + STRUCT list[]; + } + +STRUCT AVKON_SKEY_INFO + { + WORD sid = EAvkonSIDDefaultSound; + WORD key; + BYTE type = ESKeyTypeShort; + } + +STRUCT AVKON_SKEY_LIST + { + STRUCT list[]; + } + +STRUCT PHONE_NUMBER_EDITOR + { + WORD maxChars=30; + WORD maxLines; + LTEXT truncation=""; + STRUCT formats[]; + } + +STRUCT PHONE_NUMBER_EDITOR_FORMAT + { + WORD top; + WORD left; + WORD bottom; + WORD right; + LONG border=0; + WORD lines; + WORD bottomBaselineOffset; + WORD baselineSeparation; + WORD font; + } + +// CAknPopupSettingList +STRUCT POPUP_SETTING_LIST + { + WORD flags; // permitted flags: EAknPopupSettingListFlagAllowsUserDefinedEntry + WORD width; // in characters. + LTEXT other="Other ..."; + LTEXT empty_text="No options"; + LLINK new_item_setting_page_resource = 0; // These 3 to allow setting page launch from list pane + WORD type=0xffff; + LLINK new_item_setting_editor_resource = 0; + } + +// This comes from DIALOG resource and must be updates accordingly when +// DIALOG resource is changed. see eikon.rh +STRUCT AVKON_LIST_QUERY + { + LONG flags = EGeneralQueryFlags; + LTEXT xxxx1 = ""; + LLINK xxxx2 = 0; + LLINK softkeys = R_AVKON_SOFTKEYS_OK_CANCEL__OK; // CBA + STRUCT items[]; // AVKON_LIST_QUERY_DLG_LINE + LLINK xxxx3 = 0; + } + +STRUCT AVKON_MULTISELECTION_LIST_QUERY + { + LONG flags = EGeneralQueryFlags; + LTEXT xxxx1 = ""; + LLINK xxxx2 = 0; + LLINK softkeys = R_AVKON_SOFTKEYS_OK_CANCEL__MARK; // CBA + STRUCT items[]; // AVKON_MULTISELECTION_LIST_QUERY_DLG_LINE + LLINK xxxx3 = 0; + } + +STRUCT AVKON_LIST_QUERY_DLG_LINE + { + WORD type = EAknCtListQueryControl; + LTEXT prompt = ""; + WORD id = EListQueryControl; + LONG itemflags = 0; + STRUCT control; // AVKON_LIST_QUERY_CONTROL + LTEXT trailer = ""; + LTEXT bmpfile = ""; + WORD bmpid = 0xffff; + WORD bmpmask = 0xffff; + LTEXT tooltip = ""; + } + +STRUCT AVKON_MULTISELECTION_LIST_QUERY_DLG_LINE + { + WORD type = EAknCtListQueryControl; + LTEXT prompt = ""; + WORD id = EListQueryControl; + LONG itemflags = 0; + STRUCT control; // AVKON_LIST_QUERY_CONTROL + LTEXT trailer = ""; + LTEXT bmpfile = ""; + WORD bmpid = 0xffff; + WORD bmpmask = 0xffff; + LTEXT tooltip = ""; + } + +STRUCT AVKON_LIST_QUERY_LIST + { + BYTE version = 0; + LONG flags = EAknListBoxMenuList; + WORD height = 5; + WORD width = 10; + LLINK array_id = 0; + } + +STRUCT AVKON_MULTISELECTION_LIST_QUERY_LIST + { + BYTE version = 0; + LONG flags = EAknListBoxStylusMultiselectionList; + WORD height = 5; + WORD width = 10; + LLINK array_id = 0; + } + +// LISTBOX resources: +STRUCT AVKON_SELECTION_LIST + { + BYTE version = 0; + LONG flags = EAknListBoxSelectionList; + WORD height = 5; + WORD width = 10; + LLINK array_id = 0; + } +STRUCT AVKON_MARKABLE_LIST + { + BYTE version = 0; + LONG flags = EAknListBoxMarkableList; + WORD height = 5; + WORD width = 10; + LLINK array_id = 0; + } + +STRUCT AVKON_MULTISELECTION_LIST + { + BYTE version = 0; + LONG flags = EAknListBoxMultiselectionList; + WORD height = 5; + WORD width = 10; + LLINK array_id = 0; + } + +STRUCT AVKON_MENU_LIST + { + BYTE version = 0; + LONG flags = EAknListBoxMenuList; + WORD height = 5; + WORD width = 10; + LLINK array_id = 0; + } + +STRUCT AVKON_INTEGER_EDWIN + { + WORD maxlength = 0; + LONG min = -99999999; + LONG max = 99999999; + LONG unset_value = -100000000; + LLINK extension1 = 0; + LLINK extension2 = 0; + } + +// Avkon note wrappers + +STRUCT AKN_NOTE_WRAPPER + { + // Id of the dialog resource for this note + LLINK resId; + // see TAknNoteDialogTimeout + LONG timeout; + // see TAknNoteDialogTone + WORD tone = -1; + // Prompt text + LTEXT text = ""; + } + +STRUCT AVKON_GROUPED_NOTE_TEXTS + { + LLINK singular_label; // must point to resource of type TBUF + LLINK plural_label; // must point to resource of type TBUF + WORD flags = 0; // for future proofing + } + +// DEPRECATED. +STRUCT AKN_SELECTION_LIST + { + WORD flags = 0; // see avkon.hrh / EAknFlagFind etc.. + WORD listbox = EAknCtSingleListBox; // listbox layout + LLINK menubar = 0; // MENUBAR resource + LLINK dialogresource = R_AKN_SELECTION_LIST_DIALOG; + } + +STRUCT AVKON_UNUSED + { + } + +STRUCT AVKON_COLOUR_SELECTION_GRID + { + LTEXT nonetext = ""; + STRUCT gridcontrol; // GRID + } + +STRUCT AVKON_LIST_QUERY_CONTROL_WITH_MSGBOX + { + WORD listtype = EAknListQueryWithMsgBox; + WORD actuallisttype; + STRUCT listbox; + LTEXT message = ""; + LTEXT heading = ""; + LTEXT bmpfile = ""; + WORD bmpid = 0xffff; + WORD bmpmask = 0xffff; + LLINK animation = 0; + } + +// resource structures for CAknStylusActivatedPopUpContent +STRUCT AVKON_STYLUSACTIVATEDPOPUP_CONTENT + { + LTEXT titletext = ""; + LTEXT infotext = ""; + + STRUCT cmdlinks[]; // AVKON_STYLUSACTIVATEDPOPUP_LINK + LLINK extension = 0; // for future extensions + } + +STRUCT AVKON_STYLUSACTIVATEDPOPUP_LINK + { + BYTE linkid; // use TAknStylusPopupCmdLinkIds, see avkon.hrh + LTEXT linktext = ""; + LLINK extension = 0; // for future extensions + } + +// Skinned bitmap Animation +// Always use BMPANIM_FRAME_SKINNED with BMPANIM_DATA_SKINNED +STRUCT BMPANIM_DATA_SKINNED + { + BYTE identifier = KAknBMPAnimVersion; // Do not change, used to identify the used resource struct. + LLINK skinanimationid = -1; // First try to create animation by using this id + WORD frameinterval = -1; + WORD playmode = 0; + BYTE flash = 0; + LTEXT bmpfile = ""; + LLINK frames = 0; + LLINK backgroundframe = 0; + } + +STRUCT BMPANIM_FRAME_SKINNED + { + WORD time = -1; + WORD posx = 0; + WORD posy = 0; + WORD bmpid = -1; + WORD maskid = -1; + LLINK majorskinid = -1; + LLINK minorskinid = -1; + } + +// --------------------------------------------------------------------------- +// SCT CATEGORY BUTTONS resources: +// define the category button(s) +// --------------------------------------------------------------------------- +// +STRUCT AVKON_SCT_CATEGORY_BUTTONS + { + STRUCT category_buttons[]; // AVKON_SCT_CATEGORY_BUTTON + } + +// --------------------------------------------------------------------------- +// SCT CATEGORY BUTTON resources +// define a category button +// --------------------------------------------------------------------------- +// +STRUCT AVKON_SCT_CATEGORY_BUTTON + { + WORD categorybuttonid; // TAknSCTCategoryButtons (defined on avkon.hrh) + WORD id; // SCT enumerations (e.g. EAknSCTHalfCase) (defined on avkon.hrh) + LLINK button; // AVKON_BUTTON + } + +// --------------------------------------------------------------------------- +// AVKON_NOTE_SKINNED +// Struct for defining a skinnable Avkon note, otherwise similar as AVKON_NOTE. +// @since S60 5.0 +// --------------------------------------------------------------------------- +// +STRUCT AVKON_NOTE_SKINNED + { + WORD layout; // Layout. + LTEXT singular_label; // Singular label. + LTEXT plural_label = ""; // Plural label. + LTEXT imagefile = ""; // Image file name (including path). + WORD imageid = 0xffff; // Image id. + WORD imagemask = 0xffff; // Image mask. + LTEXT iconfile = ""; // Icon file name (including path). + WORD iconid = 0xffff; // Icon id. + WORD iconmask = 0xffff; // Icon mask. + LLINK animation = 0; // Animation. + + // EAknNoteFlagWithSkinnableGraphics is used to distinguish AVKON_NOTE_SKINNED + // from AVKON_NOTE. Therefore it must always be set when using AVKON_NOTE_SKINNED. + // Other flags may also be set, and they have the same behaviour as AVKON_NOTE. + WORD flags = EAknNoteFlagWithSkinnableGraphics; + + LLINK image_majorskinid = -1; // Major skin id for image, see AknsConstants.h. + LLINK image_minorskinid = -1; // Minor skin id for image, see AknsConstants.h. + } + +// --------------------------------------------------------------------------- +// AVKON_INDICATOR_POPUP_ITEM +// Resource structure for universal indicator pane items. +// @since 5.0 +// --------------------------------------------------------------------------- +// +STRUCT AVKON_INDICATOR_POPUP_ITEM + { + // UID of the status indicator. + WORD indicator_uid; + + // Default text to be displayed for the indicator in the + // universal indicator popup. + LTEXT text; + + // Reserved for future extensions. + LLINK extension = 0; + } + +// --------------------------------------------------------------------------- +// Sct navi BUTTONS resources: +// define the category button(s) +// --------------------------------------------------------------------------- +// +STRUCT AVKON_SCT_NAVI_BUTTONS + { + STRUCT navi_buttons[]; + } + +// --------------------------------------------------------------------------- +// Sct navi BUTTON resources +// define a category button +// --------------------------------------------------------------------------- +// +STRUCT AVKON_SCT_NAVI_BUTTON + { + WORD id; + LLINK button; + } +