epoc32/include/mw/aknlists.h
author William Roberts <williamr@symbian.org>
Tue, 16 Mar 2010 16:12:26 +0000
branchSymbian2
changeset 2 2fe1408b6811
parent 1 666f914201fb
child 4 837f303aceeb
permissions -rw-r--r--
Final list of Symbian^2 public API header files
williamr@2
     1
/*
williamr@2
     2
* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies).
williamr@2
     3
* All rights reserved.
williamr@2
     4
* This component and the accompanying materials are made available
williamr@2
     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
williamr@2
     6
* which accompanies this distribution, and is available
williamr@2
     7
* at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
williamr@2
     8
*
williamr@2
     9
* Initial Contributors:
williamr@2
    10
* Nokia Corporation - initial contribution.
williamr@2
    11
*
williamr@2
    12
* Contributors:
williamr@2
    13
*
williamr@2
    14
* Description: 
williamr@2
    15
*
williamr@2
    16
*/
williamr@2
    17
williamr@2
    18
#ifndef __AKNLISTS_H__
williamr@2
    19
#define __AKNLISTS_H__
williamr@2
    20
williamr@2
    21
#include <eikclb.h>
williamr@2
    22
#include <eikfrlb.h>
williamr@2
    23
#include <eikslb.h>
williamr@2
    24
#include <AknGrid.h>
williamr@2
    25
#include <aknutils.h>
williamr@2
    26
williamr@2
    27
#include <aknpanic.h>
williamr@2
    28
williamr@2
    29
williamr@2
    30
class TAknTextLineLayout;
williamr@2
    31
class MAknsSkinInstance;
williamr@2
    32
class MAknsControlContext;
williamr@2
    33
williamr@2
    34
/** THIS FILE INCLUDES:
williamr@2
    35
 *  1) All listbox layouts specified in Avkon LAF specification
williamr@2
    36
 *      a) General list pane descendants
williamr@2
    37
 *      b) Pop up window list pane descendants
williamr@2
    38
 *      c) Grid panes
williamr@2
    39
 *  2) Utilities that help building listbox layouts based on LAF specification
williamr@2
    40
 *  3) Other helper classes that handle listbox behavior
williamr@2
    41
 */
williamr@2
    42
williamr@2
    43
williamr@2
    44
//
williamr@2
    45
//
williamr@2
    46
// Helper template definitions.
williamr@2
    47
// (these are before concrete listbox classes because they're needed for inheritance)
williamr@2
    48
//
williamr@2
    49
williamr@2
    50
williamr@2
    51
/**
williamr@2
    52
 * This adds correct horizontal and vertival lines to the listbox and handles empty listbox!
williamr@2
    53
 *
williamr@2
    54
 * This class is only useful if you're writing your own list layout. 
williamr@2
    55
 * Please use the predefined layouts instead, for example CAknSingleStyleListBox.
williamr@2
    56
 */
williamr@2
    57
template<class T>
williamr@2
    58
class AknListBoxLinesTemplate : public T
williamr@2
    59
    {
williamr@2
    60
public:
williamr@2
    61
    /** AknListBoxLinesTemplate
williamr@2
    62
     *
williamr@2
    63
     * Read AVKON_LISTBOX_LINES resources. 
williamr@2
    64
     *
williamr@2
    65
     * The following predefined lines are available:
williamr@2
    66
     * R_LIST_PANE_LINES_A_COLUMN
williamr@2
    67
     * R_LIST_PANE_LINES_AB_COLUMN
williamr@2
    68
     * R_LIST_PANE_LINES_AB_COLUMN_X
williamr@2
    69
     * R_LIST_PANE_LINES_AB_COLUMN_XX
williamr@2
    70
     * R_LIST_PANE_LINES_BC_COLUMN
williamr@2
    71
     * R_LIST_PANE_LINES_BC_COLUMN_X
williamr@2
    72
     * R_LIST_PANE_LINES_BC_COLUMN_XX
williamr@2
    73
     * 
williamr@2
    74
     */
williamr@2
    75
    IMPORT_C AknListBoxLinesTemplate(TInt aResourceId);
williamr@2
    76
    /** SizeChanged()
williamr@2
    77
     * 
williamr@2
    78
     * Determines position of the lines
williamr@2
    79
     */
williamr@2
    80
    IMPORT_C void SizeChanged();
williamr@2
    81
    /** Draw()
williamr@2
    82
     * 
williamr@2
    83
     * Draws the lines
williamr@2
    84
     */
williamr@2
    85
    IMPORT_C void Draw(const TRect& aRect) const;
williamr@2
    86
    /** CountComponentControls()
williamr@2
    87
     * 
williamr@2
    88
     * Choose controls to use as child controls
williamr@2
    89
     */
williamr@2
    90
    IMPORT_C TInt CountComponentControls() const;
williamr@2
    91
    /** CountComponentControls()
williamr@2
    92
     * 
williamr@2
    93
     * Choose controls to use as child controls
williamr@2
    94
     */
williamr@2
    95
    IMPORT_C CCoeControl* ComponentControl(TInt aIndex) const;
williamr@2
    96
williamr@2
    97
private:
williamr@2
    98
    TInt iSpare0;                           // was iResourceId;
williamr@2
    99
    TAknLayoutRect iVertLine1, iVertLine2;  // not used
williamr@2
   100
    TAknLayoutRect iHoriLine;               // not used
williamr@2
   101
    TBool iResized;
williamr@2
   102
    TInt iSpare[2];
williamr@2
   103
    };
williamr@2
   104
williamr@2
   105
/**
williamr@2
   106
 * Empty layout for popup lists
williamr@2
   107
 */
williamr@2
   108
williamr@2
   109
template<class T>
williamr@2
   110
class AknPopupListEmpty : public T
williamr@2
   111
    {
williamr@2
   112
   /**
williamr@2
   113
    * Draws empty list when needed. See AknDraw::DrawEmptyList().
williamr@2
   114
    */
williamr@2
   115
    IMPORT_C virtual void Draw(const TRect &aRect) const;
williamr@2
   116
    };
williamr@2
   117
williamr@2
   118
williamr@2
   119
	/** 
williamr@2
   120
	* Avkon version of eikon's column listbox.
williamr@2
   121
	* Content for list items are tab-separated strings.
williamr@2
   122
	*
williamr@2
   123
	* See methods 
williamr@2
   124
	*   CEikListBox::ConstructFromResourceL()
williamr@2
   125
	*   CEikListBox::ConstructL()
williamr@2
   126
	*   CEikTextListBox::SetItemArray()
williamr@2
   127
	*   CEikColumnListBoxData::SetIconArray()
williamr@2
   128
	* 
williamr@2
   129
	* Related flags for ConstructL() (avkon.hrh)
williamr@2
   130
	*   EAknListBoxSelectionList
williamr@2
   131
	*   EAknListBoxMenuList
williamr@2
   132
	*   EAknListBoxMarkableList
williamr@2
   133
	*   EAknListBoxMultiselectionList
williamr@2
   134
	*   EAknListBoxViewerFlags
williamr@2
   135
	*
williamr@2
   136
	* Related flags for dialogs (avkon.hrh)
williamr@2
   137
	*   EAknDialogSelectionList
williamr@2
   138
	*   EAknDialogMenuList
williamr@2
   139
	*   EAknDialogMultiselectionList
williamr@2
   140
	*
williamr@2
   141
	* @since Series 60 0.9
williamr@2
   142
	*
williamr@2
   143
	*/
williamr@2
   144
class CAknColumnListBox : public CEikColumnListBox
williamr@2
   145
    {
williamr@2
   146
public:
williamr@2
   147
    /** 
williamr@2
   148
	* Creates new @c CAknColumnListBoxView object and returns pointer to it.
williamr@2
   149
	* @return Pointer to the list box view which displays the list items which
williamr@2
   150
	* are currently visible in a list box.
williamr@2
   151
    */
williamr@2
   152
    IMPORT_C virtual CListBoxView* MakeViewClassInstanceL();
williamr@2
   153
    
williamr@2
   154
    /** 
williamr@2
   155
    * Creates @c CAknFilteredTextListBoxModel object.
williamr@2
   156
    */
williamr@2
   157
    IMPORT_C virtual void CreateModelL();
williamr@2
   158
williamr@2
   159
    /** 
williamr@2
   160
    * Listbox rectangle calculation. Rounds down the height of the rectangle
williamr@2
   161
    * (if necessary) so that only a whole number of items can be displayed
williamr@2
   162
    * inside the list box.
williamr@2
   163
    * @param aRect The size of the listbox.
williamr@2
   164
    * @return The number of pixels reduced.
williamr@2
   165
    */
williamr@2
   166
    IMPORT_C virtual TInt AdjustRectHeightToWholeNumberOfItems(TRect& aRect) const;
williamr@2
   167
    
williamr@2
   168
    /**
williamr@2
   169
     * From CCoeControl.     
williamr@2
   170
     * Handles pointer events
williamr@2
   171
     */
williamr@2
   172
    IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent);
williamr@2
   173
private:
williamr@2
   174
    /**
williamr@2
   175
    * From CAknControl
williamr@2
   176
    */
williamr@2
   177
    IMPORT_C void* ExtensionInterface( TUid aInterface );
williamr@2
   178
private: // listbox use only
williamr@2
   179
	IMPORT_C virtual void CEikListBox_Reserved(); 
williamr@2
   180
    };
williamr@2
   181
williamr@2
   182
williamr@2
   183
//
williamr@2
   184
// These define what features are needed --> you can remove shortcuts from ALL lists by changing these..
williamr@2
   185
// Templates available: AknListBoxLinesTemplate<> AknListBoxShortCutTemplate<>
williamr@2
   186
typedef AknListBoxLinesTemplate<CAknColumnListBox > CEikColumnListBoxTypedef;
williamr@2
   187
typedef AknListBoxLinesTemplate<CEikFormattedCellListBox > CEikFormattedCellListBoxTypedef;
williamr@2
   188
typedef AknListBoxLinesTemplate<CEikSettingsListBox > CEikSettingsListBoxTypedef;
williamr@2
   189
typedef CAknGrid CAknSelectionGridTypedef;
williamr@2
   190
williamr@2
   191
// Templates available: AknListBoxShortCutTemplate<> AknListBoxLinesTemplate<>
williamr@2
   192
#define AKNCOLUMNLISTBOXNAME(x) AknListBoxLinesTemplate<CAknColumnListBox >(x)
williamr@2
   193
#define AKNDOUBLELISTBOXNAME(x) AknListBoxLinesTemplate<CEikFormattedCellListBox >(x)
williamr@2
   194
#define AKNSETTINGLISTBOXNAME(x) AknListBoxLinesTemplate<CEikSettingsListBox >(x)
williamr@2
   195
williamr@2
   196
// Templates available: AknListBoxLinesTemplate<>, AknListBoxShortCutTemplate<>
williamr@2
   197
#define AKNCOLUMNLISTBOX AknListBoxLinesTemplate<CAknColumnListBox >
williamr@2
   198
#define AKNFORMATTEDLISTBOX AknListBoxLinesTemplate<CEikFormattedCellListBox >
williamr@2
   199
#define AKNSETTINGSLISTBOX AknListBoxLinesTemplate<CEikSettingsListBox >
williamr@2
   200
#define AKNGRID CAknGrid
williamr@2
   201
williamr@2
   202
williamr@2
   203
williamr@2
   204
williamr@2
   205
williamr@2
   206
williamr@2
   207
williamr@2
   208
//
williamr@2
   209
//
williamr@2
   210
// Derived listboxes (Use these in applications!)
williamr@2
   211
// These are only for full screen lists -- the Rect() of the list must be ClientRect()
williamr@2
   212
//
williamr@2
   213
//
williamr@2
   214
williamr@2
   215
williamr@2
   216
/**
williamr@2
   217
 * list_single_pane
williamr@2
   218
 *
williamr@2
   219
 * list item string format: "\tTextLabel\t0\t1"
williamr@2
   220
 * where 0 and 1 are indexes to icon array
williamr@2
   221
 */
williamr@2
   222
williamr@2
   223
class CAknSingleStyleListBox : public CEikColumnListBoxTypedef
williamr@2
   224
    {
williamr@2
   225
public:
williamr@2
   226
    IMPORT_C CAknSingleStyleListBox();
williamr@2
   227
    /** SizeChanged()
williamr@2
   228
     * 
williamr@2
   229
     * Determines layout of the listbox
williamr@2
   230
     */
williamr@2
   231
    IMPORT_C void SizeChanged();
williamr@2
   232
    /** MinimumSize()
williamr@2
   233
     * 
williamr@2
   234
     * Determines size of the listbox for use in dialogs.
williamr@2
   235
     */
williamr@2
   236
    IMPORT_C TSize MinimumSize();
williamr@2
   237
    /**
williamr@2
   238
     * From CCoeControl.     
williamr@2
   239
     * Handles pointer events
williamr@2
   240
     */
williamr@2
   241
    IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent);  
williamr@2
   242
private:
williamr@2
   243
    void SizeChangedL();
williamr@2
   244
    };
williamr@2
   245
williamr@2
   246
/**
williamr@2
   247
 * list_single_number_pane
williamr@2
   248
 *
williamr@2
   249
 * list item string format: "2\tTextLabel\t0\t1"
williamr@2
   250
 * where 0 and 1 are indexes to icon array
williamr@2
   251
 */
williamr@2
   252
williamr@2
   253
class CAknSingleNumberStyleListBox : public CEikColumnListBoxTypedef
williamr@2
   254
    {
williamr@2
   255
public:
williamr@2
   256
    IMPORT_C CAknSingleNumberStyleListBox();
williamr@2
   257
    /** SizeChanged()
williamr@2
   258
     * 
williamr@2
   259
     * Determines layout of the listbox
williamr@2
   260
     */
williamr@2
   261
    IMPORT_C void SizeChanged();
williamr@2
   262
    /** MinimumSize()
williamr@2
   263
     * 
williamr@2
   264
     * Determines size of the listbox for use in dialogs.
williamr@2
   265
     */
williamr@2
   266
    IMPORT_C TSize MinimumSize();
williamr@2
   267
    /**
williamr@2
   268
     * From CCoeControl.     
williamr@2
   269
     * Handles pointer events
williamr@2
   270
     */
williamr@2
   271
    IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent);   
williamr@2
   272
private:
williamr@2
   273
    void SizeChangedL();
williamr@2
   274
    };
williamr@2
   275
williamr@2
   276
/**
williamr@2
   277
 * list_single_heading_pane
williamr@2
   278
 *
williamr@2
   279
 * list item string format: "Heading\tTextLabel\t0\t1"
williamr@2
   280
 * where 0 and 1 are indexes to icon array
williamr@2
   281
 *
williamr@2
   282
 */
williamr@2
   283
williamr@2
   284
class CAknSingleHeadingStyleListBox : public CEikColumnListBoxTypedef
williamr@2
   285
    {
williamr@2
   286
public:
williamr@2
   287
    IMPORT_C CAknSingleHeadingStyleListBox();
williamr@2
   288
    /** SizeChanged()
williamr@2
   289
     * 
williamr@2
   290
     * Determines layout of the listbox
williamr@2
   291
     */
williamr@2
   292
    IMPORT_C void SizeChanged();
williamr@2
   293
    /** MinimumSize()
williamr@2
   294
     * 
williamr@2
   295
     * Determines size of the listbox for use in dialogs.
williamr@2
   296
     */
williamr@2
   297
    IMPORT_C TSize MinimumSize();
williamr@2
   298
    /**
williamr@2
   299
     * From CCoeControl.     
williamr@2
   300
     * Handles pointer events
williamr@2
   301
     */
williamr@2
   302
    IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); 
williamr@2
   303
williamr@2
   304
protected:
williamr@2
   305
    /** CreateItemDrawerL()
williamr@2
   306
     *
williamr@2
   307
     * Chooses which itemdrawer to use.
williamr@2
   308
     */
williamr@2
   309
    IMPORT_C virtual void CreateItemDrawerL();
williamr@2
   310
    
williamr@2
   311
   /** MakeViewClassInstanceL()
williamr@2
   312
    *
williamr@2
   313
    * Chooses which listbox view class to use
williamr@2
   314
    */
williamr@2
   315
    IMPORT_C virtual CListBoxView* MakeViewClassInstanceL();
williamr@2
   316
private:
williamr@2
   317
    void SizeChangedL();
williamr@2
   318
    };
williamr@2
   319
williamr@2
   320
williamr@2
   321
/**
williamr@2
   322
 * list_single_graphic_pane
williamr@2
   323
 *
williamr@2
   324
 * list item string format: "0\tTextLabel\t1\t2"
williamr@2
   325
 * where 0,1,2 are index to the icon array 
williamr@2
   326
 */
williamr@2
   327
williamr@2
   328
class CAknSingleGraphicStyleListBox : public CEikColumnListBoxTypedef
williamr@2
   329
    {
williamr@2
   330
public: 
williamr@2
   331
    IMPORT_C CAknSingleGraphicStyleListBox();
williamr@2
   332
    /** SizeChanged()
williamr@2
   333
     * 
williamr@2
   334
     * Determines layout of the listbox
williamr@2
   335
     */
williamr@2
   336
    IMPORT_C void SizeChanged();
williamr@2
   337
    /** MinimumSize()
williamr@2
   338
     * 
williamr@2
   339
     * Determines size of the listbox for use in dialogs.
williamr@2
   340
     */
williamr@2
   341
    IMPORT_C TSize MinimumSize();
williamr@2
   342
    /**
williamr@2
   343
     * From CCoeControl.     
williamr@2
   344
     * Handles pointer events
williamr@2
   345
     */
williamr@2
   346
    IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); 
williamr@2
   347
private:
williamr@2
   348
    void SizeChangedL();
williamr@2
   349
    };
williamr@2
   350
williamr@2
   351
/**
williamr@2
   352
 * list_single_Graphic_heading_pane
williamr@2
   353
 *
williamr@2
   354
 * list item string format: "0\tHeading\tTextLabel\t1\t2"
williamr@2
   355
 * where 0,1,2 are index to the icon array 
williamr@2
   356
 */
williamr@2
   357
williamr@2
   358
class CAknSingleGraphicHeadingStyleListBox : public CEikColumnListBoxTypedef
williamr@2
   359
    {
williamr@2
   360
public:
williamr@2
   361
    IMPORT_C CAknSingleGraphicHeadingStyleListBox();
williamr@2
   362
    /** SizeChanged()
williamr@2
   363
     * 
williamr@2
   364
     * Determines layout of the listbox
williamr@2
   365
     */
williamr@2
   366
    IMPORT_C void SizeChanged();
williamr@2
   367
    /** MinimumSize()
williamr@2
   368
     * 
williamr@2
   369
     * Determines size of the listbox for use in dialogs.
williamr@2
   370
     */
williamr@2
   371
    IMPORT_C TSize MinimumSize();
williamr@2
   372
    /**
williamr@2
   373
     * From CCoeControl.     
williamr@2
   374
     * Handles pointer events
williamr@2
   375
     */
williamr@2
   376
    IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent);    
williamr@2
   377
protected:
williamr@2
   378
    IMPORT_C virtual void CreateItemDrawerL();
williamr@2
   379
   /** MakeViewClassInstanceL()
williamr@2
   380
    *
williamr@2
   381
    * Chooses which listbox view class to use
williamr@2
   382
    */
williamr@2
   383
    IMPORT_C virtual CListBoxView* MakeViewClassInstanceL();
williamr@2
   384
private:
williamr@2
   385
    void SizeChangedL();
williamr@2
   386
    };
williamr@2
   387
williamr@2
   388
/**
williamr@2
   389
 * list_single_number_heading_pane
williamr@2
   390
 *
williamr@2
   391
 * list item string format: "1\tHeading\tTextLabel\t2\t3"
williamr@2
   392
 * where 2 and 3 are indexes to icon array
williamr@2
   393
 */
williamr@2
   394
williamr@2
   395
class CAknSingleNumberHeadingStyleListBox : public CEikColumnListBoxTypedef
williamr@2
   396
    {
williamr@2
   397
public:
williamr@2
   398
    IMPORT_C CAknSingleNumberHeadingStyleListBox();
williamr@2
   399
    /** SizeChanged()
williamr@2
   400
     * 
williamr@2
   401
     * Determines layout of the listbox
williamr@2
   402
     */
williamr@2
   403
    IMPORT_C void SizeChanged();
williamr@2
   404
    /** MinimumSize()
williamr@2
   405
     * 
williamr@2
   406
     * Determines size of the listbox for use in dialogs.
williamr@2
   407
     */
williamr@2
   408
    IMPORT_C TSize MinimumSize();
williamr@2
   409
    /**
williamr@2
   410
     * From CCoeControl.     
williamr@2
   411
     * Handles pointer events
williamr@2
   412
     */
williamr@2
   413
    IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); 
williamr@2
   414
protected:
williamr@2
   415
    IMPORT_C virtual void CreateItemDrawerL();
williamr@2
   416
   /** MakeViewClassInstanceL()
williamr@2
   417
    *
williamr@2
   418
    * Chooses which listbox view class to use
williamr@2
   419
    */
williamr@2
   420
    IMPORT_C virtual CListBoxView* MakeViewClassInstanceL();
williamr@2
   421
private:
williamr@2
   422
    void SizeChangedL();
williamr@2
   423
    };
williamr@2
   424
williamr@2
   425
/**
williamr@2
   426
 * list_single_large_pane
williamr@2
   427
 *
williamr@2
   428
 * list item string format: "1\tTextLabel\t0\t0"
williamr@2
   429
 * where 0 is an index to icon array
williamr@2
   430
 */
williamr@2
   431
williamr@2
   432
class CAknSingleLargeStyleListBox : public CEikColumnListBoxTypedef
williamr@2
   433
    {
williamr@2
   434
public:
williamr@2
   435
    IMPORT_C CAknSingleLargeStyleListBox();
williamr@2
   436
    /** SizeChanged()
williamr@2
   437
     * 
williamr@2
   438
     * Determines layout of the listbox
williamr@2
   439
     */
williamr@2
   440
    IMPORT_C void SizeChanged();
williamr@2
   441
    /** MinimumSize()
williamr@2
   442
     * 
williamr@2
   443
     * Determines size of the listbox for use in dialogs.
williamr@2
   444
     */
williamr@2
   445
    IMPORT_C TSize MinimumSize();
williamr@2
   446
    /**
williamr@2
   447
     * From CCoeControl.     
williamr@2
   448
     * Handles pointer events
williamr@2
   449
     */
williamr@2
   450
    IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent);   
williamr@2
   451
private:
williamr@2
   452
    void SizeChangedL();
williamr@2
   453
    };
williamr@2
   454
williamr@2
   455
/**
williamr@2
   456
 * list_double_pane and list_big_single_pane
williamr@2
   457
 *
williamr@2
   458
 * list item string format: " \tFirstLabel\tSecondLabel\t0\t0"
williamr@2
   459
 * where 0 is an index to icon array
williamr@2
   460
 */
williamr@2
   461
williamr@2
   462
class CAknDoubleStyleListBox : public CEikFormattedCellListBoxTypedef
williamr@2
   463
    {
williamr@2
   464
public:
williamr@2
   465
    IMPORT_C CAknDoubleStyleListBox();
williamr@2
   466
    /** SizeChanged()
williamr@2
   467
     * 
williamr@2
   468
     * Determines layout of the listbox
williamr@2
   469
     */
williamr@2
   470
    IMPORT_C void SizeChanged();
williamr@2
   471
    /** MinimumSize()
williamr@2
   472
     * 
williamr@2
   473
     * Determines size of the listbox for use in dialogs.
williamr@2
   474
     */
williamr@2
   475
    IMPORT_C TSize MinimumSize();
williamr@2
   476
    /**
williamr@2
   477
     * From CCoeControl.     
williamr@2
   478
     * Handles pointer events
williamr@2
   479
     */
williamr@2
   480
    IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); 
williamr@2
   481
private:
williamr@2
   482
    void SizeChangedL();
williamr@2
   483
    };
williamr@2
   484
williamr@2
   485
/**
williamr@2
   486
 * list_twoline_pane
williamr@2
   487
 *
williamr@2
   488
 * list item string format: " \tFirstLongLabel\t\t0"
williamr@2
   489
 * where 0 is an index to icon array
williamr@2
   490
 */
williamr@2
   491
williamr@2
   492
class CAknDoubleStyle2ListBox : public CAknDoubleStyleListBox
williamr@2
   493
    {
williamr@2
   494
public:
williamr@2
   495
    /** SizeChanged()
williamr@2
   496
     * 
williamr@2
   497
     * Determines layout of the listbox
williamr@2
   498
     */
williamr@2
   499
    IMPORT_C void SizeChanged();
williamr@2
   500
    /** CreateItemDrawerL()
williamr@2
   501
     *
williamr@2
   502
     * Chooses which itemdrawer to use.
williamr@2
   503
     */
williamr@2
   504
    IMPORT_C void CreateItemDrawerL();
williamr@2
   505
    /**
williamr@2
   506
     * From CCoeControl.     
williamr@2
   507
     * Handles pointer events
williamr@2
   508
     */
williamr@2
   509
    IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent);
williamr@2
   510
private:
williamr@2
   511
    void SizeChangedL();
williamr@2
   512
    };
williamr@2
   513
williamr@2
   514
 /**
williamr@2
   515
 * list_double_number_pane and list_big_single_number_pane
williamr@2
   516
 *
williamr@2
   517
 * list item string format: "1\tFirstLabel\t\t0\t0"
williamr@2
   518
 * list item string format: "1\tFirstLabel\tSecondLabel\t0\t0"
williamr@2
   519
 * where 0 is an index to icon array
williamr@2
   520
 *
williamr@2
   521
 */
williamr@2
   522
williamr@2
   523
class CAknDoubleNumberStyleListBox : public CEikFormattedCellListBoxTypedef
williamr@2
   524
    {
williamr@2
   525
public:
williamr@2
   526
    IMPORT_C CAknDoubleNumberStyleListBox();
williamr@2
   527
    /** SizeChanged()
williamr@2
   528
     * 
williamr@2
   529
     * Determines layout of the listbox
williamr@2
   530
     */
williamr@2
   531
    IMPORT_C void SizeChanged();
williamr@2
   532
    /** MinimumSize()
williamr@2
   533
     * 
williamr@2
   534
     * Determines size of the listbox for use in dialogs.
williamr@2
   535
     */
williamr@2
   536
    IMPORT_C TSize MinimumSize();
williamr@2
   537
    /**
williamr@2
   538
     * From CCoeControl.     
williamr@2
   539
     * Handles pointer events
williamr@2
   540
     */
williamr@2
   541
    IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); 
williamr@2
   542
private:
williamr@2
   543
    void SizeChangedL();
williamr@2
   544
    };
williamr@2
   545
williamr@2
   546
/**
williamr@2
   547
 * list_double_time_pane
williamr@2
   548
 */
williamr@2
   549
williamr@2
   550
class CAknDoubleTimeStyleListBox : public CEikFormattedCellListBoxTypedef
williamr@2
   551
    {
williamr@2
   552
public:
williamr@2
   553
    IMPORT_C CAknDoubleTimeStyleListBox();
williamr@2
   554
    /** SizeChanged()
williamr@2
   555
     * 
williamr@2
   556
     * Determines layout of the listbox
williamr@2
   557
     */
williamr@2
   558
    IMPORT_C void SizeChanged();
williamr@2
   559
    /** MinimumSize()
williamr@2
   560
     * 
williamr@2
   561
     * Determines size of the listbox for use in dialogs.
williamr@2
   562
     */
williamr@2
   563
    IMPORT_C TSize MinimumSize();
williamr@2
   564
    /**
williamr@2
   565
     * From CCoeControl.     
williamr@2
   566
     * Handles pointer events
williamr@2
   567
     */
williamr@2
   568
    IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent);
williamr@2
   569
private:
williamr@2
   570
    void SizeChangedL();
williamr@2
   571
    };
williamr@2
   572
williamr@2
   573
/**
williamr@2
   574
 * list_double_large_pane
williamr@2
   575
 *
williamr@2
   576
 * list item string format: "1\tFirstLabel\tSecondLabel\t0\t0"
williamr@2
   577
 *
williamr@2
   578
 * where 0 is an index of small (13x13) icon in icon array
williamr@2
   579
 *   and 1 is an index of a thumbnail image
williamr@2
   580
 *
williamr@2
   581
 * Good thumbnail image sizes for this list are:
williamr@2
   582
 *   30x40, 36x44, 40x30, 40x48, 44x36.
williamr@2
   583
 */
williamr@2
   584
williamr@2
   585
class CAknDoubleLargeStyleListBox : public CEikFormattedCellListBoxTypedef
williamr@2
   586
    {
williamr@2
   587
public:
williamr@2
   588
    IMPORT_C CAknDoubleLargeStyleListBox();
williamr@2
   589
    /** SizeChanged()
williamr@2
   590
     * 
williamr@2
   591
     * Determines layout of the listbox
williamr@2
   592
     */
williamr@2
   593
    IMPORT_C void SizeChanged();
williamr@2
   594
    /** MinimumSize()
williamr@2
   595
     * 
williamr@2
   596
     * Determines size of the listbox for use in dialogs.
williamr@2
   597
     */
williamr@2
   598
    IMPORT_C TSize MinimumSize();
williamr@2
   599
    /** CreateItemDrawerL()
williamr@2
   600
     *
williamr@2
   601
     * Chooses which itemdrawer to use.
williamr@2
   602
     */
williamr@2
   603
    IMPORT_C virtual void CreateItemDrawerL();
williamr@2
   604
    /**
williamr@2
   605
     * From CCoeControl.     
williamr@2
   606
     * Handles pointer events
williamr@2
   607
     */
williamr@2
   608
    IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); 
williamr@2
   609
private:
williamr@2
   610
    void SizeChangedL();
williamr@2
   611
    };
williamr@2
   612
williamr@2
   613
williamr@2
   614
/**
williamr@2
   615
 * list_double_graphic_pane
williamr@2
   616
 *
williamr@2
   617
 * list item string format: "0\tFirstLabel\tSecondLabel\t0"
williamr@2
   618
 * where 0 is index to icon array
williamr@2
   619
 *
williamr@2
   620
 */
williamr@2
   621
williamr@2
   622
class CAknDoubleGraphicStyleListBox : public CEikFormattedCellListBoxTypedef
williamr@2
   623
    {
williamr@2
   624
public:
williamr@2
   625
    IMPORT_C CAknDoubleGraphicStyleListBox();
williamr@2
   626
    /** SizeChanged()
williamr@2
   627
     * 
williamr@2
   628
     * Determines layout of the listbox
williamr@2
   629
     */
williamr@2
   630
    IMPORT_C void SizeChanged();
williamr@2
   631
    /** MinimumSize()
williamr@2
   632
     * 
williamr@2
   633
     * Determines size of the listbox for use in dialogs.
williamr@2
   634
     */
williamr@2
   635
    IMPORT_C TSize MinimumSize();
williamr@2
   636
    /**
williamr@2
   637
     * From CCoeControl.     
williamr@2
   638
     * Handles pointer events
williamr@2
   639
     */
williamr@2
   640
    IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); 
williamr@2
   641
private:
williamr@2
   642
    void SizeChangedL();
williamr@2
   643
    };
williamr@2
   644
williamr@2
   645
williamr@2
   646
/** 
williamr@2
   647
 * list_double2_graphic_pane
williamr@2
   648
 *
williamr@2
   649
 * list item string format: "0\tFirstLabel\tSecondLabel\t0"
williamr@2
   650
 * where 0 is index to icon array
williamr@2
   651
 *
williamr@2
   652
 */
williamr@2
   653
williamr@2
   654
class CAknDouble2GraphicStyleListBox : public CEikFormattedCellListBoxTypedef
williamr@2
   655
    {
williamr@2
   656
public:
williamr@2
   657
    IMPORT_C CAknDouble2GraphicStyleListBox();
williamr@2
   658
    /** SizeChanged()
williamr@2
   659
     * 
williamr@2
   660
     * Determines layout of the listbox
williamr@2
   661
     */
williamr@2
   662
    IMPORT_C void SizeChanged();
williamr@2
   663
    /** MinimumSize()
williamr@2
   664
     * 
williamr@2
   665
     * Determines size of the listbox for use in dialogs.
williamr@2
   666
     */
williamr@2
   667
    IMPORT_C TSize MinimumSize();
williamr@2
   668
williamr@2
   669
	/** CreateItemDrawerL()
williamr@2
   670
     *
williamr@2
   671
     * Chooses which itemdrawer to use.
williamr@2
   672
     */
williamr@2
   673
    IMPORT_C void CreateItemDrawerL();
williamr@2
   674
    /**
williamr@2
   675
     * From CCoeControl.     
williamr@2
   676
     * Handles pointer events
williamr@2
   677
     */
williamr@2
   678
    IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); 
williamr@2
   679
private:
williamr@2
   680
    void SizeChangedL();
williamr@2
   681
    };
williamr@2
   682
williamr@2
   683
williamr@2
   684
/**
williamr@2
   685
 * list_double2_large_graphic_pane
williamr@2
   686
 *
williamr@2
   687
 * list item string format: "1\tFirstLabel\tSecondLabel\t0"
williamr@2
   688
 *
williamr@2
   689
 * where 0 is an index of small (13x13) icon in icon array
williamr@2
   690
 *   and 1 is an index of a thumbnail image
williamr@2
   691
 *
williamr@2
   692
 */
williamr@2
   693
williamr@2
   694
class CAknDouble2LargeStyleListBox : public CEikFormattedCellListBoxTypedef
williamr@2
   695
    {
williamr@2
   696
public:
williamr@2
   697
    IMPORT_C CAknDouble2LargeStyleListBox();
williamr@2
   698
    /** SizeChanged()
williamr@2
   699
     * 
williamr@2
   700
     * Determines layout of the listbox
williamr@2
   701
     */
williamr@2
   702
    IMPORT_C void SizeChanged();
williamr@2
   703
    /** MinimumSize()
williamr@2
   704
     * 
williamr@2
   705
     * Determines size of the listbox for use in dialogs.
williamr@2
   706
     */
williamr@2
   707
    IMPORT_C TSize MinimumSize();
williamr@2
   708
    /** CreateItemDrawerL()
williamr@2
   709
     *
williamr@2
   710
     * Chooses which itemdrawer to use.
williamr@2
   711
     */
williamr@2
   712
    IMPORT_C virtual void CreateItemDrawerL();
williamr@2
   713
    /**
williamr@2
   714
     * From CCoeControl.     
williamr@2
   715
     * Handles pointer events
williamr@2
   716
     */
williamr@2
   717
    IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); 
williamr@2
   718
private:
williamr@2
   719
    void SizeChangedL();
williamr@2
   720
    };
williamr@2
   721
williamr@2
   722
williamr@2
   723
/**
williamr@2
   724
*  list_double2_graphic_large_graphic_pane
williamr@2
   725
*
williamr@2
   726
*  This is similar but not identical to
williamr@2
   727
*  java list CAknDouble2GraphicLargeStyleListBox
williamr@2
   728
*
williamr@2
   729
*  list item string format: "0\t1\tFirstLabel\tSecondLabel\t2\t3"
williamr@2
   730
*
williamr@2
   731
*  where 0 (mandatory), 2 and 3 (optional) are an index of small icon
williamr@2
   732
*  in icon array and 1 (mandatory) is an index of a thumbnail image
williamr@2
   733
*
williamr@2
   734
*  @lib avkon
williamr@2
   735
*  @since Series 60 2.8
williamr@2
   736
*/
williamr@2
   737
williamr@2
   738
class CAknDouble2GraphicLargeGraphicStyleListBox : public CEikFormattedCellListBoxTypedef
williamr@2
   739
    {
williamr@2
   740
public:
williamr@2
   741
    IMPORT_C CAknDouble2GraphicLargeGraphicStyleListBox();
williamr@2
   742
    /** SizeChanged()
williamr@2
   743
     * 
williamr@2
   744
     * Determines layout of the listbox
williamr@2
   745
     */
williamr@2
   746
    IMPORT_C void SizeChanged();
williamr@2
   747
    /** MinimumSize()
williamr@2
   748
     * 
williamr@2
   749
     * Determines size of the listbox for use in dialogs.
williamr@2
   750
     */
williamr@2
   751
    IMPORT_C TSize MinimumSize();
williamr@2
   752
    /** CreateItemDrawerL()
williamr@2
   753
     *
williamr@2
   754
     * Chooses which itemdrawer to use.
williamr@2
   755
     */
williamr@2
   756
    IMPORT_C virtual void CreateItemDrawerL();
williamr@2
   757
    /**
williamr@2
   758
     * From CCoeControl.     
williamr@2
   759
     * Handles pointer events
williamr@2
   760
     */
williamr@2
   761
    IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent);   
williamr@2
   762
private:
williamr@2
   763
    void SizeChangedL();
williamr@2
   764
    };
williamr@2
   765
williamr@2
   766
williamr@2
   767
/**
williamr@2
   768
 * list_double2_graphic_pane
williamr@2
   769
 *
williamr@2
   770
 * list item string format: "1\tFirstLabel\tSecondLabel\t0"
williamr@2
   771
 * where 0 is an index to icon array
williamr@2
   772
 *
williamr@2
   773
 */
williamr@2
   774
williamr@2
   775
class CAknFormDoubleGraphicStyleListBox : public CAknDoubleGraphicStyleListBox
williamr@2
   776
    {
williamr@2
   777
public:
williamr@2
   778
    /** SizeChanged()
williamr@2
   779
     * 
williamr@2
   780
     * Determines layout of the listbox
williamr@2
   781
     */
williamr@2
   782
    IMPORT_C void SizeChanged();
williamr@2
   783
    /**
williamr@2
   784
     * From CCoeControl.     
williamr@2
   785
     * Handles pointer events
williamr@2
   786
     */
williamr@2
   787
    IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); 
williamr@2
   788
private:
williamr@2
   789
    void SizeChangedL();
williamr@2
   790
    };
williamr@2
   791
typedef CAknFormDoubleGraphicStyleListBox CAknSingleBigHeadingGraphicListBox;
williamr@2
   792
williamr@2
   793
/**
williamr@2
   794
 * list_double2_pane
williamr@2
   795
 *
williamr@2
   796
 * list item string format: " \tFirstLabel\tSecondLabel\t0"
williamr@2
   797
 * where 0 is an index to icon array
williamr@2
   798
 */
williamr@2
   799
williamr@2
   800
class CAknFormDoubleStyleListBox : public CAknDoubleStyleListBox
williamr@2
   801
    {
williamr@2
   802
public:
williamr@2
   803
    /** SizeChanged()
williamr@2
   804
     * 
williamr@2
   805
     * Determines layout of the listbox
williamr@2
   806
     */
williamr@2
   807
    IMPORT_C void SizeChanged();
williamr@2
   808
    /**
williamr@2
   809
     * From CCoeControl.     
williamr@2
   810
     * Handles pointer events
williamr@2
   811
     */
williamr@2
   812
    IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); 
williamr@2
   813
private:
williamr@2
   814
    void SizeChangedL();
williamr@2
   815
    };
williamr@2
   816
typedef CAknFormDoubleStyleListBox CAknSingleBigHeadingListBox;
williamr@2
   817
williamr@2
   818
williamr@2
   819
/**
williamr@2
   820
 * list_setting_pane and list_big_single_setting_pane
williamr@2
   821
 *
williamr@2
   822
 * list item string format: "\tFirstLabel\t\tValueText"
williamr@2
   823
 * list item string format: "\tFirstLabel\t0\t"
williamr@2
   824
 * list item string format: "\tFirstLabel\t\tValueText\t*"
williamr@2
   825
 * list item string format: "\tFirstLabel\t\t\t\tSecondLabel"
williamr@2
   826
 * where 0 is an index to icon array
williamr@2
   827
 */
williamr@2
   828
williamr@2
   829
class CAknSettingStyleListBox : public CEikSettingsListBoxTypedef
williamr@2
   830
    {
williamr@2
   831
public:
williamr@2
   832
    IMPORT_C CAknSettingStyleListBox();
williamr@2
   833
    /** SizeChanged()
williamr@2
   834
     * 
williamr@2
   835
     * Determines layout of the listbox
williamr@2
   836
     */
williamr@2
   837
    IMPORT_C void SizeChanged();
williamr@2
   838
    /** MinimumSize()
williamr@2
   839
     * 
williamr@2
   840
     * Determines size of the listbox for use in dialogs.
williamr@2
   841
     */
williamr@2
   842
    IMPORT_C TSize MinimumSize();
williamr@2
   843
    /**
williamr@2
   844
     * From CCoeControl.     
williamr@2
   845
     * Handles pointer events
williamr@2
   846
     */
williamr@2
   847
    IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); 
williamr@2
   848
private:
williamr@2
   849
    void SizeChangedL();
williamr@2
   850
    };
williamr@2
   851
williamr@2
   852
/**
williamr@2
   853
 * list_setting_number_pane and list_big_single_setting_number_pane
williamr@2
   854
 *
williamr@2
   855
 * list item string format: "1\tFirstLabel\t\tValueText"
williamr@2
   856
 * list item string format: "2\tFirstLabel\t0\t"
williamr@2
   857
 * list item string format: "3\tFirstLabel\t\tValueText\t*"
williamr@2
   858
 * list item string format: "4\tFirstLabel\t\t\t\tSecondLabel"
williamr@2
   859
 * where 0 is an index to icon array
williamr@2
   860
 * and 1..4 is list item number shown on screen
williamr@2
   861
 */
williamr@2
   862
class CAknSettingNumberStyleListBox : public CEikSettingsListBoxTypedef
williamr@2
   863
    {
williamr@2
   864
public:
williamr@2
   865
    IMPORT_C CAknSettingNumberStyleListBox();
williamr@2
   866
    /** SizeChanged()
williamr@2
   867
     * 
williamr@2
   868
     * Determines layout of the listbox
williamr@2
   869
     */
williamr@2
   870
    IMPORT_C void SizeChanged();
williamr@2
   871
    /** MinimumSize()
williamr@2
   872
     * 
williamr@2
   873
     * Determines size of the listbox for use in dialogs.
williamr@2
   874
     */
williamr@2
   875
    IMPORT_C TSize MinimumSize();
williamr@2
   876
    /**
williamr@2
   877
     * From CCoeControl.     
williamr@2
   878
     * Handles pointer events
williamr@2
   879
     */
williamr@2
   880
    IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); 
williamr@2
   881
private:
williamr@2
   882
    void SizeChangedL();
williamr@2
   883
    };
williamr@2
   884
williamr@2
   885
williamr@2
   886
//
williamr@2
   887
// Use the popup styles with CAknPopupList and CAknListQueryDialog
williamr@2
   888
//
williamr@2
   889
williamr@2
   890
/**
williamr@2
   891
 * list_single_popup_menu_pane
williamr@2
   892
 *
williamr@2
   893
 * list item string format: "FirstLabel\t0"
williamr@2
   894
 *
williamr@2
   895
 * where 0 is an index to icon array
williamr@2
   896
 */
williamr@2
   897
williamr@2
   898
class CAknSinglePopupMenuStyleListBox : public AknPopupListEmpty<CEikFormattedCellListBox>
williamr@2
   899
    {
williamr@2
   900
public:
williamr@2
   901
    /** SizeChanged()
williamr@2
   902
     * 
williamr@2
   903
     * Determines layout of the listbox
williamr@2
   904
     */
williamr@2
   905
    IMPORT_C void SizeChanged();
williamr@2
   906
    /** MinimumSize()
williamr@2
   907
     * 
williamr@2
   908
     * Determines size of the listbox for use in dialogs.
williamr@2
   909
     */
williamr@2
   910
    IMPORT_C TSize MinimumSize();
williamr@2
   911
    protected:
williamr@2
   912
    /** CreateItemDrawerL()
williamr@2
   913
     *
williamr@2
   914
     * Chooses which itemdrawer to use.
williamr@2
   915
     */
williamr@2
   916
    IMPORT_C virtual void CreateItemDrawerL();
williamr@2
   917
    /**
williamr@2
   918
     * From CCoeControl.     
williamr@2
   919
     * Handles pointer events
williamr@2
   920
     */
williamr@2
   921
    IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent);
williamr@2
   922
private:
williamr@2
   923
    void SizeChangedL();
williamr@2
   924
    };
williamr@2
   925
williamr@2
   926
/**
williamr@2
   927
 * list_single_graphic_popup_menu_pane
williamr@2
   928
 *
williamr@2
   929
 * list item string format: "0\tLabel"
williamr@2
   930
 *
williamr@2
   931
 * where 0 is an index to icon array
williamr@2
   932
 */
williamr@2
   933
williamr@2
   934
class CAknSingleGraphicPopupMenuStyleListBox : public AknPopupListEmpty<CEikFormattedCellListBox>
williamr@2
   935
    {
williamr@2
   936
public:
williamr@2
   937
    /** SizeChanged()
williamr@2
   938
     * 
williamr@2
   939
     * Determines layout of the listbox
williamr@2
   940
     */
williamr@2
   941
    IMPORT_C void SizeChanged();
williamr@2
   942
    /** MinimumSize()
williamr@2
   943
     * 
williamr@2
   944
     * Determines size of the listbox for use in dialogs.
williamr@2
   945
     */
williamr@2
   946
    IMPORT_C TSize MinimumSize();
williamr@2
   947
    protected:
williamr@2
   948
    /** CreateItemDrawerL()
williamr@2
   949
     *
williamr@2
   950
     * Chooses which itemdrawer to use.
williamr@2
   951
     */
williamr@2
   952
    IMPORT_C virtual void CreateItemDrawerL();
williamr@2
   953
    /**
williamr@2
   954
     * From CCoeControl.     
williamr@2
   955
     * Handles pointer events
williamr@2
   956
     */
williamr@2
   957
    IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent);  
williamr@2
   958
private:
williamr@2
   959
    void SizeChangedL();
williamr@2
   960
    };
williamr@2
   961
williamr@2
   962
/**
williamr@2
   963
 * list_single_graphic_bt_popup_menu_pane
williamr@2
   964
 *
williamr@2
   965
 * list item string format: "0\tLabel"
williamr@2
   966
 *
williamr@2
   967
 * where 0 is an index to icon array
williamr@2
   968
 *
williamr@2
   969
 */
williamr@2
   970
williamr@2
   971
class CAknSingleGraphicBtPopupMenuStyleListBox : public CAknSingleGraphicPopupMenuStyleListBox
williamr@2
   972
    {
williamr@2
   973
public:
williamr@2
   974
    /** SizeChanged()
williamr@2
   975
     * 
williamr@2
   976
     * Determines layout of the listbox
williamr@2
   977
     */
williamr@2
   978
    IMPORT_C virtual void SizeChanged();
williamr@2
   979
    /**
williamr@2
   980
     * From CCoeControl.     
williamr@2
   981
     * Handles pointer events
williamr@2
   982
     */
williamr@2
   983
    IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent);    
williamr@2
   984
    };
williamr@2
   985
williamr@2
   986
/**
williamr@2
   987
 * list_single_heading_popup_menu_pane
williamr@2
   988
 *
williamr@2
   989
 * list item string format: "Heading\tLabel"
williamr@2
   990
 *
williamr@2
   991
 */
williamr@2
   992
williamr@2
   993
class CAknSingleHeadingPopupMenuStyleListBox : public AknPopupListEmpty<CEikFormattedCellListBox>
williamr@2
   994
    {
williamr@2
   995
public:
williamr@2
   996
    IMPORT_C CAknSingleHeadingPopupMenuStyleListBox();
williamr@2
   997
    /** SizeChanged()
williamr@2
   998
     * 
williamr@2
   999
     * Determines layout of the listbox
williamr@2
  1000
     */
williamr@2
  1001
    IMPORT_C void SizeChanged();
williamr@2
  1002
    /** MinimumSize()
williamr@2
  1003
     * 
williamr@2
  1004
     * Determines size of the listbox for use in dialogs.
williamr@2
  1005
     */
williamr@2
  1006
    IMPORT_C TSize MinimumSize();
williamr@2
  1007
    /**
williamr@2
  1008
     * From CCoeControl.     
williamr@2
  1009
     * Handles pointer events
williamr@2
  1010
     */
williamr@2
  1011
    IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent);    
williamr@2
  1012
protected:
williamr@2
  1013
    /** CreateItemDrawerL()
williamr@2
  1014
     *
williamr@2
  1015
     * Chooses which itemdrawer to use.
williamr@2
  1016
     */
williamr@2
  1017
    IMPORT_C virtual void CreateItemDrawerL();
williamr@2
  1018
private:
williamr@2
  1019
    void SizeChangedL();
williamr@2
  1020
    };
williamr@2
  1021
williamr@2
  1022
williamr@2
  1023
/**
williamr@2
  1024
 * list_single_graphic_heading_popup_menu_pane
williamr@2
  1025
 *
williamr@2
  1026
 * list item string format: "0\tHeading\tLabel"
williamr@2
  1027
 *
williamr@2
  1028
 * where 0 is an index to icon array
williamr@2
  1029
 *
williamr@2
  1030
 */
williamr@2
  1031
williamr@2
  1032
class CAknSingleGraphicHeadingPopupMenuStyleListBox : public AknPopupListEmpty<CEikFormattedCellListBox>
williamr@2
  1033
williamr@2
  1034
    {
williamr@2
  1035
public:
williamr@2
  1036
    IMPORT_C CAknSingleGraphicHeadingPopupMenuStyleListBox();
williamr@2
  1037
    /** SizeChanged()
williamr@2
  1038
     * 
williamr@2
  1039
     * Determines layout of the listbox
williamr@2
  1040
     */
williamr@2
  1041
    IMPORT_C void SizeChanged();
williamr@2
  1042
    /** MinimumSize()
williamr@2
  1043
     * 
williamr@2
  1044
     * Determines size of the listbox for use in dialogs.
williamr@2
  1045
     */
williamr@2
  1046
    IMPORT_C TSize MinimumSize();
williamr@2
  1047
    /**
williamr@2
  1048
     * From CCoeControl.     
williamr@2
  1049
     * Handles pointer events
williamr@2
  1050
     */
williamr@2
  1051
    IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); 
williamr@2
  1052
protected:
williamr@2
  1053
    /** CreateItemDrawerL()
williamr@2
  1054
     *
williamr@2
  1055
     * Chooses which itemdrawer to use.
williamr@2
  1056
     */
williamr@2
  1057
    IMPORT_C virtual void CreateItemDrawerL();
williamr@2
  1058
private:
williamr@2
  1059
    void SizeChangedL();
williamr@2
  1060
    };
williamr@2
  1061
williamr@2
  1062
/**
williamr@2
  1063
 * list_double_popup_menu_pane
williamr@2
  1064
 *
williamr@2
  1065
 * list item string format: "FirstLabel\tSecondLabel"
williamr@2
  1066
 *
williamr@2
  1067
 */
williamr@2
  1068
williamr@2
  1069
class CAknDoublePopupMenuStyleListBox : public AknPopupListEmpty<CEikFormattedCellListBox>
williamr@2
  1070
    {
williamr@2
  1071
public:
williamr@2
  1072
    /** SizeChanged()
williamr@2
  1073
     * 
williamr@2
  1074
     * Determines layout of the listbox
williamr@2
  1075
     */
williamr@2
  1076
    IMPORT_C void SizeChanged();
williamr@2
  1077
    /** MinimumSize()
williamr@2
  1078
     * 
williamr@2
  1079
     * Determines size of the listbox for use in dialogs.
williamr@2
  1080
     */
williamr@2
  1081
    IMPORT_C TSize MinimumSize();
williamr@2
  1082
    /**
williamr@2
  1083
     * From CCoeControl.     
williamr@2
  1084
     * Handles pointer events
williamr@2
  1085
     */
williamr@2
  1086
    IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); 
williamr@2
  1087
protected:
williamr@2
  1088
    /** CreateItemDrawerL()
williamr@2
  1089
     *
williamr@2
  1090
     * Chooses which itemdrawer to use.
williamr@2
  1091
     */
williamr@2
  1092
    IMPORT_C virtual void CreateItemDrawerL();
williamr@2
  1093
private:
williamr@2
  1094
    void SizeChangedL();
williamr@2
  1095
    };
williamr@2
  1096
williamr@2
  1097
/**
williamr@2
  1098
 * list_single_popup_submenu_pane
williamr@2
  1099
 *
williamr@2
  1100
 * DO NOT USE
williamr@2
  1101
 *
williamr@2
  1102
 */
williamr@2
  1103
williamr@2
  1104
class CAknSinglePopupSubmenuStyleListBox : public AknPopupListEmpty<CEikFormattedCellListBox>
williamr@2
  1105
    {
williamr@2
  1106
public:
williamr@2
  1107
    /** SizeChanged()
williamr@2
  1108
     * 
williamr@2
  1109
     * Determines layout of the listbox
williamr@2
  1110
     */
williamr@2
  1111
    IMPORT_C void SizeChanged();
williamr@2
  1112
    /** MinimumSize()
williamr@2
  1113
     * 
williamr@2
  1114
     * Determines size of the listbox for use in dialogs.
williamr@2
  1115
     */
williamr@2
  1116
    IMPORT_C TSize MinimumSize();
williamr@2
  1117
    /**
williamr@2
  1118
     * From CCoeControl.     
williamr@2
  1119
     * Handles pointer events
williamr@2
  1120
     */
williamr@2
  1121
    IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); 
williamr@2
  1122
private:
williamr@2
  1123
    void SizeChangedL();
williamr@2
  1124
    };
williamr@2
  1125
williamr@2
  1126
williamr@2
  1127
/**
williamr@2
  1128
 * list_double_large_graphic_popup_menu_pane
williamr@2
  1129
 *
williamr@2
  1130
 * list item string format: "0\tFirstLabel\tSecondLabel"
williamr@2
  1131
 *
williamr@2
  1132
 * where 0 is an index to icon array
williamr@2
  1133
 *
williamr@2
  1134
 */
williamr@2
  1135
williamr@2
  1136
class CAknDoubleLargeGraphicPopupMenuStyleListBox : public AknPopupListEmpty<CEikFormattedCellListBox>
williamr@2
  1137
    {
williamr@2
  1138
public:
williamr@2
  1139
    /** SizeChanged()
williamr@2
  1140
     * 
williamr@2
  1141
     * Determines layout of the listbox
williamr@2
  1142
     */
williamr@2
  1143
    IMPORT_C void SizeChanged();
williamr@2
  1144
    /** MinimumSize()
williamr@2
  1145
     * 
williamr@2
  1146
     * Determines size of the listbox for use in dialogs.
williamr@2
  1147
     */
williamr@2
  1148
    IMPORT_C TSize MinimumSize();
williamr@2
  1149
    /**
williamr@2
  1150
     * From CCoeControl.     
williamr@2
  1151
     * Handles pointer events
williamr@2
  1152
     */
williamr@2
  1153
    IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent);
williamr@2
  1154
protected:
williamr@2
  1155
    /** CreateItemDrawerL()
williamr@2
  1156
     *
williamr@2
  1157
     * Chooses which itemdrawer to use.
williamr@2
  1158
     */
williamr@2
  1159
    IMPORT_C virtual void CreateItemDrawerL();
williamr@2
  1160
private:
williamr@2
  1161
    void SizeChangedL();
williamr@2
  1162
    };
williamr@2
  1163
williamr@2
  1164
williamr@2
  1165
/**
williamr@2
  1166
 * list_double2_popup_menu_pane
williamr@2
  1167
 *
williamr@2
  1168
 * list item string format: "FirstLabel\tSecondLabel"
williamr@2
  1169
 *
williamr@2
  1170
 */
williamr@2
  1171
williamr@2
  1172
class CAknDouble2PopupMenuStyleListBox : public AknPopupListEmpty<CEikFormattedCellListBox>
williamr@2
  1173
    {
williamr@2
  1174
public:
williamr@2
  1175
    /** SizeChanged()
williamr@2
  1176
     * 
williamr@2
  1177
     * Determines layout of the listbox
williamr@2
  1178
     */
williamr@2
  1179
    IMPORT_C void SizeChanged();
williamr@2
  1180
    /** MinimumSize()
williamr@2
  1181
     * 
williamr@2
  1182
     * Determines size of the listbox for use in dialogs.
williamr@2
  1183
     */
williamr@2
  1184
    IMPORT_C TSize MinimumSize();
williamr@2
  1185
    /**
williamr@2
  1186
     * From CCoeControl.     
williamr@2
  1187
     * Handles pointer events
williamr@2
  1188
     */
williamr@2
  1189
    IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent);  
williamr@2
  1190
protected:
williamr@2
  1191
    /** CreateItemDrawerL()
williamr@2
  1192
     *
williamr@2
  1193
     * Chooses which itemdrawer to use.
williamr@2
  1194
     */
williamr@2
  1195
    IMPORT_C virtual void CreateItemDrawerL();
williamr@2
  1196
private:
williamr@2
  1197
    void SizeChangedL();
williamr@2
  1198
    };
williamr@2
  1199
    
williamr@2
  1200
    
williamr@2
  1201
/**
williamr@2
  1202
 * list_single_2graphic_pane_cp2
williamr@2
  1203
 *
williamr@2
  1204
 * list item string format: "0\t1\tTextLabel\t2\t3"
williamr@2
  1205
 *
williamr@2
  1206
 * where 0,1,2,3 are index to the icon array 
williamr@2
  1207
 */
williamr@2
  1208
williamr@2
  1209
class CAknSingle2GraphicPopupMenuStyleListBox : public AknPopupListEmpty<CEikFormattedCellListBox>
williamr@2
  1210
    {
williamr@2
  1211
public:
williamr@2
  1212
    IMPORT_C CAknSingle2GraphicPopupMenuStyleListBox();
williamr@2
  1213
    /** SizeChanged()
williamr@2
  1214
     * 
williamr@2
  1215
     * Determines layout of the listbox
williamr@2
  1216
     */
williamr@2
  1217
    IMPORT_C void SizeChanged();
williamr@2
  1218
    /** MinimumSize()
williamr@2
  1219
     * 
williamr@2
  1220
     * Determines size of the listbox for use in dialogs.
williamr@2
  1221
     */
williamr@2
  1222
    IMPORT_C TSize MinimumSize();
williamr@2
  1223
    protected:
williamr@2
  1224
    /** CreateItemDrawerL()
williamr@2
  1225
     *
williamr@2
  1226
     * Chooses which itemdrawer to use.
williamr@2
  1227
     */
williamr@2
  1228
    IMPORT_C virtual void CreateItemDrawerL();
williamr@2
  1229
    /**
williamr@2
  1230
     * From CCoeControl.     
williamr@2
  1231
     * Handles pointer events
williamr@2
  1232
     */
williamr@2
  1233
    IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent);
williamr@2
  1234
private:
williamr@2
  1235
    void SizeChangedL();
williamr@2
  1236
    };
williamr@2
  1237
williamr@2
  1238
williamr@2
  1239
williamr@2
  1240
/**
williamr@2
  1241
 * list_double_graphic_pane
williamr@2
  1242
 *
williamr@2
  1243
 * list item string format: "0\tFirstLabel\tSecondLabel\t1\t2"
williamr@2
  1244
 * where 0 is index to icon array
williamr@2
  1245
 *
williamr@2
  1246
 */
williamr@2
  1247
class CAknDoubleGraphicPopupMenuStyleListBox : public AknPopupListEmpty<CEikFormattedCellListBox>
williamr@2
  1248
    {
williamr@2
  1249
public:
williamr@2
  1250
    IMPORT_C CAknDoubleGraphicPopupMenuStyleListBox();
williamr@2
  1251
    /** SizeChanged()
williamr@2
  1252
     * 
williamr@2
  1253
     * Determines layout of the listbox
williamr@2
  1254
     */
williamr@2
  1255
    IMPORT_C void SizeChanged();
williamr@2
  1256
    /** MinimumSize()
williamr@2
  1257
     * 
williamr@2
  1258
     * Determines size of the listbox for use in dialogs.
williamr@2
  1259
     */
williamr@2
  1260
    IMPORT_C TSize MinimumSize();
williamr@2
  1261
    protected:
williamr@2
  1262
    /** CreateItemDrawerL()
williamr@2
  1263
     *
williamr@2
  1264
     * Chooses which itemdrawer to use.
williamr@2
  1265
     */
williamr@2
  1266
    IMPORT_C virtual void CreateItemDrawerL();
williamr@2
  1267
    /**
williamr@2
  1268
     * From CCoeControl.     
williamr@2
  1269
     * Handles pointer events
williamr@2
  1270
     */
williamr@2
  1271
    IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent);
williamr@2
  1272
private:
williamr@2
  1273
    void SizeChangedL();
williamr@2
  1274
    };
williamr@2
  1275
    
williamr@2
  1276
// --- end of popup styles
williamr@2
  1277
williamr@2
  1278
williamr@2
  1279
williamr@2
  1280
/** list_set_pane
williamr@2
  1281
 * Setting Page component uses this
williamr@2
  1282
 *
williamr@2
  1283
 * list item string format: "1\tShortLabel"
williamr@2
  1284
 * list item string format: "\t\tLongLabel"
williamr@2
  1285
 *
williamr@2
  1286
 */
williamr@2
  1287
class CAknSetStyleListBox : public AknPopupListEmpty<CEikFormattedCellListBox>
williamr@2
  1288
    {
williamr@2
  1289
public:
williamr@2
  1290
    IMPORT_C void ConstructWithWindowL(const CCoeControl *aParent, TInt aFlags);
williamr@2
  1291
    /** SizeChanged()
williamr@2
  1292
     * 
williamr@2
  1293
     * Determines layout of the listbox
williamr@2
  1294
     */
williamr@2
  1295
    IMPORT_C void SizeChanged();
williamr@2
  1296
    /** MinimumSize()
williamr@2
  1297
     * 
williamr@2
  1298
     * Determines size of the listbox for use in dialogs.
williamr@2
  1299
     */
williamr@2
  1300
    IMPORT_C TSize MinimumSize();
williamr@2
  1301
    IMPORT_C void Draw(const TRect& aRect) const;
williamr@2
  1302
    IMPORT_C TTypeUid::Ptr MopSupplyObject(TTypeUid aId);
williamr@2
  1303
williamr@2
  1304
    /**
williamr@2
  1305
     * From CCoeControl.     
williamr@2
  1306
     * Handles pointer events
williamr@2
  1307
     */
williamr@2
  1308
    IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); 
williamr@2
  1309
williamr@2
  1310
protected:
williamr@2
  1311
    /** CreateItemDrawerL()
williamr@2
  1312
     *
williamr@2
  1313
     * Chooses which itemdrawer to use.
williamr@2
  1314
     */
williamr@2
  1315
    IMPORT_C virtual void CreateItemDrawerL();
williamr@2
  1316
   /** MakeViewClassInstanceL()
williamr@2
  1317
    *
williamr@2
  1318
    * Chooses which listbox view class to use
williamr@2
  1319
    */
williamr@2
  1320
    IMPORT_C CListBoxView *MakeViewClassInstanceL();
williamr@2
  1321
private:
williamr@2
  1322
    void SizeChangedL();
williamr@2
  1323
    };
williamr@2
  1324
williamr@2
  1325
/** list_form_graphic_pane
williamr@2
  1326
 * Form popup field should use this
williamr@2
  1327
 *
williamr@2
  1328
 * list item string format: "1\tShortLabel"
williamr@2
  1329
 * list item string format: "\t\tLongLabel"
williamr@2
  1330
 *
williamr@2
  1331
 */
williamr@2
  1332
class CAknFormGraphicStyleListBox : public AknPopupListEmpty<CEikFormattedCellListBox>
williamr@2
  1333
    {
williamr@2
  1334
public:
williamr@2
  1335
    IMPORT_C void ConstructWithWindowL(const CCoeControl *aParent, TInt aFlags);
williamr@2
  1336
    /** SizeChanged()
williamr@2
  1337
     * 
williamr@2
  1338
     * Determines layout of the listbox
williamr@2
  1339
     */
williamr@2
  1340
    IMPORT_C void SizeChanged();
williamr@2
  1341
    /** MinimumSize()
williamr@2
  1342
     * 
williamr@2
  1343
     * Determines size of the grid for use in dialogs.
williamr@2
  1344
     */
williamr@2
  1345
    IMPORT_C TSize MinimumSize();
williamr@2
  1346
    /** CreateItemDrawerL()
williamr@2
  1347
     *
williamr@2
  1348
     * Chooses which itemdrawer to use.
williamr@2
  1349
     */
williamr@2
  1350
    IMPORT_C virtual void CreateItemDrawerL();
williamr@2
  1351
    /** Listbox rectangle calculation.
williamr@2
  1352
     */
williamr@2
  1353
    IMPORT_C virtual TInt AdjustRectHeightToWholeNumberOfItems(TRect &aRect) const;
williamr@2
  1354
     /**
williamr@2
  1355
     * From CCoeControl
williamr@2
  1356
     * Handles pointerevents of popupfield's list
williamr@2
  1357
     * @param aPointerEvent pointerevent to be handled
williamr@2
  1358
     */
williamr@2
  1359
    IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); 
williamr@2
  1360
private:
williamr@2
  1361
    void SizeChangedL();
williamr@2
  1362
	};
williamr@2
  1363
williamr@2
  1364
class CAknFormGraphicWideStyleListBox : public CAknFormGraphicStyleListBox
williamr@2
  1365
    {
williamr@2
  1366
public:
williamr@2
  1367
    IMPORT_C void SizeChanged();
williamr@2
  1368
    IMPORT_C TSize MinimumSize();
williamr@2
  1369
    // From CCoeControl
williamr@2
  1370
    IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent);  
williamr@2
  1371
private:
williamr@2
  1372
    void SizeChangedL();
williamr@2
  1373
    };
williamr@2
  1374
williamr@2
  1375
williamr@2
  1376
/** grid_app_pane
williamr@2
  1377
 * Application Shell uses this (note that part of layout needs to be done
williamr@2
  1378
 * inside application -- the listbox will not be in correct position on the
williamr@2
  1379
 * screen by just using this -- see listapp)
williamr@2
  1380
 *
williamr@2
  1381
 * list item string format: "1\tLabel"
williamr@2
  1382
 * list item string format: "1\tLabel\t1"
williamr@2
  1383
 */
williamr@2
  1384
williamr@2
  1385
/**
williamr@2
  1386
 * grid_pinb_pane
williamr@2
  1387
 *
williamr@2
  1388
 * list item string format: "1"
williamr@2
  1389
 * list item string format: "1\t1"
williamr@2
  1390
 * list item string format: "1\t1\t1"
williamr@2
  1391
 * list item string format: "1\t\t1"
williamr@2
  1392
 */
williamr@2
  1393
williamr@2
  1394
class CAknPinbStyleGrid : public CAknSelectionGridTypedef
williamr@2
  1395
    {
williamr@2
  1396
public:
williamr@2
  1397
    /** SizeChanged()
williamr@2
  1398
     * 
williamr@2
  1399
     * Determines layout of the grid
williamr@2
  1400
     */
williamr@2
  1401
    IMPORT_C void SizeChanged();
williamr@2
  1402
    /** MinimumSize()
williamr@2
  1403
     * 
williamr@2
  1404
     * Determines size of the grid for use in dialogs.
williamr@2
  1405
     */
williamr@2
  1406
    IMPORT_C TSize MinimumSize();
williamr@2
  1407
williamr@2
  1408
    /**
williamr@2
  1409
     * From CCoeControl.     
williamr@2
  1410
     * Handles pointer events
williamr@2
  1411
     */
williamr@2
  1412
    IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); 
williamr@2
  1413
williamr@2
  1414
private:    
williamr@2
  1415
    void SizeChangedL();
williamr@2
  1416
    };
williamr@2
  1417
williamr@2
  1418
williamr@2
  1419
/**
williamr@2
  1420
 * grid_qdial_pane
williamr@2
  1421
 */
williamr@2
  1422
williamr@2
  1423
class CAknQdialStyleGrid : public CAknSelectionGridTypedef
williamr@2
  1424
    {
williamr@2
  1425
public:
williamr@2
  1426
    /** SizeChanged()
williamr@2
  1427
     * 
williamr@2
  1428
     * Determines layout of the grid
williamr@2
  1429
     */
williamr@2
  1430
    IMPORT_C virtual void SizeChanged();
williamr@2
  1431
    /** MinimumSize()
williamr@2
  1432
     * 
williamr@2
  1433
     * Determines size of the grid for use in dialogs.
williamr@2
  1434
     */
williamr@2
  1435
    IMPORT_C TSize MinimumSize();
williamr@2
  1436
williamr@2
  1437
    /**
williamr@2
  1438
     * From CCoeControl.     
williamr@2
  1439
     * Handles pointer events
williamr@2
  1440
     */
williamr@2
  1441
    IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); 
williamr@2
  1442
williamr@2
  1443
private:
williamr@2
  1444
    void SizeChangedL();
williamr@2
  1445
    };
williamr@2
  1446
williamr@2
  1447
/**
williamr@2
  1448
 * grid_cale_month_pane
williamr@2
  1449
 */
williamr@2
  1450
williamr@2
  1451
class CAknCaleMonthStyleGrid : public CAknSelectionGridTypedef
williamr@2
  1452
    {
williamr@2
  1453
public:
williamr@2
  1454
    /** SizeChanged()
williamr@2
  1455
     * 
williamr@2
  1456
     * Determines layout of the listbox
williamr@2
  1457
     */
williamr@2
  1458
    IMPORT_C void SizeChanged();
williamr@2
  1459
    /** MinimumSize()
williamr@2
  1460
     * 
williamr@2
  1461
     * Determines size of the grid for use in dialogs.
williamr@2
  1462
     */
williamr@2
  1463
    IMPORT_C TSize MinimumSize();
williamr@2
  1464
    /**
williamr@2
  1465
     * From CCoeControl.     
williamr@2
  1466
     * Handles pointer events
williamr@2
  1467
     */
williamr@2
  1468
    IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent);  
williamr@2
  1469
williamr@2
  1470
private:
williamr@2
  1471
    void SizeChangedL();
williamr@2
  1472
    };
williamr@2
  1473
williamr@2
  1474
williamr@2
  1475
williamr@2
  1476
//
williamr@2
  1477
//
williamr@2
  1478
// Here we have itemdrawer/view modifications needed by the lists
williamr@2
  1479
//
williamr@2
  1480
//
williamr@2
  1481
williamr@2
  1482
// This class is to keep drawing routines that depend on avkon and which we cannot place to
williamr@2
  1483
// eikstd or uikon because of that.
williamr@2
  1484
williamr@2
  1485
	/**
williamr@2
  1486
 	* A view that provides empty lists for use with find pane
williamr@2
  1487
 	* @since Series 60 0.9
williamr@2
  1488
 	*/
williamr@2
  1489
class CAknColumnListBoxView : public CColumnListBoxView
williamr@2
  1490
    {
williamr@2
  1491
public:
williamr@2
  1492
williamr@2
  1493
	/**
williamr@2
  1494
	* Enables find in empty list. Basically same as @c SetFindEmptyListState()
williamr@2
  1495
	* when it is set @c ETrue.
williamr@2
  1496
	*/
williamr@2
  1497
    IMPORT_C void EnableFindEmptyList();
williamr@2
  1498
    
williamr@2
  1499
    /**
williamr@2
  1500
    * Sets find in empty list visible or hides it.
williamr@2
  1501
    * @param aUsedWithFind Setter to set find visible or to hide it.
williamr@2
  1502
    */
williamr@2
  1503
    IMPORT_C void SetFindEmptyListState(TBool aUsedWithFind);
williamr@2
  1504
    
williamr@2
  1505
    /**
williamr@2
  1506
    * Draws empty list with or without find depending if it has been enabled.
williamr@2
  1507
    * @param aClientRect The client rectangle.
williamr@2
  1508
    */
williamr@2
  1509
    IMPORT_C void DrawEmptyList(const TRect &aClientRect) const;
williamr@2
  1510
    
williamr@2
  1511
    /**
williamr@2
  1512
    * Calls @c CColumnListBoxView::CalcBottomItemIndex() and removes filtering
williamr@2
  1513
    * from find box if new list items are added. Called by listbox control when
williamr@2
  1514
    * either the size of the listbox or the number of items in its model has
williamr@2
  1515
    * changed.
williamr@2
  1516
    */
williamr@2
  1517
    IMPORT_C virtual void CalcBottomItemIndex();
williamr@2
  1518
    TBool GetFindEmptyListState();    
williamr@2
  1519
private: // overridden from CListBoxView
williamr@2
  1520
	IMPORT_C virtual TAny* Reserved_1();
williamr@2
  1521
private:
williamr@2
  1522
    TBool iEmptyListWithFind;
williamr@2
  1523
    };
williamr@2
  1524
williamr@2
  1525
/**
williamr@2
  1526
 * empty list for settings item editing
williamr@2
  1527
 */
williamr@2
  1528
williamr@2
  1529
class CAknSetStyleListBoxView : public CFormattedCellListBoxView
williamr@2
  1530
    {
williamr@2
  1531
public:
williamr@2
  1532
    IMPORT_C void DrawEmptyList(const TRect &aClientRect) const ;
williamr@2
  1533
private: // overridden from CListBoxView
williamr@2
  1534
	IMPORT_C virtual TAny* Reserved_1();
williamr@2
  1535
    };
williamr@2
  1536
williamr@2
  1537
williamr@2
  1538
/**
williamr@2
  1539
 * Horizontal lines and empty list support for views
williamr@2
  1540
 */
williamr@2
  1541
williamr@2
  1542
class CSingleHeadingStyleView : public CAknColumnListBoxView
williamr@2
  1543
    {
williamr@2
  1544
public:
williamr@2
  1545
    IMPORT_C void Draw(const TRect* ) const;
williamr@2
  1546
    IMPORT_C void DrawEmptyList(const TRect& aClientRect) const;
williamr@2
  1547
private: // overridden from CListBoxView
williamr@2
  1548
	IMPORT_C virtual TAny* Reserved_1();
williamr@2
  1549
    };
williamr@2
  1550
williamr@2
  1551
/**
williamr@2
  1552
 * Horizontal lines support for item drawer.
williamr@2
  1553
 */
williamr@2
  1554
class CSingleHeadingStyleItemDrawer : public CColumnListBoxItemDrawer 
williamr@2
  1555
    {
williamr@2
  1556
public:
williamr@2
  1557
    IMPORT_C CSingleHeadingStyleItemDrawer(MTextListBoxModel* aTextListBoxModel, const CFont* aFont, CColumnListBoxData* aColumnData);
williamr@2
  1558
    IMPORT_C ~CSingleHeadingStyleItemDrawer();
williamr@2
  1559
williamr@2
  1560
    IMPORT_C virtual void DrawItem(TInt aItemIndex, TPoint aItemRectPos, TBool aItemIsSelected, TBool aItemIsCurrent, TBool aViewIsEmphasized, TBool aViewIsDimmed) const;
williamr@2
  1561
williamr@2
  1562
public:
williamr@2
  1563
    IMPORT_C void SetTopItemIndex(TInt aTop);
williamr@2
  1564
williamr@2
  1565
private:
williamr@2
  1566
    TInt iTopItemIndex;
williamr@2
  1567
	CCoeEnv* iCoeEnv;
williamr@2
  1568
    };
williamr@2
  1569
williamr@2
  1570
/**
williamr@2
  1571
 * Thumbnail image positioning for double large styles.
williamr@2
  1572
 */
williamr@2
  1573
class CDoubleLargeStyleItemDrawer : public CFormattedCellListBoxItemDrawer
williamr@2
  1574
    {
williamr@2
  1575
public:
williamr@2
  1576
    IMPORT_C CDoubleLargeStyleItemDrawer(MTextListBoxModel* aTextListBoxModel, const CFont* aFont, CFormattedCellListBoxData* aFormattedCellData, CEikListBox *aListBox);
williamr@2
  1577
    IMPORT_C void DrawItem(TInt aItemIndex, TPoint aItemRectPos, TBool aItemIsSelected, TBool aItemIsCurrent, TBool aViewIsEmphasized, TBool aViewIsDimmed) const;
williamr@2
  1578
private:
williamr@2
  1579
	IMPORT_C void CFormattedCellListBoxItemDrawer_Reserved();
williamr@2
  1580
private:
williamr@2
  1581
    CEikListBox *iListBox_tmp;
williamr@2
  1582
    };
williamr@2
  1583
williamr@2
  1584
williamr@2
  1585
/**
williamr@2
  1586
 * Word wrapping for double2 styles
williamr@2
  1587
 */
williamr@2
  1588
class CWordWrappedFormattedCellItemDrawer : public CFormattedCellListBoxItemDrawer
williamr@2
  1589
    {
williamr@2
  1590
public:
williamr@2
  1591
    IMPORT_C CWordWrappedFormattedCellItemDrawer(MTextListBoxModel* aTextListBoxModel, const CFont* aFont, CFormattedCellListBoxData* aFormattedCellData, CEikListBox *aListBox, TInt aSubCell, TInt aSubCell2);
williamr@2
  1592
    IMPORT_C void DrawItem(TInt aItemIndex, TPoint aItemRectPos, TBool aItemIsSelected, TBool aItemIsCurrent, TBool aViewIsEmphasized, TBool aViewIsDimmed) const;
williamr@2
  1593
    IMPORT_C void DrawItemText(TInt aItemIndex,
williamr@2
  1594
			       const TRect &aItemTextRect,
williamr@2
  1595
			       TBool aItemIsCurrent,
williamr@2
  1596
			       TBool,
williamr@2
  1597
			       TBool aItemIsSelected) const;
williamr@2
  1598
private:
williamr@2
  1599
	IMPORT_C void CFormattedCellListBoxItemDrawer_Reserved();
williamr@2
  1600
private:
williamr@2
  1601
    TInt iSubCell, iSubCell2;
williamr@2
  1602
    };
williamr@2
  1603
williamr@2
  1604
//
williamr@2
  1605
//
williamr@2
  1606
//  here starts section for building new listboxes.
williamr@2
  1607
//
williamr@2
  1608
williamr@2
  1609
//
williamr@2
  1610
// This is helper class that makes the conversion between European LAF and
williamr@2
  1611
// different listbox itemdrawer implementations.
williamr@2
  1612
//
williamr@2
  1613
// Notice, this CEikListBox is a good friend with this class.
williamr@2
  1614
//
williamr@2
  1615
// 
williamr@2
  1616
williamr@2
  1617
/** AknListBoxLayouts
williamr@2
  1618
 * Building listbox layouts from European Avkon LAF.
williamr@2
  1619
 *
williamr@2
  1620
 * The LAF specification has 3 kinds of tables:
williamr@2
  1621
 *   Graphics tables
williamr@2
  1622
 *   Text tables
williamr@2
  1623
 *   Pane coordinates
williamr@2
  1624
 * The graphics tables map to SetupColumnGfxCell() and SetupFormGfxCell()
williamr@2
  1625
 * The text tables map to SetupColumnTextCell() and SetupFormGfxCell()
williamr@2
  1626
 * The pane coordinates map to SetupListboxPos().
williamr@2
  1627
 *
williamr@2
  1628
 * This class is mostly useless if you don't have LAF specification available!
williamr@2
  1629
 *
williamr@2
  1630
 * You probably want to use predefined layouts; See CAknSingleStyleListBox.
williamr@2
  1631
 *
williamr@2
  1632
 * NOTE: This class is old design. You should consider looking at aknutils.h: AknLayoutUtils
williamr@2
  1633
 *       whenever you want to build things from the LAF specification. 
williamr@2
  1634
 */
williamr@2
  1635
williamr@2
  1636
class AknListBoxLayouts
williamr@2
  1637
    {
williamr@2
  1638
public:
williamr@2
  1639
    /**
williamr@2
  1640
     * Setup borders etc.
williamr@2
  1641
     */
williamr@2
  1642
    IMPORT_C static void SetupStandardListBox(CEikListBox& aListBox);
williamr@2
  1643
     /**
williamr@2
  1644
     * Setup grid position
williamr@2
  1645
     * since 2.0
williamr@2
  1646
     */
williamr@2
  1647
    static void SetupGridPos(CAknGrid& aGrid,
williamr@2
  1648
                     const TAknWindowLineLayout &aLayout);
williamr@2
  1649
   /**
williamr@2
  1650
     * Setup grid position
williamr@2
  1651
     */
williamr@2
  1652
    IMPORT_C static void SetupGridPos(CAknGrid& aGrid,
williamr@2
  1653
    			     TInt l, 
williamr@2
  1654
    			     TInt t, 
williamr@2
  1655
    			     TInt /*r*/, 
williamr@2
  1656
    			     TInt /*b*/, 
williamr@2
  1657
    			     TInt W, 
williamr@2
  1658
    			     TInt H);
williamr@2
  1659
    /**
williamr@2
  1660
     * Setup list position
williamr@2
  1661
     */
williamr@2
  1662
    IMPORT_C static void SetupListboxPos(CEikListBox& aListBox,
williamr@2
  1663
				TInt startx, 
williamr@2
  1664
    				TInt starty, 
williamr@2
  1665
    				TInt,
williamr@2
  1666
    				TInt, 
williamr@2
  1667
    				TInt /*width*/, 
williamr@2
  1668
    				TInt height);
williamr@2
  1669
williamr@2
  1670
    /*
williamr@2
  1671
    * non-exported new internal version
williamr@2
  1672
    */
williamr@2
  1673
    static void SetupListboxPosL( CEikListBox& aListBox,
williamr@2
  1674
                                  const TAknWindowLineLayout& aLayout ); // layout of first item
williamr@2
  1675
        
williamr@2
  1676
    /**
williamr@2
  1677
     * Setup text foreground and background colors to default
williamr@2
  1678
     */
williamr@2
  1679
    IMPORT_C static void SetupStandardColumnListbox(CColumnListBoxItemDrawer* aItemDrawer);	
williamr@2
  1680
    /**
williamr@2
  1681
     * Setup text foreground and background colors to default
williamr@2
  1682
     */
williamr@2
  1683
    IMPORT_C static void SetupStandardFormListbox(CFormattedCellListBoxItemDrawer* aItemDrawer);
williamr@2
  1684
    /**
williamr@2
  1685
     * Setup text foreground and background colors to default
williamr@2
  1686
     */
williamr@2
  1687
    IMPORT_C static void SetupStandardGrid(CAknGrid& aGrid);
williamr@2
  1688
    
williamr@2
  1689
    /**
williamr@2
  1690
     * Setup a single graphics cell of list item
williamr@2
  1691
     */
williamr@2
  1692
    IMPORT_C static void SetupColumnGfxCell(CEikListBox& aListBox, 
williamr@2
  1693
				   CColumnListBoxItemDrawer* aItemDrawer, 
williamr@2
  1694
				   TInt index,
williamr@2
  1695
				   TInt l, 
williamr@2
  1696
				   TInt t, 
williamr@2
  1697
				   TInt r, 
williamr@2
  1698
				   TInt b, 
williamr@2
  1699
				   TInt W, 
williamr@2
  1700
				   TInt H, 
williamr@2
  1701
				   TInt startx, 
williamr@2
  1702
				   TInt endx);
williamr@2
  1703
    
williamr@2
  1704
    /**
williamr@2
  1705
     * Setup a single text cell of list item
williamr@2
  1706
     */
williamr@2
  1707
    IMPORT_C static void SetupColumnTextCell(CEikListBox& aListBox, 
williamr@2
  1708
				    CColumnListBoxItemDrawer* aItemDrawer, 
williamr@2
  1709
				    TInt index,
williamr@2
  1710
				    const CFont *font, 
williamr@2
  1711
				    TInt /*C*/, 
williamr@2
  1712
				    TInt lm, 
williamr@2
  1713
				    TInt rm, 
williamr@2
  1714
				    TInt B, 
williamr@2
  1715
				    TInt /*W*/, 
williamr@2
  1716
				    CGraphicsContext::TTextAlign aAlign, 
williamr@2
  1717
				    TInt startx, 
williamr@2
  1718
				    TInt endx);
williamr@2
  1719
    /**
williamr@2
  1720
     * Setup a single text cell of list item
williamr@2
  1721
     */
williamr@2
  1722
    IMPORT_C static void SetupColumnTextCell(CEikListBox& aListBox, 
williamr@2
  1723
				    CColumnListBoxItemDrawer* aItemDrawer, 
williamr@2
  1724
				    TInt index,
williamr@2
  1725
				    const TAknTextLineLayout &aLayout,
williamr@2
  1726
				    TInt startx, 
williamr@2
  1727
				    TInt endx); // use with aknlayoutcompiler
williamr@2
  1728
williamr@2
  1729
    /**
williamr@2
  1730
     * Setup a single graphics cell of list item
williamr@2
  1731
     */
williamr@2
  1732
    IMPORT_C static void SetupFormGfxCell(CEikListBox& aListBox, 
williamr@2
  1733
				 CFormattedCellListBoxItemDrawer* aItemDrawer, 
williamr@2
  1734
				 TInt index,
williamr@2
  1735
				 TInt l, 
williamr@2
  1736
				 TInt t, 
williamr@2
  1737
				 TInt /*r*/, 
williamr@2
  1738
				 TInt /*b*/, 
williamr@2
  1739
				 TInt W, 
williamr@2
  1740
				 TInt H, 
williamr@2
  1741
				 TPoint p1, 
williamr@2
  1742
				 TPoint p2);
williamr@2
  1743
williamr@2
  1744
williamr@2
  1745
    /**
williamr@2
  1746
     * Setup a single graphics cell of list item
williamr@2
  1747
     *
williamr@2
  1748
     * This version is needed for grid cells. (the FormGfxCell works in
williamr@2
  1749
     * most cases, but this is needed if you want exact positioning of
williamr@2
  1750
     * the erased area..)
williamr@2
  1751
     */
williamr@2
  1752
    IMPORT_C static void SetupGridFormGfxCell(CAknGrid& aListBox, 
williamr@2
  1753
				 CFormattedCellListBoxItemDrawer* aItemDrawer, 
williamr@2
  1754
				 TInt index,
williamr@2
  1755
				 TInt l, 
williamr@2
  1756
				 TInt t, 
williamr@2
  1757
				 TInt /*r*/, 
williamr@2
  1758
				 TInt /*b*/, 
williamr@2
  1759
				 TInt W, 
williamr@2
  1760
				 TInt H, 
williamr@2
  1761
				 TPoint aP1, 
williamr@2
  1762
				 TPoint aP2);
williamr@2
  1763
    /**
williamr@2
  1764
     * Setup a single graphics cell of list item
williamr@2
  1765
     *
williamr@2
  1766
     * This version is needed for grid cells. (the FormGfxCell works in
williamr@2
  1767
     * most cases, but this is needed if you want exact positioning of
williamr@2
  1768
     * the erased area..)
williamr@2
  1769
     * since 2.6
williamr@2
  1770
     */
williamr@2
  1771
williamr@2
  1772
    IMPORT_C static void SetupGridFormGfxCell(CAknGrid& aGrid,
williamr@2
  1773
                 CFormattedCellListBoxItemDrawer* aItemDrawer, 
williamr@2
  1774
                 TInt aIndex,
williamr@2
  1775
                 const TAknWindowLineLayout& aLine,
williamr@2
  1776
                 TPoint& aP1, 
williamr@2
  1777
                 TPoint& aP2);         
williamr@2
  1778
williamr@2
  1779
    /**
williamr@2
  1780
     * Setup a single text cell of list item
williamr@2
  1781
     */    
williamr@2
  1782
    IMPORT_C static void SetupFormTextCell(CEikListBox& aListBox, 
williamr@2
  1783
				  CFormattedCellListBoxItemDrawer* aItemDrawer, 
williamr@2
  1784
				  TInt index,
williamr@2
  1785
				  const CFont *font, 
williamr@2
  1786
				  TInt /*C*/, 
williamr@2
  1787
				  TInt lm,
williamr@2
  1788
				  TInt /*rm*/, 
williamr@2
  1789
				  TInt B, 
williamr@2
  1790
				  TInt W, 
williamr@2
  1791
				  CGraphicsContext::TTextAlign aAlign, 
williamr@2
  1792
				  TPoint p1, 
williamr@2
  1793
				  TPoint p2);
williamr@2
  1794
    /**
williamr@2
  1795
     * Setup a single text cell of list item
williamr@2
  1796
     *
williamr@2
  1797
     * This is for removing flicker for settings
williamr@2
  1798
     *
williamr@2
  1799
     */
williamr@2
  1800
    IMPORT_C static void SetupFormAntiFlickerTextCell(CEikListBox& aListBox, 
williamr@2
  1801
				  CFormattedCellListBoxItemDrawer* aItemDrawer, 
williamr@2
  1802
				  TInt index,
williamr@2
  1803
				  const CFont *font, 
williamr@2
  1804
				  TInt /*C*/, 
williamr@2
  1805
				  TInt lm,
williamr@2
  1806
				  TInt /*rm*/, 
williamr@2
  1807
				  TInt B, 
williamr@2
  1808
				  TInt W, 
williamr@2
  1809
				  CGraphicsContext::TTextAlign aAlign, 
williamr@2
  1810
				  TPoint p1, 
williamr@2
  1811
				  TPoint p2);
williamr@2
  1812
williamr@2
  1813
    /**
williamr@2
  1814
     * Setup a single text cell of list item
williamr@2
  1815
     */
williamr@2
  1816
    IMPORT_C static void SetupFormTextCell(CEikListBox& aListBox, 
williamr@2
  1817
				  CFormattedCellListBoxItemDrawer* aItemDrawer, 
williamr@2
  1818
				  TInt index,
williamr@2
  1819
				  const TAknTextLineLayout &aLayout,
williamr@2
  1820
				  const TPoint &p1, 
williamr@2
  1821
				  const TPoint &p2); // use with layout compiler
williamr@2
  1822
    /**
williamr@2
  1823
     * Setup a single text cell of list item
williamr@2
  1824
     *
williamr@2
  1825
     * This is for removing flicker for settings
williamr@2
  1826
     */
williamr@2
  1827
    IMPORT_C static void SetupFormAntiFlickerTextCell(CEikListBox& aListBox, 
williamr@2
  1828
				  CFormattedCellListBoxItemDrawer* aItemDrawer, 
williamr@2
  1829
				  TInt index,
williamr@2
  1830
				  const TAknTextLineLayout &aLayout,
williamr@2
  1831
				  const TPoint &p1, 
williamr@2
  1832
				  const TPoint &p2); // use with layout compiler
williamr@2
  1833
williamr@2
  1834
    /**
williamr@2
  1835
     * Setup a graphic element for a column listbox using aknlayout.dll
williamr@2
  1836
     */
williamr@2
  1837
    IMPORT_C static void SetupColumnGfxCell(CEikListBox& aListBox, 
williamr@2
  1838
				   CColumnListBoxItemDrawer* aItemDrawer, 
williamr@2
  1839
				   TInt aIndex,
williamr@2
  1840
				   const TAknWindowLineLayout &aLayout,
williamr@2
  1841
				   TInt startx, 
williamr@2
  1842
				   TInt endx);
williamr@2
  1843
williamr@2
  1844
    /**
williamr@2
  1845
     * Setup a single graphics cell of list item using aknlayout.dll
williamr@2
  1846
     */
williamr@2
  1847
    IMPORT_C static void SetupFormGfxCell(CEikListBox& aListBox, 
williamr@2
  1848
				 CFormattedCellListBoxItemDrawer* aItemDrawer, 
williamr@2
  1849
				 TInt index,
williamr@2
  1850
				 const TAknWindowLineLayout &aLayout,
williamr@2
  1851
				 const TPoint &p1, 
williamr@2
  1852
				 const TPoint &p2);
williamr@2
  1853
williamr@2
  1854
williamr@2
  1855
    /**
williamr@2
  1856
     * Setup a graphic element for a column listbox using aknlayout.dll
williamr@2
  1857
     */
williamr@2
  1858
    IMPORT_C static void SetupListboxPos(CEikListBox& aListBox, 
williamr@2
  1859
				   const TAknWindowLineLayout &aLayout);
williamr@2
  1860
				   
williamr@2
  1861
    /**
williamr@2
  1862
     * This function returns a correct offset to revise layout data.
williamr@2
  1863
     *
williamr@2
  1864
     * Attention: The function is only effective for QHD lanscape model. 
williamr@2
  1865
     * It always return 0 in QVGA, QVGA2, VGA and VAG3. 
williamr@2
  1866
     * A panic will take place if it is used in other models.
williamr@2
  1867
     *
williamr@2
  1868
     * @since S60 5.0
williamr@2
  1869
     *
williamr@2
  1870
     * @param aScreenRect Size of Screen.
williamr@2
  1871
     * @return Offset of listscroll_menu_pane's layout 
williamr@2
  1872
     */
williamr@2
  1873
    static TInt AdjustPopupLayoutData( const TRect& aScreenRect );				   
williamr@2
  1874
    };
williamr@2
  1875
williamr@2
  1876
/**
williamr@2
  1877
* General utilities relating to listboxes
williamr@2
  1878
*
williamr@2
  1879
* @since Series 60 0.9
williamr@2
  1880
*/
williamr@2
  1881
class AknListBoxUtils
williamr@2
  1882
    {
williamr@2
  1883
public:
williamr@2
  1884
    /**
williamr@2
  1885
    * This function is similar to @c HandleItemRemovalL(). This function has
williamr@2
  1886
    * to call when the items should be removed. If a leave occurs the framework
williamr@2
  1887
    * generates a Symbian Leave code.
williamr@2
  1888
    * @param aListBox A pointer to @c CEikListBox object.
williamr@2
  1889
    * @param aValueOfCurrentItemIndexBeforeRemoval A current item index value 
williamr@2
  1890
    * before removal.
williamr@2
  1891
    * @param aCurrentItemWasRemoved @c ETrue if removed @c EFalse if not.
williamr@2
  1892
    */
williamr@2
  1893
    IMPORT_C static void HandleItemRemovalAndPositionHighlightL(CEikListBox *aListBox, TInt aValueOfCurrentItemIndexBeforeRemoval, TBool aCurrentItemWasRemoved);
williamr@2
  1894
    
williamr@2
  1895
    /**
williamr@2
  1896
    * This function should be called after one or more items have been removed.
williamr@2
  1897
    * If a leave occurs the framework generates a Symbian Leave code. 
williamr@2
  1898
    * @param aListBox A pointer to @c CEikListBox object.
williamr@2
  1899
    * @param aValueOfCurrentItemIndexBeforeRemoval A current item index value 
williamr@2
  1900
    * before removal.
williamr@2
  1901
    * @param aIndexesToRemovedItems A thin templated base class for arrays of
williamr@2
  1902
    * fixed length objects.
williamr@2
  1903
    */
williamr@2
  1904
    IMPORT_C static void HandleItemRemovalAndPositionHighlightL(CEikListBox *aListBox, TInt aValueOfCurrentItemIndexBeforeRemoval, CArrayFix<TInt> &aIndexesToRemovedItems);
williamr@2
  1905
williamr@2
  1906
    /** 
williamr@2
  1907
    * @deprecated
williamr@2
  1908
    */
williamr@2
  1909
    IMPORT_C static TBool ListBoxLinesShown(MAknsSkinInstance *aInstance, MAknsControlContext *aCc);
williamr@2
  1910
    };
williamr@2
  1911
williamr@2
  1912
#endif
williamr@2
  1913
williamr@2
  1914
williamr@2
  1915
williamr@2
  1916
williamr@2
  1917
williamr@2
  1918