epoc32/include/mw/avkon.rh
author William Roberts <williamr@symbian.org>
Wed, 31 Mar 2010 12:27:01 +0100
branchSymbian2
changeset 3 e1b950c65cb4
parent 1 666f914201fb
child 4 837f303aceeb
permissions -rw-r--r--
Attempt to represent the S^2->S^3 header reorganisation as a series of "hg rename" operations
     1 /*
     2 * Copyright (c) 2002-2008 Nokia Corporation and/or its subsidiary(-ies).
     3 * All rights reserved.
     4 * This component and the accompanying materials are made available
     5 * 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
     6 * which accompanies this distribution, and is available
     7 * at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
     8 *
     9 * Initial Contributors:
    10 * Nokia Corporation - initial contribution.
    11 *
    12 * Contributors:
    13 *
    14 * Description:  Resource structure definitions for Avkon.
    15 *
    16 */
    17 
    18 
    19 #ifndef __AVKON_HRH__
    20 #include <avkon.hrh>
    21 #endif
    22 
    23 #if !defined(__BADEF_RH__)
    24 #include <BADEF.RH>
    25 #endif
    26 
    27 #if !defined(__UIKON_HRH__)
    28 #include <uikon.hrh>
    29 #endif
    30 
    31 STRUCT AVKON_SYSTEM_FONT
    32     {
    33     LONG fontuid; // a value from fontids.hrh
    34     STRUCT named_font; // this must be a NAMED_FONT structure type
    35     }
    36 
    37 STRUCT NAVI_DECORATOR
    38     {
    39     WORD type=ENaviDecoratorControlNone;
    40     STRUCT control;
    41     }
    42 
    43 STRUCT TITLE_PANE
    44     {
    45     LTEXT txt="";
    46     LTEXT bmpfile="";
    47     WORD bmpid=0xffff;
    48     WORD bmpmask=0xffff;
    49     }
    50 
    51 STRUCT CONTEXT_PANE
    52     {
    53     LTEXT bmpfile="";
    54     WORD bmpid=0xffff;
    55     WORD bmpmask=0xffff;
    56     }
    57 
    58 STRUCT TAB_GROUP
    59     {
    60     WORD tab_width = EAknTabWidthWithTwoTabs;  // two tabs
    61     WORD active = 0; // index of the first active tab
    62     STRUCT tabs[];
    63     }
    64 
    65 STRUCT TAB
    66     {
    67     WORD id=0;
    68     LTEXT txt="";
    69     LTEXT bmpfile="";
    70     WORD bmpid=0xffff;
    71     WORD bmpmask=0xffff;
    72     }
    73 
    74 STRUCT NAVI_LABEL
    75     {
    76     LTEXT txt="";
    77     }
    78 
    79 STRUCT NAVI_IMAGE
    80     {
    81     LTEXT bmpfile="";
    82     WORD bmpid=0xffff;
    83     WORD bmpmask=0xffff;
    84     }
    85 
    86 STRUCT SIGNAL_PANE
    87     {
    88     WORD level = 0;
    89     }
    90 
    91 STRUCT BATTERY_PANE
    92     {
    93     WORD level = 0;
    94     }
    95 
    96 STRUCT INDICATOR_PANE
    97     {
    98     STRUCT indicators[];
    99     }
   100 
   101 STRUCT INDICATOR
   102     {
   103     WORD uid;
   104     WORD npriority=0xffff;
   105     WORD wpriority=0xffff;
   106     LTEXT bmpfile="";
   107     STRUCT states[];
   108     }
   109 
   110 STRUCT INDICATOR_STATE
   111     {
   112     WORD id;
   113     STRUCT icons[];
   114     }
   115 
   116 STRUCT INDICATOR_ICON
   117     {
   118     WORD narrowbmpid=0xffff;
   119     WORD narrowbmpmask=0xffff;
   120     WORD widebmpid=0xffff;
   121     WORD widebmpmask=0xffff;
   122     }
   123 
   124 STRUCT AVKON_VIEW
   125     {
   126     BYTE version=0; // resource struct version, do not change.
   127     LLINK hotkeys=0;
   128     LLINK menubar=0;
   129     LLINK cba=0;
   130     LLINK toolbar=0;
   131     LLINK extension=0; // reserved for future extensions
   132     }
   133 
   134 STRUCT AVKON_NOTE
   135     {
   136     WORD layout;
   137     LTEXT singular_label;
   138     LTEXT plural_label="";
   139     LTEXT imagefile="";
   140     WORD imageid=0xffff;
   141     WORD imagemask=0xffff;
   142     LTEXT iconfile="";
   143     WORD iconid=0xffff;
   144     WORD iconmask=0xffff;
   145     LLINK animation=0;
   146     WORD flags=0; //TNoteFlags (defined in aknnoteattributes.h)
   147     }
   148 
   149 STRUCT NOTE_COMPONENT
   150     {
   151     WORD component_type;
   152     WORD x;
   153     WORD y;
   154     WORD width;
   155     WORD height;
   156     }
   157 
   158 STRUCT NOTE
   159     {
   160     STRUCT components[];
   161     }
   162 
   163 STRUCT AVKON_CONFIRMATION_QUERY
   164     {
   165     WORD layout;
   166     LTEXT label;
   167     LTEXT bmpfile="";
   168     WORD bmpid=0xffff;
   169     WORD bmpmask=0xffff;
   170     LLINK animation=0; 
   171     }
   172 
   173 STRUCT AVKON_DATA_QUERY
   174     {
   175     WORD layout;
   176     LTEXT label;
   177     STRUCT control;
   178     }
   179 
   180 STRUCT AVKON_MESSAGE_QUERY
   181     {
   182     LTEXT message = "";
   183     }
   184 
   185 STRUCT AVKON_MULTI_LINE_DATA_QUERY
   186     {
   187     WORD layout;   
   188     LTEXT firstlabel;
   189     LLINK firstcontrol;
   190     LTEXT secondlabel;
   191     LLINK secondcontrol;
   192     }
   193 
   194 
   195 // use this with CAknQueryDialog.
   196 // This is for one dialog DLG line with EAknCtListQueryControl
   197 //
   198 // The list query window type is determined from EAknCtSinglePopupMenuListBox - if you want to
   199 // have your own borders, derive from CAknListQueryDialog and override some methods.
   200 
   201 STRUCT AVKON_LIST_QUERY_CONTROL
   202     {
   203     WORD listtype; // type of the list, for example EAknCtSinglePopupMenuListBox (window type is determined from this)
   204     STRUCT listbox; // LISTBOX resource, use AVKON_LIST_QUERY_LIST or AVKON_MULTISELECTION_LIST_QUERY_LIST
   205     LTEXT heading = "";
   206     LTEXT bmpfile="";
   207     WORD bmpid=0xffff;
   208     WORD bmpmask=0xffff;
   209     LLINK animation=0;
   210     }
   211 
   212 STRUCT AVKON_HEADING
   213     {
   214     LTEXT label = "";  // default is no heading
   215     LTEXT bmpfile="";
   216     WORD bmpid=0xffff;
   217     WORD bmpmask=0xffff;
   218     LLINK animation=0;
   219     LLINK headinglayout = R_AVKON_LIST_HEADING_PANE;
   220     }
   221 
   222 // CAknPopupField
   223 STRUCT POPUP_FIELD
   224     {
   225     WORD flags=0; // permitted flags: EAknPopupFieldFlagAllowsUserDefinedEntry
   226     WORD width=0; // in characters
   227     LTEXT other=""; // if non-empty, replaces 
   228     LLINK emptynote = 0; // note to be displayed if popupfield is empty
   229     LTEXT empty=""; // text to display if popupfield is empty
   230     LTEXT invalid = ""; // text to display if popupfield is invalid
   231     }
   232 
   233 STRUCT POPUP_FIELD_TEXT
   234     {
   235     STRUCT popupfield; // only use POPUP_FIELD here
   236     LLINK textarray = 0; // resource ID of an array of text
   237     WORD active = 0; // zero based, item in textarray to be initially selected
   238     }
   239 
   240 STRUCT POPUP_FIELD_SELECTION_BMP
   241     {
   242     LTEXT bmpfile="";
   243     WORD bmpidon=0xffff;
   244     WORD bmpmaskon=0xffff;
   245     WORD bmpidoff=0xffff;
   246     WORD bmpmaskoff=0xffff;
   247     }
   248 
   249 STRUCT SLIDER
   250     {
   251     WORD layout;
   252     WORD minvalue;
   253     WORD maxvalue;
   254     WORD step;
   255     WORD valuetype=EAknSliderValueBareFigure;
   256     WORD decimalplaces=0;
   257     LTEXT singular_valuelabel = "";
   258     LTEXT minlabel="";
   259     LTEXT maxlabel="";
   260     LTEXT valuelabel="";
   261     LLINK graphical_image=0;
   262     }
   263 
   264 /** used with CAknVolumeControl
   265  * see avkon.hrh for the flag definitions
   266  * This struct uses default values for volume range:
   267  *  ESettingsVolumeControl, EDynRangeSettingsVolumeControl: 1-10
   268  *  ENaviPaneVolumeControl, EPopupVolumeControl, EDynRangeNaviPaneVolumeControl, 
   269  *  EDynRangePopupVolumeControl, ESmallPopupVolumeControl, 
   270  *  ESmallPopupVolumeControlWithPercent: 0-10   
   271  */ 
   272 STRUCT VOLUME
   273     {
   274     WORD flags;
   275     WORD value;
   276     LTEXT bmpfile="";
   277     WORD bmpid=0xffff;
   278     WORD bmpmask=0xffff;
   279     }
   280 
   281 /** used with CAknVolumeControl
   282  *  This struct is used with flags defined in
   283  *  TAknVolumeControlDynamicLayouts
   284  *  see avkon.hrh for the flag definitions
   285  *  @since 3.2 
   286  */ 
   287 STRUCT DYNAMIC_VOLUME
   288     {
   289     WORD identifier = 0xffff;  // Do not change
   290     WORD flags;
   291     WORD value;
   292     LTEXT bmpfile="";
   293     WORD bmpid=0xffff;
   294     WORD bmpmask=0xffff;
   295     WORD minvalue = 0;
   296     WORD maxvalue = 10;
   297     }
   298 
   299 STRUCT NUMSECRETED
   300     {
   301     WORD num_code_chars=8;
   302     }
   303 
   304 STRUCT GRID_STYLE
   305     {
   306     WORD layoutflags = 0;
   307     WORD primaryscroll = 0;
   308     WORD secondaryscroll = 0;
   309     WORD itemsinprimaryorient = 0;
   310     WORD itemsinsecondaryorient = 0;
   311     WORD height = 0;
   312     WORD width = 0;
   313     WORD gapwidth = 0;
   314     WORD gapheight = 0;
   315     }
   316 
   317 STRUCT GRID
   318     {
   319     BYTE version = 0;
   320     LONG flags = 0;
   321     WORD height = 5;        // in items
   322     WORD width = 10;        // in chars
   323     LLINK array_id = 0;
   324     LTEXT emptytext = "";
   325     LLINK style = 0; 
   326     }
   327 
   328 STRUCT AVKON_SETTING_PAGE
   329     {
   330     WORD number = EAknSettingPageNoOrdinalDisplayed;
   331     LTEXT label;
   332     LTEXT hint_text;
   333     LLINK softkey_resource = 0;
   334     LLINK menubar= 0;
   335     WORD type=0xffff;
   336     LLINK editor_resource_id = 0;
   337     LLINK invalid_contents_softkey_resource = 0;
   338     LLINK extension = 0;
   339     }
   340 
   341 STRUCT AVKON_SETTING_ITEM_LIST
   342     {
   343     WORD flags = 0; // Allowed values: EAknSettingItemListNumberedStyle 
   344     LTEXT title = "";
   345     WORD initial_number = 1;
   346     STRUCT items[];
   347     }
   348 
   349 STRUCT AVKON_SETTING_ITEM
   350     {
   351     WORD identifier = 0;
   352     LTEXT name ="";
   353     LLINK setting_page_resource = 0;
   354     WORD type=0xffff;  
   355     LLINK setting_editor_resource = 0;
   356     LLINK associated_resource = 0;
   357     LTEXT empty_item_text = "";
   358     LTEXT compulsory_ind_string = "";
   359     LLINK reserved = 0;  // Added for extensions
   360     }
   361 
   362 STRUCT AVKON_PASSWORD_CONFIRMATION
   363     {
   364     LLINK password_query_resource = 0;
   365     LLINK success_note_resource = 0;
   366     LLINK failure_note_resource = 0;
   367     }
   368 
   369 STRUCT AVKON_ENUMERATED_TEXT
   370     {
   371     WORD value = 0 ;
   372     LTEXT text;
   373     }
   374 
   375 STRUCT AVKON_POPUP_SETTING_TEXTS
   376     {
   377     WORD flags = 0;
   378     LLINK setting_texts_resource = 0;
   379     LLINK popped_up_texts_resource = 0;
   380     LLINK reserved = 0;
   381     }
   382 
   383 STRUCT AVKON_SEARCH_FIELD
   384     {
   385     }
   386 
   387 STRUCT AVKON_LISTBOX_LINES
   388     {
   389     STRUCT vline1;
   390     STRUCT vline2;
   391     STRUCT hline;
   392     }
   393 
   394 // Bitmap Animation
   395 STRUCT BMPANIM_DATA
   396     {
   397     BYTE identifier = 0; // Do not change, used to identify the used resource struct.
   398     WORD frameinterval  = -1;
   399     WORD playmode       = 0;
   400     BYTE flash      = 0;
   401     LTEXT bmpfile       = "";
   402     LLINK frames        = 0;
   403     LLINK backgroundframe   = 0;
   404     }
   405 
   406 STRUCT BMPANIM_FRAME
   407     {
   408     WORD time       = -1;
   409     WORD posx       = 0;
   410     WORD posy       = 0;
   411     WORD bmpid      = -1;
   412     WORD maskid     = -1;
   413     }
   414 
   415 // Resource-based layout resources (Deprecated)
   416 // These does not define absolute coordinates => resizing these layouts is possible!
   417 //
   418 // (those which does not mention column or form in their name could be used later by
   419 // other controls for their layout - there will be generic resource reader for these)
   420 
   421 // this is used with listboxes
   422 STRUCT AVKON_LB_LAYOUT_POS
   423     {
   424     WORD l=ELayoutEmpty; 
   425     WORD t=ELayoutEmpty; 
   426     WORD r=ELayoutEmpty; 
   427     WORD b=ELayoutEmpty; 
   428     WORD W=ELayoutEmpty; 
   429     WORD H=ELayoutEmpty;
   430     }
   431 
   432 // this is used with listboxes too
   433 STRUCT AVKON_LB_LAYOUT_GFX
   434     {
   435     WORD id;
   436     WORD C=ELayoutEmpty;
   437     WORD l=ELayoutEmpty;
   438     WORD t=ELayoutEmpty;
   439     WORD r=ELayoutEmpty;
   440     WORD b=ELayoutEmpty;
   441     WORD W=ELayoutEmpty;
   442     WORD H=ELayoutEmpty;
   443     }
   444 
   445 // This is used with listboxes
   446 STRUCT AVKON_LB_LAYOUT_TEXT
   447     {
   448     WORD id;
   449     WORD font; WORD C; WORD lm; WORD rm;  WORD B; WORD W; WORD align;
   450     }
   451 
   452 // This is used with CAknLayoutUtils::LayoutControl()
   453 STRUCT AVKON_LAYOUT_CONTROL
   454     {
   455     WORD C=ELayoutEmpty;
   456     WORD l=ELayoutEmpty;
   457     WORD t=ELayoutEmpty;
   458     WORD r=ELayoutEmpty;
   459     WORD b=ELayoutEmpty;
   460     WORD W=ELayoutEmpty;
   461     WORD H=ELayoutEmpty;
   462     }
   463 
   464 // This is used with TAknLayoutRect
   465 STRUCT AVKON_LAYOUT_RECT
   466     {
   467     WORD C=ELayoutEmpty;
   468     WORD l=ELayoutEmpty;
   469     WORD t=ELayoutEmpty;
   470     WORD r=ELayoutEmpty;
   471     WORD b=ELayoutEmpty;
   472     WORD W=ELayoutEmpty;
   473     WORD H=ELayoutEmpty;
   474     }
   475 
   476 // this is used with AknListBoxLayouts::LayoutImage
   477 #define AVKON_LAYOUT_IMAGE AVKON_LAYOUT_RECT
   478 
   479 STRUCT AVKON_LAYOUT_TEXT
   480     {
   481     WORD font;
   482     WORD C;
   483     WORD l;
   484     WORD r;
   485     WORD B;
   486     WORD W;
   487     WORD J;
   488     }
   489 
   490 // This should be used with CAknLayoutUtils::LayoutEdwin
   491 STRUCT AVKON_LAYOUT_EDWIN
   492     {
   493     WORD font;
   494     WORD C;
   495     WORD l;
   496     WORD r;
   497     WORD B;
   498     WORD W;
   499     WORD J;
   500     WORD lines=1;   // Number of lines shown
   501     WORD nextB=0;   // Second row's baseline position
   502     }
   503 
   504 // This can be used with CAknLayoutUtils::LayoutLabel to layout CEikLabel's.
   505 STRUCT AVKON_LAYOUT_LABEL
   506     {
   507     WORD font;
   508     WORD C;
   509     WORD l;
   510     WORD r;
   511     WORD B;
   512     WORD W;
   513     WORD J;
   514     WORD nextB=0;
   515     }
   516 
   517 // This is used with CAknLayoutUtils::LayoutPopupField()
   518 STRUCT AVKON_LAYOUT_FORM_FIELD_POPUP_PANE
   519     {
   520     WORD font;
   521     WORD C = ELayoutEmpty;
   522     WORD l = ELayoutEmpty;
   523     WORD t = ELayoutEmpty;
   524     WORD r = ELayoutEmpty;
   525     WORD b = ELayoutEmpty;
   526     WORD W = ELayoutEmpty;
   527     WORD H1 = ELayoutEmpty;
   528     WORD H2 = ELayoutEmpty;
   529     WORD H3 = ELayoutEmpty;
   530     WORD H4 = ELayoutEmpty;
   531     WORD H5 = ELayoutEmpty;
   532     WORD H6 = ELayoutEmpty;
   533     WORD lines = 1;   // Number of lines shown
   534     }
   535 
   536 STRUCT AVKON_LB_LAYOUT_AREA
   537     {
   538     WORD id;
   539     WORD x1; WORD y1;
   540     WORD x2; WORD y2;
   541     }
   542 
   543 STRUCT AVKON_LB_LAYOUT_COMMAND
   544     {
   545     WORD id;
   546     WORD cmd;
   547     WORD data=0;    
   548     }
   549 
   550 // This is only for listboxes, use 
   551 // AknLayoutUtils/TAknLayoutText/TAknLayoutRect for getting correct layouts.
   552 STRUCT AVKON_LAYOUT_MANAGER
   553     {
   554     STRUCT gfx[];  // AVKON_LAYOUT_GFX
   555     STRUCT text[]; // AVKON_LAYOUT_TEXT
   556     STRUCT cmds[]; // AVKON_LAYOUT_COMMAND
   557     STRUCT area[]; // AVKON_LAYOUT_AREA
   558     STRUCT pos;    // AVKON_LAYOUT_POS
   559     }
   560 
   561 // This should be used with AknEditUtils::ConstructEditingL
   562 STRUCT AVKON_CONFIG_EDWIN
   563     {
   564     WORD editingSpace;    // Max number of character in a editor field
   565     WORD editingWindow;   // Maximum number of lines in a editor field
   566     WORD characterCase;   // EAknEditorCharactersUpperCase, EAknEditorCharactersLowerCase, EAknEditorCharactersTextCase
   567     WORD justification;   // EAknEditorAlignNone, EAknEditorAlignCenter, EAknEditorAlignLeft, EAknEditorAlignRight
   568     WORD allowedToMoveInsertionPoint; 
   569     WORD cursorYesNo;
   570     WORD overflowYesNo;
   571     }
   572 
   573 STRUCT AVKON_CBA_BUTTON
   574     {
   575     BYTE version=KAknCbaVersion;
   576     WORD id=0;
   577     WORD longpressid=0;
   578     LTEXT txt="";
   579     LTEXT bmpfile="";
   580     WORD bmpid=0xffff;      // -1
   581     WORD bmpmask=0xffff;    // -1
   582     }
   583 
   584 // Special Character Table
   585 
   586 STRUCT SPECIAL_CHAR_TABLE
   587     {
   588     STRUCT contents[]; // SCT_CHAR_SET
   589     }
   590 
   591 STRUCT SCT_CHAR_SET
   592     {
   593     WORD id;
   594     LTEXT chars = "";
   595     }
   596 
   597 // ---------------------------------------------------------
   598 // Resource structure for CAknIconArray class.
   599 // ---------------------------------------------------------
   600 //
   601 STRUCT AKN_ICON_ARRAY
   602     {
   603     WORD type = EAknIconArraySimple;
   604     // Bitmap file name
   605     LTEXT bmpfile;
   606     // Array of AKN_ICON structures.
   607     STRUCT icons[];
   608     }
   609 
   610 STRUCT AKN_ICON_ARRAY_ARRAY
   611     {
   612     WORD type = EAknIconArrayComplex;
   613     STRUCT iconarrays[]; // AKN_ICON_ARRAY
   614     }
   615 
   616 // ---------------------------------------------------------
   617 // One icon in AKN_ICON_ARRAY
   618 // ---------------------------------------------------------
   619 //
   620 STRUCT AKN_ICON
   621     {
   622     // Id of the icon bitmap
   623     LONG iconId;
   624     // Id of the mask bitmap
   625     LONG maskId;
   626     }
   627 
   628 // Avkon KeySounds
   629 
   630 STRUCT AVKON_SOUND_INFO
   631     {
   632     WORD signature1 = 0x1234;
   633     WORD signature2 = 0x5678;
   634     WORD sid;
   635     WORD priority = EAvkonKeyClickPriority;
   636     LONG preference = EAvkonKeyClickPreference;
   637     LTEXT file="";
   638     WORD frequency=0;
   639     LONG ms=0;
   640     WORD sequencelength=0;
   641     BYTE sequence[];
   642     BYTE volume=9; // default to loudest value
   643     }
   644 
   645 STRUCT AVKON_SOUND_INFO_LIST 
   646     {
   647     STRUCT list[];
   648     }
   649 
   650 STRUCT AVKON_SKEY_INFO
   651     {
   652     WORD sid = EAvkonSIDDefaultSound;
   653     WORD key;
   654     BYTE type = ESKeyTypeShort;
   655     }
   656 
   657 STRUCT AVKON_SKEY_LIST
   658     {
   659     STRUCT list[];
   660     }
   661 
   662 STRUCT PHONE_NUMBER_EDITOR
   663     {
   664     WORD maxChars=30;
   665     WORD maxLines;
   666     LTEXT truncation="";
   667     STRUCT formats[];
   668     }
   669 
   670 STRUCT PHONE_NUMBER_EDITOR_FORMAT
   671     {
   672     WORD top;
   673     WORD left;
   674     WORD bottom;
   675     WORD right;
   676     LONG border=0;
   677     WORD lines;
   678     WORD bottomBaselineOffset;
   679     WORD baselineSeparation;
   680     WORD font;
   681     }
   682 
   683 // CAknPopupSettingList
   684 STRUCT POPUP_SETTING_LIST
   685     {
   686     WORD flags; // permitted flags: EAknPopupSettingListFlagAllowsUserDefinedEntry
   687     WORD width; // in characters.
   688     LTEXT other="Other ...";
   689     LTEXT empty_text="No options";
   690     LLINK new_item_setting_page_resource = 0; // These 3 to allow setting page launch from list pane
   691     WORD type=0xffff;               
   692     LLINK new_item_setting_editor_resource = 0;
   693     }
   694 
   695 // This comes from DIALOG resource and must be updates accordingly when
   696 // DIALOG resource is changed. see eikon.rh
   697 STRUCT AVKON_LIST_QUERY
   698     {
   699     LONG flags = EGeneralQueryFlags;
   700     LTEXT xxxx1 = "";
   701     LLINK xxxx2 = 0;
   702     LLINK softkeys = R_AVKON_SOFTKEYS_OK_CANCEL__OK; // CBA
   703     STRUCT items[]; // AVKON_LIST_QUERY_DLG_LINE
   704     LLINK xxxx3 = 0;
   705     }
   706 
   707 STRUCT AVKON_MULTISELECTION_LIST_QUERY
   708     {
   709     LONG flags = EGeneralQueryFlags;
   710     LTEXT xxxx1 = "";
   711     LLINK xxxx2 = 0;
   712     LLINK softkeys = R_AVKON_SOFTKEYS_OK_CANCEL__MARK; // CBA
   713     STRUCT items[]; // AVKON_MULTISELECTION_LIST_QUERY_DLG_LINE
   714     LLINK xxxx3 = 0;
   715     }
   716 
   717 STRUCT AVKON_LIST_QUERY_DLG_LINE
   718     {
   719     WORD type = EAknCtListQueryControl;
   720     LTEXT prompt = "";
   721     WORD id = EListQueryControl;
   722     LONG itemflags = 0;
   723     STRUCT control; // AVKON_LIST_QUERY_CONTROL
   724     LTEXT trailer = "";
   725     LTEXT bmpfile = "";
   726     WORD bmpid = 0xffff;
   727     WORD bmpmask = 0xffff;
   728     LTEXT tooltip = "";
   729     }
   730 
   731 STRUCT AVKON_MULTISELECTION_LIST_QUERY_DLG_LINE
   732     {
   733     WORD type = EAknCtListQueryControl;
   734     LTEXT prompt = "";
   735     WORD id = EListQueryControl;
   736     LONG itemflags = 0;
   737     STRUCT control; // AVKON_LIST_QUERY_CONTROL
   738     LTEXT trailer = "";
   739     LTEXT bmpfile = "";
   740     WORD bmpid = 0xffff;
   741     WORD bmpmask = 0xffff;
   742     LTEXT tooltip = "";
   743     }
   744 
   745 STRUCT AVKON_LIST_QUERY_LIST
   746     {
   747     BYTE version = 0;
   748     LONG flags = EAknListBoxMenuList;
   749     WORD height = 5;
   750     WORD width = 10;
   751     LLINK array_id = 0;
   752     }
   753 
   754 STRUCT AVKON_MULTISELECTION_LIST_QUERY_LIST
   755     {
   756     BYTE version = 0;
   757     LONG flags = EAknListBoxStylusMultiselectionList;
   758     WORD height = 5;
   759     WORD width = 10;
   760     LLINK array_id = 0;    
   761     }
   762  
   763 // LISTBOX resources:
   764 STRUCT AVKON_SELECTION_LIST
   765     {
   766     BYTE version = 0;
   767     LONG flags = EAknListBoxSelectionList;
   768     WORD height = 5;
   769     WORD width = 10;
   770     LLINK array_id = 0;
   771     }
   772 STRUCT AVKON_MARKABLE_LIST
   773     {
   774     BYTE version = 0;
   775     LONG flags = EAknListBoxMarkableList;
   776     WORD height = 5;
   777     WORD width = 10;
   778     LLINK array_id = 0;
   779     }
   780 
   781 STRUCT AVKON_MULTISELECTION_LIST
   782     {
   783     BYTE version = 0;
   784     LONG flags = EAknListBoxMultiselectionList;
   785     WORD height = 5;
   786     WORD width = 10;
   787     LLINK array_id = 0;
   788     }
   789 
   790 STRUCT AVKON_MENU_LIST
   791     {
   792     BYTE version = 0;
   793     LONG flags = EAknListBoxMenuList;
   794     WORD height = 5;
   795     WORD width = 10;
   796     LLINK array_id = 0;
   797     }
   798 
   799 STRUCT AVKON_INTEGER_EDWIN
   800     {
   801     WORD  maxlength   = 0;
   802     LONG  min         = -99999999;
   803     LONG  max         = 99999999;
   804     LONG  unset_value = -100000000;
   805     LLINK extension1  = 0;
   806     LLINK extension2  = 0;
   807     }
   808  
   809 // Avkon note wrappers
   810 
   811 STRUCT AKN_NOTE_WRAPPER
   812     {
   813     // Id of the dialog resource for this note
   814     LLINK resId;
   815     // see TAknNoteDialogTimeout
   816     LONG timeout;
   817     // see TAknNoteDialogTone
   818     WORD  tone = -1;
   819     // Prompt text
   820     LTEXT text = "";
   821     }
   822 
   823 STRUCT AVKON_GROUPED_NOTE_TEXTS
   824     {
   825     LLINK singular_label; // must point to resource of type TBUF 
   826     LLINK plural_label;   // must point to resource of type TBUF 
   827     WORD flags = 0;       // for future proofing
   828     }
   829 
   830 // DEPRECATED.
   831 STRUCT AKN_SELECTION_LIST
   832     {
   833     WORD  flags          = 0;                   // see avkon.hrh / EAknFlagFind etc..
   834     WORD  listbox        = EAknCtSingleListBox; // listbox layout 
   835     LLINK menubar        = 0;                   // MENUBAR resource 
   836     LLINK dialogresource = R_AKN_SELECTION_LIST_DIALOG;
   837     }
   838 
   839 STRUCT AVKON_UNUSED
   840     {
   841     }
   842 
   843 STRUCT AVKON_COLOUR_SELECTION_GRID
   844     {
   845     LTEXT nonetext = "";
   846     STRUCT gridcontrol;  // GRID
   847     }
   848         
   849 STRUCT AVKON_LIST_QUERY_CONTROL_WITH_MSGBOX
   850     {
   851     WORD   listtype  = EAknListQueryWithMsgBox;
   852     WORD   actuallisttype;    
   853     STRUCT listbox;
   854     LTEXT  message   = "";
   855     LTEXT  heading   = "";
   856     LTEXT  bmpfile   = "";
   857     WORD   bmpid     = 0xffff;
   858     WORD   bmpmask   = 0xffff;
   859     LLINK  animation = 0;  
   860     }    
   861 
   862 // resource structures for CAknStylusActivatedPopUpContent
   863 STRUCT AVKON_STYLUSACTIVATEDPOPUP_CONTENT
   864     {
   865     LTEXT  titletext = "";
   866     LTEXT  infotext  = "";
   867 
   868     STRUCT cmdlinks[];    // AVKON_STYLUSACTIVATEDPOPUP_LINK
   869     LLINK  extension = 0; // for future extensions
   870     }
   871 
   872 STRUCT AVKON_STYLUSACTIVATEDPOPUP_LINK
   873     {
   874     BYTE  linkid; // use TAknStylusPopupCmdLinkIds, see avkon.hrh
   875     LTEXT linktext = "";
   876     LLINK extension = 0; // for future extensions
   877     }
   878 
   879 // Skinned bitmap Animation
   880 // Always use BMPANIM_FRAME_SKINNED with BMPANIM_DATA_SKINNED
   881 STRUCT BMPANIM_DATA_SKINNED
   882     {
   883     BYTE  identifier      = KAknBMPAnimVersion; // Do not change, used to identify the used resource struct.
   884     LLINK skinanimationid = -1; // First try to create animation by using this id
   885     WORD  frameinterval   = -1;
   886     WORD  playmode        = 0;
   887     BYTE  flash           = 0;
   888     LTEXT bmpfile         = "";
   889     LLINK frames          = 0;
   890     LLINK backgroundframe = 0;
   891     }
   892 
   893 STRUCT BMPANIM_FRAME_SKINNED
   894     {
   895     WORD  time        = -1;
   896     WORD  posx        = 0;
   897     WORD  posy        = 0;
   898     WORD  bmpid       = -1;
   899     WORD  maskid      = -1;
   900     LLINK majorskinid = -1;
   901     LLINK minorskinid = -1;
   902     }
   903 
   904 // ---------------------------------------------------------------------------
   905 // SCT CATEGORY BUTTONS resources:
   906 // define the category button(s)
   907 // ---------------------------------------------------------------------------
   908 //
   909 STRUCT AVKON_SCT_CATEGORY_BUTTONS
   910     {
   911     STRUCT category_buttons[]; // AVKON_SCT_CATEGORY_BUTTON
   912     }
   913 
   914 // ---------------------------------------------------------------------------
   915 // SCT CATEGORY BUTTON resources
   916 // define a category button
   917 // ---------------------------------------------------------------------------
   918 //
   919 STRUCT AVKON_SCT_CATEGORY_BUTTON
   920     {
   921     WORD categorybuttonid;      // TAknSCTCategoryButtons (defined on avkon.hrh)
   922     WORD id;                    // SCT enumerations (e.g. EAknSCTHalfCase) (defined on avkon.hrh)
   923     LLINK button;               // AVKON_BUTTON
   924     }
   925 
   926 // ---------------------------------------------------------------------------
   927 // AVKON_NOTE_SKINNED
   928 // Struct for defining a skinnable Avkon note, otherwise similar as AVKON_NOTE.
   929 // @since S60 5.0
   930 // ---------------------------------------------------------------------------
   931 //
   932 STRUCT AVKON_NOTE_SKINNED
   933     {
   934     WORD  layout;                     // Layout. 
   935     LTEXT singular_label;             // Singular label.    
   936     LTEXT plural_label      = "";     // Plural label.
   937     LTEXT imagefile         = "";     // Image file name (including path).
   938     WORD  imageid           = 0xffff; // Image id.
   939     WORD  imagemask         = 0xffff; // Image mask.
   940     LTEXT iconfile          = "";     // Icon file name (including path).
   941     WORD  iconid            = 0xffff; // Icon id.
   942     WORD  iconmask          = 0xffff; // Icon mask.
   943     LLINK animation         = 0;      // Animation.
   944     
   945     // EAknNoteFlagWithSkinnableGraphics is used to distinguish AVKON_NOTE_SKINNED
   946     // from AVKON_NOTE. Therefore it must always be set when using AVKON_NOTE_SKINNED.
   947     // Other flags may also be set, and they have the same behaviour as AVKON_NOTE.
   948     WORD  flags             = EAknNoteFlagWithSkinnableGraphics;
   949     
   950     LLINK image_majorskinid = -1;     // Major skin id for image, see AknsConstants.h.
   951     LLINK image_minorskinid = -1;     // Minor skin id for image, see AknsConstants.h.
   952     }
   953 
   954 // ---------------------------------------------------------------------------
   955 // AVKON_INDICATOR_POPUP_ITEM
   956 // Resource structure for universal indicator pane items.
   957 // @since 5.0
   958 // ---------------------------------------------------------------------------
   959 //
   960 STRUCT AVKON_INDICATOR_POPUP_ITEM
   961     {
   962     // UID of the status indicator.
   963     WORD indicator_uid;
   964 
   965     // Default text to be displayed for the indicator in the
   966     // universal indicator popup.
   967     LTEXT text;
   968     
   969     // Reserved for future extensions.
   970     LLINK extension = 0;
   971     }
   972 
   973 // ---------------------------------------------------------------------------
   974 // Sct navi BUTTONS resources:
   975 // define the category button(s)
   976 // ---------------------------------------------------------------------------
   977 //
   978 STRUCT AVKON_SCT_NAVI_BUTTONS
   979     {
   980     STRUCT navi_buttons[];
   981     }
   982 
   983 // ---------------------------------------------------------------------------
   984 // Sct navi BUTTON resources
   985 // define a category button
   986 // ---------------------------------------------------------------------------
   987 //
   988 STRUCT AVKON_SCT_NAVI_BUTTON
   989     {
   990     WORD id;
   991     LLINK button;
   992     }
   993