epoc32/include/mw/eiklbi.h
author William Roberts <williamr@symbian.org>
Wed, 31 Mar 2010 12:33:34 +0100
branchSymbian3
changeset 4 837f303aceeb
parent 2 2fe1408b6811
permissions -rw-r--r--
Current Symbian^3 public API header files (from PDK 3.0.h)
This is the epoc32/include tree with the "platform" subtrees removed, and
all but a selected few mbg and rsg files removed.
williamr@2
     1
/*
williamr@2
     2
* Copyright (c) 1997-1999 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@4
     5
* under the terms of "Eclipse Public License v1.0"
williamr@2
     6
* which accompanies this distribution, and is available
williamr@4
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.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
williamr@2
    19
williamr@2
    20
williamr@2
    21
#if !defined(__EIKLBI_H__)
williamr@2
    22
#define __EIKLBI_H__  
williamr@2
    23
williamr@2
    24
#include <e32base.h>
williamr@2
    25
#include <gdi.h>
williamr@2
    26
williamr@2
    27
williamr@2
    28
class CWindowGc;
williamr@2
    29
class CListBoxData;
williamr@2
    30
class TListItemProperties;
williamr@2
    31
class TListFontBoundValues;
williamr@2
    32
class MAknsControlContext;
williamr@2
    33
williamr@2
    34
williamr@2
    35
/**
williamr@2
    36
 * The @c CListItemDrawer class is the base class for the list box item drawers 
williamr@2
    37
 * which handle drawing of the contents of list box items.
williamr@2
    38
 * The items may optionally be markable.
williamr@2
    39
 *
williamr@2
    40
 * @since Symbian 5.0
williamr@2
    41
 */
williamr@2
    42
class CListItemDrawer : public CBase
williamr@2
    43
    {
williamr@2
    44
williamr@2
    45
public:
williamr@2
    46
williamr@2
    47
    /**
williamr@2
    48
     * Destructor.
williamr@2
    49
     */
williamr@2
    50
    IMPORT_C ~CListItemDrawer();
williamr@2
    51
williamr@2
    52
    /**
williamr@2
    53
     * Draws the entire item.
williamr@2
    54
     *
williamr@2
    55
     * This function is called by the list box view. As implemented
williamr@2
    56
     * in @c CListItemDrawer, this function draws the item text using 
williamr@2
    57
     * @c DrawActualItem(), and an item mark using @c DrawItemMark().
williamr@2
    58
     * 
williamr@2
    59
     * @param aItemIndex Index of the item to draw. 
williamr@2
    60
     * @param aItemRectPos Position of the rectangle to draw. 
williamr@2
    61
     * @param aItemIsSelected Whether the item is selected. 
williamr@2
    62
     * @param aItemIsCurrent Whether the item is current. 
williamr@2
    63
     * @param aViewIsEmphasized Whether the list box view has the emphasised
williamr@2
    64
     *        flag set (see @c CListBoxView::SetEmphasized()). 
williamr@2
    65
     * @param aViewIsDimmed Whether the list box view has its dimmed flag set
williamr@2
    66
     *        (see @c CListBoxView::SetDimmed()). 
williamr@2
    67
     */
williamr@2
    68
    IMPORT_C virtual void DrawItem(TInt aItemIndex, 
williamr@2
    69
                                   TPoint aItemRectPos, 
williamr@2
    70
                                   TBool aItemIsSelected, 
williamr@2
    71
                                   TBool aItemIsCurrent, 
williamr@2
    72
                                   TBool aViewIsEmphasized, 
williamr@2
    73
                                   TBool aViewIsDimmed) const;
williamr@2
    74
williamr@2
    75
    /**
williamr@2
    76
     * Clears the specified rectangle of this object's graphics context.
williamr@2
    77
     *
williamr@2
    78
     * @param aRect Rectangle to clear.
williamr@2
    79
     */
williamr@2
    80
    IMPORT_C virtual void ClearRect(const TRect& aRect) const;
williamr@2
    81
williamr@2
    82
    /**
williamr@2
    83
     * Gets the width of the specified item.
williamr@2
    84
     *
williamr@2
    85
     * @param aItemIndex The index of the item whose width is to be returned. 
williamr@2
    86
     * @return The width of the item. This is 0 in @c CListItemDrawer
williamr@2
    87
     */
williamr@2
    88
    IMPORT_C virtual TInt ItemWidthInPixels(TInt aItemIndex) const;
williamr@2
    89
williamr@2
    90
    /**
williamr@2
    91
     * Gets the minimum cell size.
williamr@2
    92
     *
williamr@2
    93
     * @return The minimum size for a cell. This is @c TSize(0, 0) 
williamr@2
    94
     *         in @c CListItemDrawer.
williamr@2
    95
     */
williamr@2
    96
    IMPORT_C virtual TSize MinimumCellSize() const;
williamr@2
    97
williamr@2
    98
    /**
williamr@2
    99
     * Sets the graphics context which this object uses for drawing.
williamr@2
   100
     *
williamr@2
   101
     * @param aGc Pointer to the context to use.
williamr@2
   102
     */
williamr@2
   103
    IMPORT_C virtual void SetGc(CWindowGc* aGc);
williamr@2
   104
williamr@2
   105
    /**
williamr@2
   106
     * Gets graphics context which is used for drawing.
williamr@2
   107
     *
williamr@2
   108
     * @return Pointer to the graphics context used for drawing.
williamr@2
   109
     */
williamr@2
   110
    IMPORT_C CWindowGc* Gc() const;
williamr@2
   111
williamr@2
   112
    /**
williamr@2
   113
     * Sets the width of the column containing the mark.
williamr@2
   114
     *
williamr@2
   115
     * @param aWidthInPixels New width for the mark column.
williamr@2
   116
     */
williamr@2
   117
    IMPORT_C virtual void SetMarkColumnWidth(TInt aWidthInPixels);
williamr@2
   118
williamr@2
   119
    /**
williamr@2
   120
     * Sets the width of the gap between the column containing the lists item 
williamr@2
   121
     * marks and the text column.
williamr@2
   122
     *
williamr@2
   123
     * @param aGapInPixels New gap size.
williamr@2
   124
     */
williamr@2
   125
    IMPORT_C virtual void SetMarkGutter(TInt aGapInPixels);
williamr@2
   126
williamr@2
   127
    /**
williamr@2
   128
     * Gets mark column width.
williamr@2
   129
     *
williamr@2
   130
     * @return Mark column width.
williamr@2
   131
     */
williamr@2
   132
    IMPORT_C TInt MarkColumn() const;
williamr@2
   133
williamr@2
   134
    /**
williamr@2
   135
     * Gets the width of the gap between the column containig the lists item
williamr@2
   136
     * marks and the text column.
williamr@2
   137
     *
williamr@2
   138
     * @return Size of the inter-column gutter.
williamr@2
   139
     */
williamr@2
   140
    IMPORT_C TInt MarkGutter() const;
williamr@2
   141
williamr@2
   142
    /**
williamr@2
   143
     * Sets the item cell size.
williamr@2
   144
     * The cell size is the on-screen size of the entire item, including 
williamr@2
   145
     * its text and its item mark.
williamr@2
   146
     *
williamr@2
   147
     * @param aSizeInPixels New size for the item cell.
williamr@2
   148
     */
williamr@2
   149
    IMPORT_C virtual void SetItemCellSize(const TSize& aSizeInPixels);
williamr@2
   150
williamr@2
   151
    /**
williamr@2
   152
     * Gets current item cell size.
williamr@2
   153
     *
williamr@2
   154
     * @since Symbian 3.0
williamr@2
   155
     * @return Item cell size
williamr@2
   156
     */
williamr@2
   157
    IMPORT_C TSize ItemCellSize() const;
williamr@2
   158
williamr@2
   159
    /**
williamr@2
   160
     * Sets the viewing rectangle for this item drawer.
williamr@2
   161
     * This value is not used by the @c CListItemViewer, but may be used by its 
williamr@2
   162
     * derived classes.
williamr@2
   163
     *
williamr@2
   164
     * @param aRect New value for @c iViewRect.
williamr@2
   165
     */
williamr@2
   166
    IMPORT_C virtual void SetViewRect(const TRect& aRect);
williamr@2
   167
williamr@2
   168
    /**
williamr@2
   169
     * Sets whether item tick marks are drawn. 
williamr@2
   170
     * 
williamr@2
   171
     * If the draw mark flag iDrawMark is set, @c DrawItem() leaves space for 
williamr@2
   172
     * the marks column to the left of the text column, and @c DrawItemMark()
williamr@2
   173
     * draws the item marks.
williamr@2
   174
     *
williamr@2
   175
     * @param aDrawMark New value for iDrawMark.
williamr@2
   176
     */
williamr@2
   177
    IMPORT_C void SetDrawMark(TBool aDrawMark);
williamr@2
   178
williamr@2
   179
    /**
williamr@2
   180
     * Gets a rectangle describing where the matcher cursor should be drawn.
williamr@2
   181
     * The default behavious is to return uninitialised @c TRect.
williamr@2
   182
     *
williamr@2
   183
     * @deprecated
williamr@2
   184
     * @param aMatchableText The text of the currently matched string.
williamr@2
   185
     * @param aCharPos The position in the string of the character just matched
williamr@2
   186
     *        in the current incremental match.
williamr@2
   187
     * @param aItemCellYPos Y position of the item cell.
williamr@2
   188
     * @param aCurrentItemIndex Item index for the current item.
williamr@2
   189
     * @return Where the cursor should be drawn.
williamr@2
   190
     */
williamr@2
   191
    IMPORT_C virtual TRect MatcherCursorRect(const TDesC& aMatchableText, 
williamr@2
   192
                                             TInt aCharPos, 
williamr@2
   193
                                             TInt aItemCellYPos, 
williamr@2
   194
                                             TInt aCurrentItemIndex ) const;
williamr@2
   195
williamr@2
   196
    /**
williamr@2
   197
     * Gets the ascent of the matcher cursor.
williamr@2
   198
     * 
williamr@2
   199
     * This is obtained for the item at index @c aCurrentItemIndex.
williamr@2
   200
     * The function returns 0 by default.
williamr@2
   201
     *
williamr@2
   202
     * @deprecated
williamr@2
   203
     * @param aCurrentItemIndex Item index of the target item.
williamr@2
   204
     * @return The height of the matcher cursor.
williamr@2
   205
     */
williamr@2
   206
    IMPORT_C virtual TInt MatcherCursorAscent( TInt aCurrentItemIndex ) const;
williamr@2
   207
williamr@2
   208
    /**
williamr@2
   209
     * Not Used in S60.
williamr@2
   210
     */
williamr@2
   211
    IMPORT_C virtual void DrawItemMark(TBool aItemIsSelected, 
williamr@2
   212
                                       TBool aViewIsDimmed, 
williamr@2
   213
                                       const TPoint& aMarkPos) const;
williamr@2
   214
williamr@2
   215
    /**
williamr@2
   216
     * Sets symbol font for the item drawer.
williamr@2
   217
     * The symbol font is used to draw the standard tick item marks.
williamr@2
   218
     *
williamr@2
   219
     * @param aFont The font to be used.
williamr@2
   220
     */
williamr@2
   221
    IMPORT_C void SetSymbolFont(const CFont* aFont);
williamr@2
   222
williamr@2
   223
    /**
williamr@2
   224
     * Sets the vertical gap between items in the list.
williamr@2
   225
     *
williamr@2
   226
     * @param aGapInPixels New value for the vertical gap between items 
williamr@2
   227
     *        in pixels.
williamr@2
   228
     */
williamr@2
   229
    IMPORT_C void SetVerticalInterItemGap(TInt aGapInPixels);
williamr@2
   230
williamr@2
   231
    /**
williamr@2
   232
     * Sets the font storage data for the item drawer and transfer ownership
williamr@2
   233
     * of that data.
williamr@2
   234
     *
williamr@2
   235
     * @param aData Font storage data .
williamr@2
   236
     */
williamr@2
   237
    IMPORT_C void SetData(CListBoxData* aData);
williamr@2
   238
williamr@2
   239
    /**
williamr@2
   240
     * Gets the font for the specified item.
williamr@2
   241
     * 
williamr@2
   242
     * The function returns @c NULL if no font storage data has been set.
williamr@2
   243
     *
williamr@2
   244
     * @param aItemIndex The index of the item for which the font is returned.
williamr@2
   245
     * @return The item's font.
williamr@2
   246
     */
williamr@2
   247
    IMPORT_C CFont* Font(TInt aItemIndex) const;
williamr@2
   248
williamr@2
   249
    /**
williamr@2
   250
     * Gets the colour and style properties of the specified item.
williamr@2
   251
     *
williamr@2
   252
     * @param aItemIndex The index of the item for which properties
williamr@2
   253
     *        are obtained (Not Used).
williamr@2
   254
     * @return The item's properties.
williamr@2
   255
     */
williamr@2
   256
    IMPORT_C virtual TListItemProperties Properties(TInt aItemIndex) const;
williamr@2
   257
williamr@2
   258
    /**
williamr@2
   259
     * Draws the frame.
williamr@2
   260
     * 
williamr@2
   261
     * Uses the colours set with the fonts and colour functions described above.
williamr@2
   262
     *
williamr@2
   263
     * @deprecated
williamr@2
   264
     * @param aGc The graphics context used to draw the frame.
williamr@2
   265
     * @param aRect The frame's rectangle.
williamr@2
   266
     * @param aFlags The item drawer flags.
williamr@2
   267
     */
williamr@2
   268
    IMPORT_C void DrawFrame(CWindowGc& aGc,
williamr@2
   269
                            const TRect& aRect,
williamr@2
   270
                            TInt aFlags) const;
williamr@2
   271
williamr@2
   272
public:
williamr@2
   273
williamr@2
   274
    /**
williamr@2
   275
     * Provides list box attributes for handling multiple selections. These 
williamr@2
   276
     * flags can be set using the @c CListItemDrawer::SetFlags function.
williamr@2
   277
     */ 
williamr@2
   278
    enum TFlags
williamr@2
   279
        {
williamr@2
   280
        /**
williamr@2
   281
         * If set, specifies the inclusion of a gap into which a tick mark can
williamr@2
   282
         * be drawn if the item is selected. This is used in the following 
williamr@2
   283
         * @c CListItemDrawer class functions:
williamr@2
   284
         *   @c DrawItem(),
williamr@2
   285
         *   @c DrawItemMark(),
williamr@2
   286
         *   @c SetDrawMark()
williamr@2
   287
         */
williamr@2
   288
        EDrawMarkSelection          = 0x0001,
williamr@2
   289
        
williamr@2
   290
        /**
williamr@2
   291
         * If set, draws a highlight over a selected list item. This is used 
williamr@2
   292
         * in the @c CTextListItemDrawer::DoDrawItemText() function.
williamr@2
   293
         */
williamr@2
   294
        EPaintedSelection           = 0x0002,
williamr@2
   295
        
williamr@2
   296
        /** This flag is not supported. */ 
williamr@2
   297
        EDrawOnlyActiveSelection    = 0x0004,
williamr@2
   298
        
williamr@2
   299
        /** If set highlight is disabled. */
williamr@2
   300
        EDisableHighlight = 0x0008,
williamr@2
   301
williamr@2
   302
        /** This flag indicates @c CListboxData to draw pressed down state 
williamr@2
   303
         *  rather than normal highlight on item. Make sure checking this 
williamr@2
   304
         *  flag in subclass's Draw method, if using a custom @c CListboxData 
williamr@2
   305
         *  inheriting from @c CColumnListBoxData or @c CFormattedCellListBoxData.
williamr@2
   306
         */
williamr@2
   307
        EPressedDownState = 0x0010,
williamr@2
   308
williamr@2
   309
        /** This flag indicates the marquee is disabled. If it is set, @c CColumnListBoxData 
williamr@2
   310
         *  or @c CFormattedCellListBoxData would disable maquee temporarily for 
williamr@2
   311
         *  performance reason.
williamr@2
   312
         */
williamr@4
   313
        EDisableMarquee = 0x0020,
williamr@4
   314
williamr@4
   315
        /**
williamr@4
   316
         * This flag indicates that highlight is disabled in list because of
williamr@4
   317
         * single click style.
williamr@4
   318
         */
williamr@4
   319
        ESingleClickDisabledHighlight = 0x0040,
williamr@4
   320
        
williamr@4
   321
        /**
williamr@4
   322
         * This flag indicates that single click mode is enabled.
williamr@4
   323
         */
williamr@4
   324
        ESingleClickEnabled = 0x0080
williamr@2
   325
        };
williamr@2
   326
williamr@2
   327
public:
williamr@2
   328
williamr@2
   329
    /**
williamr@2
   330
     * Provides attributes for list items
williamr@2
   331
     */
williamr@2
   332
    enum TListItemAttribute
williamr@2
   333
williamr@2
   334
        {
williamr@2
   335
        /** Highlight for current text. */
williamr@2
   336
        ECurrent    = 0x0001,       // may be drawn with a frame
williamr@2
   337
williamr@2
   338
        /**
williamr@2
   339
         * Highlight for text when the listbox view is emphasized.
williamr@2
   340
         *
williamr@2
   341
         * This is used in the following @c CListBoxView class functions:
williamr@2
   342
         * @c DrawItem(), @c DrawMatcherCursor(), @c SetEmphasized().
williamr@2
   343
         */
williamr@2
   344
        EEmphasized = 0x0002,       // special highlight (not selected)
williamr@2
   345
        
williamr@2
   346
        /**
williamr@2
   347
         * Highlight for text that is selected. This is used in the following 
williamr@2
   348
         * functions: @c CColumnListBoxItemDrawer::DrawItemText(), 
williamr@2
   349
         * @c CHierarchicalListItemDrawer::DrawActualItem(), 
williamr@2
   350
         * @c CDirContentsListItemDrawer::DrawActualItem().
williamr@2
   351
         */
williamr@2
   352
        ESelected   = 0x0004,       // usually different than emphasized
williamr@2
   353
        
williamr@2
   354
        /**
williamr@2
   355
         * Sum of all the above attributes.
williamr@2
   356
         * This last attribute is used to control that one can use only
williamr@2
   357
         * valid attributes above. So do not use it at all.         
williamr@2
   358
         */
williamr@2
   359
        EMask       = 0x0007 // sum of all others attributes
williamr@2
   360
williamr@2
   361
        };
williamr@2
   362
williamr@2
   363
public:
williamr@2
   364
williamr@2
   365
    /**
williamr@2
   366
     * Sets the colour used to draw non-highlighted text.
williamr@2
   367
     *
williamr@2
   368
     * @param aColor The text colour.
williamr@2
   369
     */
williamr@2
   370
    inline void SetTextColor(TRgb aColor);
williamr@2
   371
williamr@2
   372
    /**
williamr@2
   373
     * Sets the colour used to draw the background for non-highlighted items.
williamr@2
   374
     *
williamr@2
   375
     * @param aColor The background colour.
williamr@2
   376
     */
williamr@2
   377
    inline void SetBackColor(TRgb aColor);
williamr@2
   378
williamr@2
   379
    /**
williamr@2
   380
     * Sets the colour used to draw highlighted text.
williamr@2
   381
     *
williamr@2
   382
     * @param aColor The highlighted text colour.
williamr@2
   383
     */
williamr@2
   384
    inline void SetHighlightedTextColor(TRgb aColor);
williamr@2
   385
williamr@2
   386
    /**
williamr@2
   387
     * Sets the colour used to draw the background for highlighted items.
williamr@2
   388
     *
williamr@2
   389
     * @param aColor The highlighted background colour.
williamr@2
   390
     */
williamr@2
   391
    inline void SetHighlightedBackColor(TRgb aColor);
williamr@2
   392
williamr@2
   393
    /**
williamr@2
   394
     * Sets the colour used to draw dimmed text.
williamr@2
   395
     *
williamr@2
   396
     * @param aColor The dimmed text colour.
williamr@2
   397
     */
williamr@2
   398
    inline void SetDimmedTextColor(TRgb aColor);
williamr@2
   399
williamr@2
   400
    /**
williamr@2
   401
     * Sets the colour used to draw the background for dimmed items.
williamr@2
   402
     *
williamr@2
   403
     * @param aColor The background colour for dimmed items.
williamr@2
   404
     */
williamr@2
   405
    inline void SetDimmedBackColor(TRgb aColor);
williamr@2
   406
williamr@2
   407
    /**
williamr@2
   408
     * Gets the colour used to draw non-highlighted text.
williamr@2
   409
     *
williamr@2
   410
     * @return The text colour.
williamr@2
   411
     */
williamr@2
   412
    inline TRgb TextColor() const;
williamr@2
   413
williamr@2
   414
    /**
williamr@2
   415
     * Gets the colour used to draw the background for non-highlighted items.
williamr@2
   416
     *
williamr@2
   417
     * @return Background colour.
williamr@2
   418
     */
williamr@2
   419
    inline TRgb BackColor() const;
williamr@2
   420
williamr@2
   421
    /**
williamr@2
   422
     * Gets the colour used to draw highlighted text.
williamr@2
   423
     *
williamr@2
   424
     * @return The highlighted text colour.
williamr@2
   425
     */
williamr@2
   426
    inline TRgb HighlightedTextColor() const;
williamr@2
   427
williamr@2
   428
    /**
williamr@2
   429
     * Gets the colour used to draw the background for highlighted items.
williamr@2
   430
     *
williamr@2
   431
     * @return The highlighted background colour.
williamr@2
   432
     */
williamr@2
   433
    inline TRgb HighlightedBackColor() const;
williamr@2
   434
williamr@2
   435
    /**
williamr@2
   436
     * Gets the colour used to draw dimmed text.
williamr@2
   437
     *
williamr@2
   438
     * @return The dimmed text colour. 
williamr@2
   439
     */
williamr@2
   440
    inline TRgb DimmedTextColor() const;
williamr@2
   441
williamr@2
   442
    /**
williamr@2
   443
     * Gets the colour used to draw the background for dimmed items.
williamr@2
   444
     *
williamr@2
   445
     * @return The background colour for dimmed items.
williamr@2
   446
     */
williamr@2
   447
    inline TRgb DimmedBackColor() const;
williamr@2
   448
williamr@2
   449
    /**
williamr@2
   450
     * Gets the item drawer flags.
williamr@2
   451
     *
williamr@2
   452
     * @return The item drawer flags.
williamr@2
   453
     */
williamr@2
   454
    inline TInt Flags() const;
williamr@2
   455
williamr@2
   456
    /**
williamr@2
   457
     * Sets the item drawer flags.
williamr@2
   458
     *
williamr@2
   459
     * @param aFlags The new item drawer flags.
williamr@2
   460
     */
williamr@2
   461
    IMPORT_C void SetFlags(TInt aFlags);
williamr@2
   462
williamr@2
   463
    /**
williamr@2
   464
     * Sets the item drawer flags.
williamr@2
   465
     *
williamr@2
   466
     * @param aFlags The new item drawer flags.
williamr@2
   467
     */
williamr@2
   468
    IMPORT_C void ClearFlags(TInt aFlags);
williamr@2
   469
williamr@2
   470
    /**
williamr@2
   471
     * Access to skin contexts.
williamr@2
   472
     *
williamr@2
   473
     * @since S60 2.0
williamr@2
   474
     * @return Pointer to skin background control context.
williamr@2
   475
     */
williamr@2
   476
    IMPORT_C MAknsControlContext  *SkinBackgroundControlContext() const;
williamr@2
   477
    /**
williamr@2
   478
     * Ability to enable skins in listboxes.
williamr@2
   479
     *
williamr@2
   480
     * @since S60 2.0
williamr@2
   481
     * @param aEnabled parameter for enabling/disabling skin.
williamr@2
   482
     *        @c ETrue enables skin,
williamr@2
   483
     *        @c EFalse disables skin
williamr@2
   484
     */
williamr@2
   485
    IMPORT_C void SetSkinEnabledL(TBool aEnabled);
williamr@2
   486
williamr@2
   487
protected:
williamr@2
   488
williamr@2
   489
    /**
williamr@2
   490
     * C++ default constructor.
williamr@2
   491
     */
williamr@2
   492
    IMPORT_C CListItemDrawer();
williamr@2
   493
williamr@2
   494
    /**
williamr@2
   495
     * Draws item text.
williamr@2
   496
     * 
williamr@2
   497
     * This function is called by @c CListItemDrawer::DrawItem() with 
williamr@2
   498
     * appropriate arguments. Its purpose is to draw the actual item 
williamr@2
   499
     * - everything other than the item mark - into the graphics context.
williamr@2
   500
     *
williamr@2
   501
     * @param aItemIndex Which item to draw. 
williamr@2
   502
     * @param aActualItemRect Where the item should be drawn. 
williamr@2
   503
     * @param aItemIsCurrent Whether the item is current. 
williamr@2
   504
     * @param aViewIsEmphasized Whether the list box view is emphasised. 
williamr@2
   505
     * @param aViewIsDimmed Whether the list box view is dimmed. 
williamr@2
   506
     * @param aItemIsSelected Whether the list box item is selected.
williamr@2
   507
     */
williamr@2
   508
    virtual void DrawActualItem(TInt aItemIndex, 
williamr@2
   509
                                const TRect& aActualItemRect, 
williamr@2
   510
                                TBool aItemIsCurrent, 
williamr@2
   511
                                TBool aViewIsEmphasized, 
williamr@2
   512
                                TBool aViewIsDimmed, 
williamr@2
   513
                                TBool aItemIsSelected) const = 0;
williamr@2
   514
williamr@2
   515
    /**
williamr@2
   516
     * Resets the pen style, brush style, brush colour etc. to suitable 
williamr@2
   517
     * starting values for this class. 
williamr@2
   518
     * 
williamr@2
   519
     * This function is called after every drawing operation.
williamr@2
   520
     */
williamr@2
   521
    IMPORT_C virtual void ResetGc() const;
williamr@2
   522
williamr@2
   523
    /**
williamr@2
   524
     * Gets the colour used to draw tick marks. 
williamr@2
   525
     *
williamr@2
   526
     * A tick mark usually indicates that an item is selected.
williamr@2
   527
     *
williamr@2
   528
     * @return The tick mark colour.
williamr@2
   529
     */
williamr@2
   530
    inline TRgb MarkColor() const;
williamr@2
   531
williamr@2
   532
    /**
williamr@2
   533
     * Gets the vertical gap between items in pixels.
williamr@2
   534
     *
williamr@2
   535
     * @return The vertical gap between items in pixels.
williamr@2
   536
     */
williamr@2
   537
    IMPORT_C TInt VerticalInterItemGap() const;
williamr@2
   538
    
williamr@2
   539
    /**
williamr@2
   540
     * Sets up the graphics context for the specified item.
williamr@2
   541
     *
williamr@2
   542
     * @param aItemIndex The item for which the graphics context 
williamr@2
   543
     *        will be set up.
williamr@2
   544
     */
williamr@2
   545
    IMPORT_C void SetupGc(TInt aItemIndex) const;
williamr@2
   546
williamr@2
   547
private:
williamr@2
   548
williamr@2
   549
    IMPORT_C virtual TAny* Reserved_1();
williamr@2
   550
williamr@2
   551
    inline TInt& VerticalInterItemGap();
williamr@2
   552
williamr@2
   553
    inline const CFont* SymbolFont() const;
williamr@2
   554
williamr@2
   555
    inline const CFont*& SymbolFont();
williamr@2
   556
williamr@2
   557
protected:
williamr@2
   558
    
williamr@2
   559
    /** Item's cell size. */
williamr@2
   560
    TSize iItemCellSize;
williamr@2
   561
williamr@2
   562
    /** Mark gutter. */
williamr@2
   563
    TInt iMarkGutter;
williamr@2
   564
williamr@2
   565
    /** Mark column width. */
williamr@2
   566
    TInt iMarkColumnWidth;
williamr@2
   567
williamr@2
   568
    /** View area. */
williamr@2
   569
    TRect iViewRect;
williamr@2
   570
williamr@2
   571
    /** Draw mark. */
williamr@2
   572
    TBool iDrawMark;
williamr@2
   573
williamr@2
   574
    /** Graphics context controller. */
williamr@2
   575
    CWindowGc* iGc;
williamr@2
   576
williamr@2
   577
    /** Color of text. */ 
williamr@2
   578
    TRgb iTextColor;
williamr@2
   579
    
williamr@2
   580
    /** Background color. */
williamr@2
   581
    TRgb iBackColor;
williamr@2
   582
williamr@2
   583
    /** Color of highlighted text. */
williamr@2
   584
    TRgb iHighlightedTextColor; 
williamr@2
   585
williamr@2
   586
    /** Highlighted background color. */
williamr@2
   587
    TRgb iHighlightedBackColor;
williamr@2
   588
williamr@2
   589
    /** Color of dimmed text. */
williamr@2
   590
    TRgb iDimmedTextColor;
williamr@2
   591
williamr@2
   592
    /** Color of dimmed background. */
williamr@2
   593
    TRgb iDimmedBackColor;
williamr@2
   594
williamr@2
   595
    /** Mark color. */
williamr@2
   596
    TRgb iMarkColor;
williamr@2
   597
williamr@2
   598
    /** Data model. */
williamr@2
   599
    CListBoxData* iData;
williamr@2
   600
williamr@2
   601
private:
williamr@2
   602
williamr@2
   603
    const CFont* iSymbolFont;
williamr@2
   604
williamr@2
   605
    TInt iVerticalInterItemGap;
williamr@2
   606
williamr@2
   607
    TInt iSpare;
williamr@2
   608
williamr@2
   609
    TUint iFlags;
williamr@2
   610
williamr@2
   611
    };
williamr@2
   612
williamr@2
   613
williamr@2
   614
williamr@2
   615
williamr@2
   616
class MTextListBoxModel;
williamr@2
   617
williamr@2
   618
williamr@2
   619
/**
williamr@2
   620
 * Item drawer which can handle text.
williamr@2
   621
 * 
williamr@2
   622
 * Used by @c CListBoxView to draw individual list box items 
williamr@2
   623
 * for a @c CEikTextListBox
williamr@2
   624
 */
williamr@2
   625
class CTextListItemDrawer : public CListItemDrawer
williamr@2
   626
    {
williamr@2
   627
williamr@2
   628
public:
williamr@2
   629
williamr@2
   630
    /**
williamr@2
   631
     * C++ default constructor.
williamr@2
   632
     */
williamr@2
   633
    IMPORT_C CTextListItemDrawer();
williamr@2
   634
    
williamr@2
   635
    /**
williamr@2
   636
     * Destructor.
williamr@2
   637
     */
williamr@2
   638
    IMPORT_C ~CTextListItemDrawer();
williamr@2
   639
williamr@2
   640
    /**
williamr@2
   641
     * C++ default constructor.
williamr@2
   642
     *
williamr@2
   643
     * Constructs a new text item drawer which draws the data of the specified 
williamr@2
   644
     * model using the supplied font.
williamr@2
   645
     *
williamr@2
   646
     * @param aTextListBoxModel The model whose items will be drawn. 
williamr@2
   647
     * @param aFont The font in which the items will be drawn.
williamr@2
   648
     */
williamr@2
   649
    IMPORT_C CTextListItemDrawer(MTextListBoxModel* aTextListBoxModel, 
williamr@2
   650
                                 const CFont* aFont);
williamr@2
   651
williamr@2
   652
    /**
williamr@2
   653
     * Handles 2nd phase construction.
williamr@2
   654
     *
williamr@2
   655
     * @param aFont The font in which the list box items will be drawn.
williamr@2
   656
     */
williamr@2
   657
    IMPORT_C void ConstructL(const CFont* aFont);
williamr@2
   658
williamr@2
   659
    /**
williamr@2
   660
     * Draws the actual item contents for the specified item in the specified 
williamr@2
   661
     * rectangle.
williamr@2
   662
     *
williamr@2
   663
     * @param aItemIndex Index of the item to draw. 
williamr@2
   664
     * @param aActualItemRect Area to draw into. 
williamr@2
   665
     * @param aItemIsCurrent @c ETrue if the item is current. 
williamr@2
   666
     * @param aViewIsEmphasized @c ETrue if the view is emphasised. 
williamr@2
   667
     * @param aViewIsDimmed Ignored
williamr@2
   668
     * @param aItemIsSelected @c ETrue if the item is selected.
williamr@2
   669
     */
williamr@2
   670
    IMPORT_C virtual void DrawActualItem(TInt aItemIndex, 
williamr@2
   671
                                         const TRect& aActualItemRect, 
williamr@2
   672
                                         TBool aItemIsCurrent, 
williamr@2
   673
                                         TBool aViewIsEmphasized, 
williamr@2
   674
                                         TBool aViewIsDimmed,
williamr@2
   675
                                         TBool aItemIsSelected) const;
williamr@2
   676
williamr@2
   677
    /**
williamr@2
   678
     * Gets the width in pixels of the specified item.
williamr@2
   679
     *
williamr@2
   680
     * @param aItemIndex The index of the item for which the width is obtained.
williamr@2
   681
     * @return The specified item’s width in pixels.
williamr@2
   682
     */ 
williamr@2
   683
    IMPORT_C virtual TInt ItemWidthInPixels(TInt aItemIndex) const;
williamr@2
   684
williamr@2
   685
    /**
williamr@2
   686
     * Gets the minimum size of a cell based on the font and the number of 
williamr@2
   687
     * characters in the cell.
williamr@2
   688
     *
williamr@2
   689
     * @return The minimum size for a cell, in pixels.
williamr@2
   690
     */
williamr@2
   691
    IMPORT_C virtual TSize MinimumCellSize() const;
williamr@2
   692
williamr@2
   693
    /**
williamr@2
   694
     * Sets the graphics context.
williamr@2
   695
     *
williamr@2
   696
     * @param aGc The graphics context to use.
williamr@2
   697
     */
williamr@2
   698
    IMPORT_C virtual void SetGc(CWindowGc* aGc);
williamr@2
   699
williamr@2
   700
    /**
williamr@2
   701
     * Sets the number of characters in a cell. 
williamr@2
   702
     * This value affects only @c MinimumCellSize().
williamr@2
   703
     *
williamr@2
   704
     * @param aNumOfCharsToDisplayInCell Number of characters to 
williamr@2
   705
     *        display in a cell.
williamr@2
   706
     */
williamr@2
   707
    IMPORT_C void SetCellWidthInChars(TInt aNumOfCharsToDisplayInCell);
williamr@2
   708
williamr@2
   709
    /**
williamr@2
   710
     * Gets the position and size of the matcher cursor.
williamr@2
   711
     *
williamr@2
   712
     * @deprecated
williamr@2
   713
     * @param aMatchableText String currently being matched. Not Used.
williamr@2
   714
     * @param aCharPos Position within the string. Not Used.
williamr@2
   715
     * @param aItemCellYPos Y position of the item cell in pixels. Not Used.
williamr@2
   716
     * @param aCurrentItemIndex Item index for the current item. Not Used.
williamr@2
   717
     * @return The rectangle covered by the matcher cursor, in pixels.
williamr@2
   718
     */
williamr@2
   719
    IMPORT_C virtual TRect MatcherCursorRect(const TDesC& aMatchableText, 
williamr@2
   720
                                             TInt aCharPos, 
williamr@2
   721
                                             TInt aItemCellYPos, 
williamr@2
   722
                                             TInt aCurrentItemIndex ) const;
williamr@2
   723
williamr@2
   724
    /**
williamr@2
   725
     * No Implementation. 
williamr@2
   726
     *
williamr@2
   727
     * Derived classes that deal with text and want to support incremental 
williamr@2
   728
     * matching in listboxes need to redefine this function.
williamr@2
   729
     * Should be used to get the ascent of the matcher cursor in pixels.
williamr@2
   730
     *
williamr@2
   731
     * @deprecated
williamr@2
   732
     * @param aCurrentItemIndex Index of the current item. Not Used.
williamr@2
   733
     * @return Always returns 0;
williamr@2
   734
     */
williamr@2
   735
    IMPORT_C virtual TInt MatcherCursorAscent( TInt aCurrentItemIndex ) const;
williamr@2
   736
williamr@2
   737
    /**
williamr@2
   738
     * Sets the font.
williamr@2
   739
     *
williamr@2
   740
     * @param aFont The new font.
williamr@2
   741
     */
williamr@2
   742
    IMPORT_C void SetFont(const CFont* aFont);
williamr@2
   743
williamr@2
   744
    /**
williamr@2
   745
     * Sets the search string.
williamr@2
   746
     *
williamr@2
   747
     * @param aSearchString The new search string.
williamr@2
   748
     */
williamr@2
   749
    IMPORT_C void SetSearchStringL(const TDesC* aSearchString);
williamr@2
   750
williamr@2
   751
    /**
williamr@2
   752
     * Gets font for the specified item.
williamr@2
   753
     *
williamr@2
   754
     * @param aIndex The index of the target item.
williamr@2
   755
     * @return Specified item's font.
williamr@2
   756
     */
williamr@2
   757
    IMPORT_C const CFont* Font(TInt aIndex) const;
williamr@2
   758
williamr@2
   759
    // SAPLAF new methods.
williamr@2
   760
williamr@2
   761
williamr@2
   762
    /**
williamr@2
   763
     * Sets item mark position.
williamr@2
   764
     *
williamr@2
   765
     * @param aPos The new position.
williamr@2
   766
     */
williamr@2
   767
    inline void SetItemMarkPosition(TInt aPos);
williamr@2
   768
williamr@2
   769
    /**
williamr@2
   770
     * Gets item mark position.
williamr@2
   771
     *
williamr@2
   772
     * @return Position of the Item mark.
williamr@2
   773
     */
williamr@2
   774
    inline TInt ItemMarkPosition() const;
williamr@2
   775
williamr@2
   776
    /**
williamr@2
   777
     * Sets the item mark replacement.
williamr@2
   778
     *
williamr@2
   779
     * @param aReplacement The new replacement descriptor.
williamr@2
   780
     */
williamr@2
   781
    inline void SetItemMarkReplacement(const TDesC &aReplacement);
williamr@2
   782
williamr@2
   783
    /**
williamr@2
   784
     * Gets item mark replacement.
williamr@2
   785
     *
williamr@2
   786
     * @return Pointer to the replacement string.
williamr@2
   787
     */
williamr@2
   788
    inline TPtrC ItemMarkReplacement() const;
williamr@2
   789
williamr@2
   790
    /**
williamr@2
   791
     * Sets item mark reverse to be active or not.
williamr@2
   792
     *
williamr@2
   793
     * @param aReverse The new setting.
williamr@2
   794
     *        @c ETrue if item is marked reversed.
williamr@2
   795
     */
williamr@2
   796
    inline void SetItemMarkReverse(TBool aReverse);
williamr@2
   797
williamr@2
   798
    /**
williamr@2
   799
     * Check if the item has been marked reversed is active.
williamr@2
   800
     *
williamr@2
   801
     * @return Indicates if active or not.
williamr@2
   802
     *         @c ETrue if active
williamr@2
   803
     */
williamr@2
   804
    inline TBool ItemMarkReverse() const;
williamr@2
   805
williamr@2
   806
williamr@2
   807
protected:
williamr@2
   808
williamr@2
   809
    /**
williamr@2
   810
     * Draws text.
williamr@2
   811
     *
williamr@2
   812
     * This function is invoked by @c DrawItemText() to draw a string into a 
williamr@2
   813
     * rectangular area of @c iGc.
williamr@2
   814
     *
williamr@2
   815
     * @param aDes The string to draw. 
williamr@2
   816
     * @param aItemTextRect Area to draw into. 
williamr@2
   817
     * @param aItemIsCurrent @c ETrue if the item is current. 
williamr@2
   818
     * @param aViewIsEmphasized @c ETrue if the view is emphasised. 
williamr@2
   819
     * @param aItemIsSelected @c ETrue if the item is selected. 
williamr@2
   820
     * @param aItemIndex The item’s index.
williamr@2
   821
     */
williamr@2
   822
    IMPORT_C virtual void DoDrawItemText(const TDesC& aDes, 
williamr@2
   823
                                         const TRect& aItemTextRect, 
williamr@2
   824
                                         TBool aItemIsCurrent, 
williamr@2
   825
                                         TBool aViewIsEmphasized, 
williamr@2
   826
                                         TBool aItemIsSelected, 
williamr@2
   827
                                         TInt aItemIndex) const;
williamr@2
   828
williamr@2
   829
    /**
williamr@2
   830
     * Draw item text.
williamr@2
   831
     * 
williamr@2
   832
     * This function is invoked by @c DrawActualItem() to draw the item text.
williamr@2
   833
     *
williamr@2
   834
     * @param aItemIndex Index of the item to draw. 
williamr@2
   835
     * @param aItemTextRect Area to draw into. 
williamr@2
   836
     * @param aItemIsCurrent @c ETrue if the item is current. 
williamr@2
   837
     * @param aViewIsEmphasized @c ETrue if the view is emphasised.
williamr@2
   838
     * @param aItemIsSelected @c ETrue if the item is selected. 
williamr@2
   839
     */
williamr@2
   840
    IMPORT_C virtual void DrawItemText(TInt aItemIndex, 
williamr@2
   841
                                       const TRect& aItemTextRect, 
williamr@2
   842
                                       TBool aItemIsCurrent, 
williamr@2
   843
                                       TBool aViewIsEmphasized, 
williamr@2
   844
                                       TBool aItemIsSelected) const;
williamr@2
   845
williamr@2
   846
    /**
williamr@2
   847
     * Resets the graphics context.
williamr@2
   848
     * This function invokes @c CListItemDrawer::ResetGc() and resets the pen 
williamr@2
   849
     * colour to @c iTextColor.
williamr@2
   850
     */
williamr@2
   851
    IMPORT_C virtual void ResetGc() const;
williamr@2
   852
williamr@2
   853
private:
williamr@2
   854
williamr@2
   855
    IMPORT_C virtual TAny* Reserved_1();
williamr@2
   856
williamr@2
   857
protected:
williamr@2
   858
williamr@2
   859
    /** List box model for the drawer. */
williamr@2
   860
    MTextListBoxModel* iModel;
williamr@2
   861
williamr@2
   862
    /** Font used by the drawer. */
williamr@2
   863
    const CFont* iFont;
williamr@2
   864
williamr@2
   865
private:
williamr@2
   866
    
williamr@2
   867
    TInt iNumOfCharsInCell;
williamr@2
   868
williamr@2
   869
    // AVKON LAF 
williamr@2
   870
williamr@2
   871
    TInt iItemMarkPos;
williamr@2
   872
williamr@2
   873
    TPtrC iItemMarkReplacement;
williamr@2
   874
williamr@2
   875
    TBool iItemMarkReverse;
williamr@2
   876
williamr@2
   877
    // AVKON LAF ENDS 
williamr@2
   878
williamr@2
   879
    };
williamr@2
   880
williamr@2
   881
williamr@2
   882
williamr@2
   883
williamr@2
   884
/**
williamr@2
   885
 * The @c TListItemProperties class packages together the color and 
williamr@2
   886
 * style properties which can be applied when drawing the contents 
williamr@2
   887
 * of list box items.
williamr@2
   888
 *
williamr@2
   889
 * @since Symbian ER5U
williamr@2
   890
 */
williamr@2
   891
williamr@2
   892
class TListItemProperties
williamr@2
   893
williamr@2
   894
    {
williamr@2
   895
williamr@2
   896
public:
williamr@2
   897
williamr@2
   898
    /**
williamr@2
   899
     * C++ default constructor.
williamr@2
   900
     */
williamr@2
   901
    IMPORT_C TListItemProperties();
williamr@2
   902
williamr@2
   903
public:
williamr@2
   904
williamr@2
   905
    /**
williamr@2
   906
     * Sets whether the list item is drawn bold or not bold.
williamr@2
   907
     *
williamr@2
   908
     * @deprecated
williamr@2
   909
     * @param aBold @c ETrue to draw the list item bold. 
williamr@2
   910
     *        @c EFalse otherwise.
williamr@2
   911
     */
williamr@2
   912
    inline void SetBold(TBool aBold);
williamr@2
   913
williamr@2
   914
    /**
williamr@2
   915
     * Tests whether the list item is drawn bold.
williamr@2
   916
     *
williamr@2
   917
     * @deprecated
williamr@2
   918
     * @return @c ETrue if the list item is drawn bold. 
williamr@2
   919
     *         @c EFalse otherwise.
williamr@2
   920
     */
williamr@2
   921
    inline TBool IsBold() const;
williamr@2
   922
williamr@2
   923
    /**
williamr@2
   924
     * Sets whether or not the list item is drawn in italics.
williamr@2
   925
     *
williamr@2
   926
     * @deprecated
williamr@2
   927
     * @param aItalics @c ETrue to draw the list item in italics. 
williamr@2
   928
     *        @c EFalse otherwise.
williamr@2
   929
     */
williamr@2
   930
    inline void SetItalics(TBool aItalics);
williamr@2
   931
williamr@2
   932
    /**
williamr@2
   933
     * Tests whether the list item is italicised.
williamr@2
   934
     *
williamr@2
   935
     * @deprecated
williamr@2
   936
     * @return @c ETrue if the list item is drawn in italics. 
williamr@2
   937
     *         @c EFalse otherwise.
williamr@2
   938
     */
williamr@2
   939
    inline TBool IsItalics() const;
williamr@2
   940
williamr@2
   941
    /**
williamr@2
   942
     * Sets whether or not the list item is drawn with an underline.
williamr@2
   943
     *
williamr@2
   944
     * @param aUnderlined @c ETrue to draw the list item with an underline. 
williamr@2
   945
     *        @c EFalse otherwise.
williamr@2
   946
     */
williamr@2
   947
    inline void SetUnderlined(TBool aUnderlined);
williamr@2
   948
williamr@2
   949
    /**
williamr@2
   950
     * Test whether the list item is drawn with an underline.
williamr@2
   951
     *
williamr@2
   952
     * @return @c ETrue if the list item is drawn with an underline. 
williamr@2
   953
     *         @c EFalse otherwise.
williamr@2
   954
     */
williamr@2
   955
    inline TBool IsUnderlined() const;
williamr@2
   956
williamr@2
   957
    /**
williamr@2
   958
     * Sets list item dim state. 
williamr@2
   959
     * 
williamr@2
   960
     * An item is usually drawn dimmed to indicate that it cannot accept 
williamr@2
   961
     * user input.
williamr@2
   962
     *
williamr@2
   963
     * @param aDimmed @c ETrue to draw the list item dimmed. @c EFalse otherwise.
williamr@2
   964
     */
williamr@2
   965
    inline void SetDimmed(TBool aDimmed);
williamr@2
   966
williamr@2
   967
    /**
williamr@2
   968
     * Tests list item dim state. 
williamr@2
   969
     *
williamr@2
   970
     * An item is usually drawn dimmed to indicate that it cannot accept 
williamr@2
   971
     * user input.
williamr@2
   972
     *
williamr@2
   973
     * @return @c ETrue if the list item is dimmed. 
williamr@2
   974
     *         @c EFalse otherwise.
williamr@2
   975
     */
williamr@2
   976
    inline TBool IsDimmed() const;
williamr@2
   977
williamr@2
   978
    /**
williamr@2
   979
     * Sets the list item’s colour.
williamr@2
   980
     *
williamr@2
   981
     * @param aColor The list item’s colour.
williamr@2
   982
     */
williamr@2
   983
    inline void SetColor(TRgb aColor);
williamr@2
   984
williamr@2
   985
    /**
williamr@2
   986
     * Gets the list item’s colour.
williamr@2
   987
     *
williamr@2
   988
     * @return The list item’s colour.
williamr@2
   989
     */
williamr@2
   990
    inline TRgb Color() const;
williamr@2
   991
williamr@2
   992
    /**
williamr@2
   993
     * Activate/deactivate separator after item.
williamr@2
   994
     *
williamr@2
   995
     * @deprecated
williamr@2
   996
     * @param aSeparator Active/deactive selector.
williamr@2
   997
     *        @c ETrue = Active.
williamr@2
   998
     *        @c EFalse = Deactivated.
williamr@2
   999
     */
williamr@2
  1000
    inline void SetSeparatorAfter(TBool aSeparator);
williamr@2
  1001
williamr@2
  1002
    /**
williamr@2
  1003
     * Check if separator after item is active.
williamr@2
  1004
     *
williamr@2
  1005
     * @deprecated
williamr@2
  1006
     * @return @c ETrue if Active.
williamr@2
  1007
     *         @c EFalse if Deactivated.
williamr@2
  1008
     */
williamr@2
  1009
    inline TBool IsSeparatorAfter() const;
williamr@2
  1010
williamr@2
  1011
    /**
williamr@2
  1012
     * Select to hide the item .
williamr@2
  1013
     *
williamr@2
  1014
     * @param aHidden Defines whether the item is hidden.
williamr@2
  1015
     *        @c ETrue = Hidden
williamr@2
  1016
     */
williamr@2
  1017
    inline void SetHiddenSelection(TBool aHidden);
williamr@2
  1018
williamr@2
  1019
    /**
williamr@2
  1020
     * Check if the item is hidden.
williamr@2
  1021
     *
williamr@2
  1022
     * @return @c ETrue if item is hidden.
williamr@2
  1023
     */
williamr@2
  1024
    inline TBool IsSelectionHidden() const;
williamr@2
  1025
williamr@2
  1026
private:
williamr@2
  1027
williamr@2
  1028
    TUint iFlags;
williamr@2
  1029
williamr@2
  1030
    TRgb iColor;
williamr@2
  1031
williamr@2
  1032
private:
williamr@2
  1033
williamr@2
  1034
    enum
williamr@2
  1035
williamr@2
  1036
        {
williamr@2
  1037
williamr@2
  1038
        ELbxItemBold        = 0x0001,
williamr@2
  1039
williamr@2
  1040
        ELbxItemItalics     = 0x0002,
williamr@2
  1041
williamr@2
  1042
        ELbxItemUnderlined  = 0x0004,
williamr@2
  1043
williamr@2
  1044
    ELbxItemDimmed      = 0x0008,
williamr@2
  1045
williamr@2
  1046
    ELbxItemSeparatorAfter  = 0x0010,
williamr@2
  1047
    
williamr@2
  1048
    ELbxItemSelectionHidden = 0x0020
williamr@2
  1049
    
williamr@2
  1050
        };
williamr@2
  1051
williamr@2
  1052
    };
williamr@2
  1053
williamr@2
  1054
williamr@2
  1055
williamr@2
  1056
//
williamr@2
  1057
williamr@2
  1058
// Inlines
williamr@2
  1059
williamr@2
  1060
//
williamr@2
  1061
williamr@2
  1062
williamr@2
  1063
williamr@2
  1064
inline void CListItemDrawer::SetTextColor(TRgb aColor)
williamr@2
  1065
williamr@2
  1066
    {iTextColor=aColor;}
williamr@2
  1067
williamr@2
  1068
inline void CListItemDrawer::SetBackColor(TRgb aColor)
williamr@2
  1069
williamr@2
  1070
    {iBackColor=aColor;}
williamr@2
  1071
williamr@2
  1072
inline void CListItemDrawer::SetHighlightedTextColor(TRgb aColor)
williamr@2
  1073
williamr@2
  1074
    {iHighlightedTextColor=aColor;}
williamr@2
  1075
williamr@2
  1076
inline void CListItemDrawer::SetHighlightedBackColor(TRgb aColor)
williamr@2
  1077
williamr@2
  1078
    {iHighlightedBackColor=aColor;}
williamr@2
  1079
williamr@2
  1080
inline void CListItemDrawer::SetDimmedTextColor(TRgb aColor)
williamr@2
  1081
williamr@2
  1082
    {iDimmedTextColor=aColor;}
williamr@2
  1083
williamr@2
  1084
inline void CListItemDrawer::SetDimmedBackColor(TRgb aColor)
williamr@2
  1085
williamr@2
  1086
    {iDimmedBackColor=aColor;}
williamr@2
  1087
williamr@2
  1088
inline TRgb CListItemDrawer::TextColor() const
williamr@2
  1089
williamr@2
  1090
    {return iTextColor;}
williamr@2
  1091
williamr@2
  1092
inline TRgb CListItemDrawer::BackColor() const
williamr@2
  1093
williamr@2
  1094
    {return iBackColor;}
williamr@2
  1095
williamr@2
  1096
inline TRgb CListItemDrawer::HighlightedTextColor() const
williamr@2
  1097
williamr@2
  1098
    {return iHighlightedTextColor;}
williamr@2
  1099
williamr@2
  1100
inline TRgb CListItemDrawer::HighlightedBackColor() const
williamr@2
  1101
williamr@2
  1102
    {return iHighlightedBackColor;}
williamr@2
  1103
williamr@2
  1104
inline TRgb CListItemDrawer::DimmedTextColor() const
williamr@2
  1105
williamr@2
  1106
    {return iDimmedTextColor;}
williamr@2
  1107
williamr@2
  1108
inline TRgb CListItemDrawer::DimmedBackColor() const
williamr@2
  1109
williamr@2
  1110
    {return iDimmedBackColor;}
williamr@2
  1111
williamr@2
  1112
inline TRgb CListItemDrawer::MarkColor() const
williamr@2
  1113
williamr@2
  1114
    {return iMarkColor;}
williamr@2
  1115
williamr@2
  1116
inline TInt CListItemDrawer::Flags() const
williamr@2
  1117
williamr@2
  1118
    {return iFlags;}
williamr@2
  1119
williamr@2
  1120
williamr@2
  1121
williamr@2
  1122
inline TBool TListItemProperties::IsItalics() const
williamr@2
  1123
williamr@2
  1124
    {return iFlags&ELbxItemItalics;}
williamr@2
  1125
williamr@2
  1126
inline TBool TListItemProperties::IsBold() const
williamr@2
  1127
williamr@2
  1128
    {return iFlags&ELbxItemBold;}
williamr@2
  1129
williamr@2
  1130
inline TBool TListItemProperties::IsUnderlined() const
williamr@2
  1131
williamr@2
  1132
    {return iFlags&ELbxItemUnderlined;}
williamr@2
  1133
williamr@2
  1134
inline TBool TListItemProperties::IsDimmed() const
williamr@2
  1135
williamr@2
  1136
    {return iFlags&ELbxItemDimmed;}
williamr@2
  1137
williamr@2
  1138
inline TBool TListItemProperties::IsSeparatorAfter() const
williamr@2
  1139
williamr@2
  1140
    {return iFlags&ELbxItemSeparatorAfter;}
williamr@2
  1141
williamr@2
  1142
inline TBool TListItemProperties::IsSelectionHidden() const
williamr@2
  1143
williamr@2
  1144
    {return iFlags&ELbxItemSelectionHidden;}
williamr@2
  1145
williamr@2
  1146
williamr@2
  1147
williamr@2
  1148
inline void TListItemProperties::SetColor(TRgb aColor)
williamr@2
  1149
williamr@2
  1150
    {iColor=aColor;}
williamr@2
  1151
williamr@2
  1152
inline TRgb TListItemProperties::Color() const
williamr@2
  1153
williamr@2
  1154
    {return iColor;}
williamr@2
  1155
williamr@2
  1156
inline void TListItemProperties::SetBold(TBool aBold)
williamr@2
  1157
williamr@2
  1158
    {
williamr@2
  1159
williamr@2
  1160
    if (aBold) 
williamr@2
  1161
williamr@2
  1162
        iFlags|=ELbxItemBold;
williamr@2
  1163
williamr@2
  1164
    else
williamr@2
  1165
williamr@2
  1166
        iFlags&=(~ELbxItemBold);
williamr@2
  1167
williamr@2
  1168
    }
williamr@2
  1169
williamr@2
  1170
inline void TListItemProperties::SetItalics(TBool aItalics)
williamr@2
  1171
williamr@2
  1172
    {
williamr@2
  1173
williamr@2
  1174
    if (aItalics)
williamr@2
  1175
williamr@2
  1176
        iFlags|=ELbxItemItalics;
williamr@2
  1177
williamr@2
  1178
    else
williamr@2
  1179
williamr@2
  1180
        iFlags&=(~ELbxItemItalics);
williamr@2
  1181
williamr@2
  1182
    }
williamr@2
  1183
williamr@2
  1184
inline void TListItemProperties::SetUnderlined(TBool aUnderlined)
williamr@2
  1185
williamr@2
  1186
    {
williamr@2
  1187
williamr@2
  1188
    if (aUnderlined)
williamr@2
  1189
williamr@2
  1190
        iFlags|=ELbxItemUnderlined;
williamr@2
  1191
williamr@2
  1192
    else
williamr@2
  1193
williamr@2
  1194
        iFlags&=(~ELbxItemUnderlined);
williamr@2
  1195
williamr@2
  1196
    }
williamr@2
  1197
williamr@2
  1198
inline void TListItemProperties::SetDimmed(TBool aDimmed)
williamr@2
  1199
williamr@2
  1200
    {
williamr@2
  1201
williamr@2
  1202
    if (aDimmed)
williamr@2
  1203
williamr@2
  1204
        iFlags|=ELbxItemDimmed;
williamr@2
  1205
williamr@2
  1206
    else
williamr@2
  1207
williamr@2
  1208
        iFlags&=(~ELbxItemDimmed);
williamr@2
  1209
williamr@2
  1210
    }
williamr@2
  1211
williamr@2
  1212
williamr@2
  1213
williamr@2
  1214
inline void TListItemProperties::SetSeparatorAfter(TBool aSeparator)
williamr@2
  1215
williamr@2
  1216
    {
williamr@2
  1217
williamr@2
  1218
    if (aSeparator) 
williamr@2
  1219
williamr@2
  1220
        iFlags|=ELbxItemSeparatorAfter;
williamr@2
  1221
williamr@2
  1222
    else
williamr@2
  1223
williamr@2
  1224
        iFlags&=(~ELbxItemSeparatorAfter);
williamr@2
  1225
williamr@2
  1226
    }
williamr@2
  1227
williamr@2
  1228
williamr@2
  1229
inline void TListItemProperties::SetHiddenSelection(TBool aBlocked)
williamr@2
  1230
williamr@2
  1231
    {
williamr@2
  1232
williamr@2
  1233
    if (aBlocked) 
williamr@2
  1234
williamr@2
  1235
        iFlags|=ELbxItemSelectionHidden;
williamr@2
  1236
williamr@2
  1237
    else
williamr@2
  1238
williamr@2
  1239
        iFlags&=(~ELbxItemSelectionHidden);
williamr@2
  1240
williamr@2
  1241
    }
williamr@2
  1242
williamr@2
  1243
williamr@2
  1244
williamr@2
  1245
williamr@2
  1246
 
williamr@2
  1247
williamr@2
  1248
// AVKON LAF 
williamr@2
  1249
williamr@2
  1250
inline void CTextListItemDrawer::SetItemMarkPosition(TInt aPos) { iItemMarkPos = aPos; }
williamr@2
  1251
williamr@2
  1252
inline TInt CTextListItemDrawer::ItemMarkPosition() const { return iItemMarkPos; }
williamr@2
  1253
williamr@2
  1254
inline void CTextListItemDrawer::SetItemMarkReplacement(const TDesC & aReplacement) { iItemMarkReplacement.Set(aReplacement); }
williamr@2
  1255
williamr@2
  1256
inline TPtrC CTextListItemDrawer::ItemMarkReplacement() const { return iItemMarkReplacement; }
williamr@2
  1257
williamr@2
  1258
inline void CTextListItemDrawer::SetItemMarkReverse(TBool aReverse) { iItemMarkReverse = aReverse; }
williamr@2
  1259
inline TBool CTextListItemDrawer::ItemMarkReverse() const { return iItemMarkReverse; }
williamr@2
  1260
williamr@2
  1261
// END OF AVKON LAF 
williamr@2
  1262
williamr@2
  1263
williamr@2
  1264
williamr@2
  1265
#endif  // __EIKLBI_H__
williamr@2
  1266
williamr@2
  1267
// End of File