williamr@2: /*
williamr@2: * Copyright (c) 1997-1999 Nokia Corporation and/or its subsidiary(-ies).
williamr@2: * All rights reserved.
williamr@2: * This component and the accompanying materials are made available
williamr@2: * 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: * which accompanies this distribution, and is available
williamr@2: * at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
williamr@2: *
williamr@2: * Initial Contributors:
williamr@2: * Nokia Corporation - initial contribution.
williamr@2: *
williamr@2: * Contributors:
williamr@2: *
williamr@2: * Description:
williamr@2: *
williamr@2: */
williamr@2: 
williamr@2: 
williamr@2: 
williamr@2: 
williamr@2: #if !defined(__EIKLBI_H__)
williamr@2: #define __EIKLBI_H__  
williamr@2: 
williamr@2: #include <e32base.h>
williamr@2: #include <gdi.h>
williamr@2: 
williamr@2: 
williamr@2: class CWindowGc;
williamr@2: class CListBoxData;
williamr@2: class TListItemProperties;
williamr@2: class TListFontBoundValues;
williamr@2: class MAknsControlContext;
williamr@2: 
williamr@2: 
williamr@2: /**
williamr@2:  * The @c CListItemDrawer class is the base class for the list box item drawers 
williamr@2:  * which handle drawing of the contents of list box items.
williamr@2:  * The items may optionally be markable.
williamr@2:  *
williamr@2:  * @since Symbian 5.0
williamr@2:  */
williamr@2: class CListItemDrawer : public CBase
williamr@2:     {
williamr@2: 
williamr@2: public:
williamr@2: 
williamr@2:     /**
williamr@2:      * Destructor.
williamr@2:      */
williamr@2:     IMPORT_C ~CListItemDrawer();
williamr@2: 
williamr@2:     /**
williamr@2:      * Draws the entire item.
williamr@2:      *
williamr@2:      * This function is called by the list box view. As implemented
williamr@2:      * in @c CListItemDrawer, this function draws the item text using 
williamr@2:      * @c DrawActualItem(), and an item mark using @c DrawItemMark().
williamr@2:      * 
williamr@2:      * @param aItemIndex Index of the item to draw. 
williamr@2:      * @param aItemRectPos Position of the rectangle to draw. 
williamr@2:      * @param aItemIsSelected Whether the item is selected. 
williamr@2:      * @param aItemIsCurrent Whether the item is current. 
williamr@2:      * @param aViewIsEmphasized Whether the list box view has the emphasised
williamr@2:      *        flag set (see @c CListBoxView::SetEmphasized()). 
williamr@2:      * @param aViewIsDimmed Whether the list box view has its dimmed flag set
williamr@2:      *        (see @c CListBoxView::SetDimmed()). 
williamr@2:      */
williamr@2:     IMPORT_C virtual void DrawItem(TInt aItemIndex, 
williamr@2:                                    TPoint aItemRectPos, 
williamr@2:                                    TBool aItemIsSelected, 
williamr@2:                                    TBool aItemIsCurrent, 
williamr@2:                                    TBool aViewIsEmphasized, 
williamr@2:                                    TBool aViewIsDimmed) const;
williamr@2: 
williamr@2:     /**
williamr@2:      * Clears the specified rectangle of this object's graphics context.
williamr@2:      *
williamr@2:      * @param aRect Rectangle to clear.
williamr@2:      */
williamr@2:     IMPORT_C virtual void ClearRect(const TRect& aRect) const;
williamr@2: 
williamr@2:     /**
williamr@2:      * Gets the width of the specified item.
williamr@2:      *
williamr@2:      * @param aItemIndex The index of the item whose width is to be returned. 
williamr@2:      * @return The width of the item. This is 0 in @c CListItemDrawer
williamr@2:      */
williamr@2:     IMPORT_C virtual TInt ItemWidthInPixels(TInt aItemIndex) const;
williamr@2: 
williamr@2:     /**
williamr@2:      * Gets the minimum cell size.
williamr@2:      *
williamr@2:      * @return The minimum size for a cell. This is @c TSize(0, 0) 
williamr@2:      *         in @c CListItemDrawer.
williamr@2:      */
williamr@2:     IMPORT_C virtual TSize MinimumCellSize() const;
williamr@2: 
williamr@2:     /**
williamr@2:      * Sets the graphics context which this object uses for drawing.
williamr@2:      *
williamr@2:      * @param aGc Pointer to the context to use.
williamr@2:      */
williamr@2:     IMPORT_C virtual void SetGc(CWindowGc* aGc);
williamr@2: 
williamr@2:     /**
williamr@2:      * Gets graphics context which is used for drawing.
williamr@2:      *
williamr@2:      * @return Pointer to the graphics context used for drawing.
williamr@2:      */
williamr@2:     IMPORT_C CWindowGc* Gc() const;
williamr@2: 
williamr@2:     /**
williamr@2:      * Sets the width of the column containing the mark.
williamr@2:      *
williamr@2:      * @param aWidthInPixels New width for the mark column.
williamr@2:      */
williamr@2:     IMPORT_C virtual void SetMarkColumnWidth(TInt aWidthInPixels);
williamr@2: 
williamr@2:     /**
williamr@2:      * Sets the width of the gap between the column containing the lists item 
williamr@2:      * marks and the text column.
williamr@2:      *
williamr@2:      * @param aGapInPixels New gap size.
williamr@2:      */
williamr@2:     IMPORT_C virtual void SetMarkGutter(TInt aGapInPixels);
williamr@2: 
williamr@2:     /**
williamr@2:      * Gets mark column width.
williamr@2:      *
williamr@2:      * @return Mark column width.
williamr@2:      */
williamr@2:     IMPORT_C TInt MarkColumn() const;
williamr@2: 
williamr@2:     /**
williamr@2:      * Gets the width of the gap between the column containig the lists item
williamr@2:      * marks and the text column.
williamr@2:      *
williamr@2:      * @return Size of the inter-column gutter.
williamr@2:      */
williamr@2:     IMPORT_C TInt MarkGutter() const;
williamr@2: 
williamr@2:     /**
williamr@2:      * Sets the item cell size.
williamr@2:      * The cell size is the on-screen size of the entire item, including 
williamr@2:      * its text and its item mark.
williamr@2:      *
williamr@2:      * @param aSizeInPixels New size for the item cell.
williamr@2:      */
williamr@2:     IMPORT_C virtual void SetItemCellSize(const TSize& aSizeInPixels);
williamr@2: 
williamr@2:     /**
williamr@2:      * Gets current item cell size.
williamr@2:      *
williamr@2:      * @since Symbian 3.0
williamr@2:      * @return Item cell size
williamr@2:      */
williamr@2:     IMPORT_C TSize ItemCellSize() const;
williamr@2: 
williamr@2:     /**
williamr@2:      * Sets the viewing rectangle for this item drawer.
williamr@2:      * This value is not used by the @c CListItemViewer, but may be used by its 
williamr@2:      * derived classes.
williamr@2:      *
williamr@2:      * @param aRect New value for @c iViewRect.
williamr@2:      */
williamr@2:     IMPORT_C virtual void SetViewRect(const TRect& aRect);
williamr@2: 
williamr@2:     /**
williamr@2:      * Sets whether item tick marks are drawn. 
williamr@2:      * 
williamr@2:      * If the draw mark flag iDrawMark is set, @c DrawItem() leaves space for 
williamr@2:      * the marks column to the left of the text column, and @c DrawItemMark()
williamr@2:      * draws the item marks.
williamr@2:      *
williamr@2:      * @param aDrawMark New value for iDrawMark.
williamr@2:      */
williamr@2:     IMPORT_C void SetDrawMark(TBool aDrawMark);
williamr@2: 
williamr@2:     /**
williamr@2:      * Gets a rectangle describing where the matcher cursor should be drawn.
williamr@2:      * The default behavious is to return uninitialised @c TRect.
williamr@2:      *
williamr@2:      * @deprecated
williamr@2:      * @param aMatchableText The text of the currently matched string.
williamr@2:      * @param aCharPos The position in the string of the character just matched
williamr@2:      *        in the current incremental match.
williamr@2:      * @param aItemCellYPos Y position of the item cell.
williamr@2:      * @param aCurrentItemIndex Item index for the current item.
williamr@2:      * @return Where the cursor should be drawn.
williamr@2:      */
williamr@2:     IMPORT_C virtual TRect MatcherCursorRect(const TDesC& aMatchableText, 
williamr@2:                                              TInt aCharPos, 
williamr@2:                                              TInt aItemCellYPos, 
williamr@2:                                              TInt aCurrentItemIndex ) const;
williamr@2: 
williamr@2:     /**
williamr@2:      * Gets the ascent of the matcher cursor.
williamr@2:      * 
williamr@2:      * This is obtained for the item at index @c aCurrentItemIndex.
williamr@2:      * The function returns 0 by default.
williamr@2:      *
williamr@2:      * @deprecated
williamr@2:      * @param aCurrentItemIndex Item index of the target item.
williamr@2:      * @return The height of the matcher cursor.
williamr@2:      */
williamr@2:     IMPORT_C virtual TInt MatcherCursorAscent( TInt aCurrentItemIndex ) const;
williamr@2: 
williamr@2:     /**
williamr@2:      * Not Used in S60.
williamr@2:      */
williamr@2:     IMPORT_C virtual void DrawItemMark(TBool aItemIsSelected, 
williamr@2:                                        TBool aViewIsDimmed, 
williamr@2:                                        const TPoint& aMarkPos) const;
williamr@2: 
williamr@2:     /**
williamr@2:      * Sets symbol font for the item drawer.
williamr@2:      * The symbol font is used to draw the standard tick item marks.
williamr@2:      *
williamr@2:      * @param aFont The font to be used.
williamr@2:      */
williamr@2:     IMPORT_C void SetSymbolFont(const CFont* aFont);
williamr@2: 
williamr@2:     /**
williamr@2:      * Sets the vertical gap between items in the list.
williamr@2:      *
williamr@2:      * @param aGapInPixels New value for the vertical gap between items 
williamr@2:      *        in pixels.
williamr@2:      */
williamr@2:     IMPORT_C void SetVerticalInterItemGap(TInt aGapInPixels);
williamr@2: 
williamr@2:     /**
williamr@2:      * Sets the font storage data for the item drawer and transfer ownership
williamr@2:      * of that data.
williamr@2:      *
williamr@2:      * @param aData Font storage data .
williamr@2:      */
williamr@2:     IMPORT_C void SetData(CListBoxData* aData);
williamr@2: 
williamr@2:     /**
williamr@2:      * Gets the font for the specified item.
williamr@2:      * 
williamr@2:      * The function returns @c NULL if no font storage data has been set.
williamr@2:      *
williamr@2:      * @param aItemIndex The index of the item for which the font is returned.
williamr@2:      * @return The item's font.
williamr@2:      */
williamr@2:     IMPORT_C CFont* Font(TInt aItemIndex) const;
williamr@2: 
williamr@2:     /**
williamr@2:      * Gets the colour and style properties of the specified item.
williamr@2:      *
williamr@2:      * @param aItemIndex The index of the item for which properties
williamr@2:      *        are obtained (Not Used).
williamr@2:      * @return The item's properties.
williamr@2:      */
williamr@2:     IMPORT_C virtual TListItemProperties Properties(TInt aItemIndex) const;
williamr@2: 
williamr@2:     /**
williamr@2:      * Draws the frame.
williamr@2:      * 
williamr@2:      * Uses the colours set with the fonts and colour functions described above.
williamr@2:      *
williamr@2:      * @deprecated
williamr@2:      * @param aGc The graphics context used to draw the frame.
williamr@2:      * @param aRect The frame's rectangle.
williamr@2:      * @param aFlags The item drawer flags.
williamr@2:      */
williamr@2:     IMPORT_C void DrawFrame(CWindowGc& aGc,
williamr@2:                             const TRect& aRect,
williamr@2:                             TInt aFlags) const;
williamr@2: 
williamr@2: public:
williamr@2: 
williamr@2:     /**
williamr@2:      * Provides list box attributes for handling multiple selections. These 
williamr@2:      * flags can be set using the @c CListItemDrawer::SetFlags function.
williamr@2:      */ 
williamr@2:     enum TFlags
williamr@2:         {
williamr@2:         /**
williamr@2:          * If set, specifies the inclusion of a gap into which a tick mark can
williamr@2:          * be drawn if the item is selected. This is used in the following 
williamr@2:          * @c CListItemDrawer class functions:
williamr@2:          *   @c DrawItem(),
williamr@2:          *   @c DrawItemMark(),
williamr@2:          *   @c SetDrawMark()
williamr@2:          */
williamr@2:         EDrawMarkSelection          = 0x0001,
williamr@2:         
williamr@2:         /**
williamr@2:          * If set, draws a highlight over a selected list item. This is used 
williamr@2:          * in the @c CTextListItemDrawer::DoDrawItemText() function.
williamr@2:          */
williamr@2:         EPaintedSelection           = 0x0002,
williamr@2:         
williamr@2:         /** This flag is not supported. */ 
williamr@2:         EDrawOnlyActiveSelection    = 0x0004,
williamr@2:         
williamr@2:         /** If set highlight is disabled. */
williamr@2:         EDisableHighlight = 0x0008,
williamr@2: 
williamr@2:         /** This flag indicates @c CListboxData to draw pressed down state 
williamr@2:          *  rather than normal highlight on item. Make sure checking this 
williamr@2:          *  flag in subclass's Draw method, if using a custom @c CListboxData 
williamr@2:          *  inheriting from @c CColumnListBoxData or @c CFormattedCellListBoxData.
williamr@2:          */
williamr@2:         EPressedDownState = 0x0010,
williamr@2: 
williamr@2:         /** This flag indicates the marquee is disabled. If it is set, @c CColumnListBoxData 
williamr@2:          *  or @c CFormattedCellListBoxData would disable maquee temporarily for 
williamr@2:          *  performance reason.
williamr@2:          */
williamr@2:         EDisableMarquee = 0x0020
williamr@2:         };
williamr@2: 
williamr@2: public:
williamr@2: 
williamr@2:     /**
williamr@2:      * Provides attributes for list items
williamr@2:      */
williamr@2:     enum TListItemAttribute
williamr@2: 
williamr@2:         {
williamr@2:         /** Highlight for current text. */
williamr@2:         ECurrent    = 0x0001,       // may be drawn with a frame
williamr@2: 
williamr@2:         /**
williamr@2:          * Highlight for text when the listbox view is emphasized.
williamr@2:          *
williamr@2:          * This is used in the following @c CListBoxView class functions:
williamr@2:          * @c DrawItem(), @c DrawMatcherCursor(), @c SetEmphasized().
williamr@2:          */
williamr@2:         EEmphasized = 0x0002,       // special highlight (not selected)
williamr@2:         
williamr@2:         /**
williamr@2:          * Highlight for text that is selected. This is used in the following 
williamr@2:          * functions: @c CColumnListBoxItemDrawer::DrawItemText(), 
williamr@2:          * @c CHierarchicalListItemDrawer::DrawActualItem(), 
williamr@2:          * @c CDirContentsListItemDrawer::DrawActualItem().
williamr@2:          */
williamr@2:         ESelected   = 0x0004,       // usually different than emphasized
williamr@2:         
williamr@2:         /**
williamr@2:          * Sum of all the above attributes.
williamr@2:          * This last attribute is used to control that one can use only
williamr@2:          * valid attributes above. So do not use it at all.         
williamr@2:          */
williamr@2:         EMask       = 0x0007 // sum of all others attributes
williamr@2: 
williamr@2:         };
williamr@2: 
williamr@2: public:
williamr@2: 
williamr@2:     /**
williamr@2:      * Sets the colour used to draw non-highlighted text.
williamr@2:      *
williamr@2:      * @param aColor The text colour.
williamr@2:      */
williamr@2:     inline void SetTextColor(TRgb aColor);
williamr@2: 
williamr@2:     /**
williamr@2:      * Sets the colour used to draw the background for non-highlighted items.
williamr@2:      *
williamr@2:      * @param aColor The background colour.
williamr@2:      */
williamr@2:     inline void SetBackColor(TRgb aColor);
williamr@2: 
williamr@2:     /**
williamr@2:      * Sets the colour used to draw highlighted text.
williamr@2:      *
williamr@2:      * @param aColor The highlighted text colour.
williamr@2:      */
williamr@2:     inline void SetHighlightedTextColor(TRgb aColor);
williamr@2: 
williamr@2:     /**
williamr@2:      * Sets the colour used to draw the background for highlighted items.
williamr@2:      *
williamr@2:      * @param aColor The highlighted background colour.
williamr@2:      */
williamr@2:     inline void SetHighlightedBackColor(TRgb aColor);
williamr@2: 
williamr@2:     /**
williamr@2:      * Sets the colour used to draw dimmed text.
williamr@2:      *
williamr@2:      * @param aColor The dimmed text colour.
williamr@2:      */
williamr@2:     inline void SetDimmedTextColor(TRgb aColor);
williamr@2: 
williamr@2:     /**
williamr@2:      * Sets the colour used to draw the background for dimmed items.
williamr@2:      *
williamr@2:      * @param aColor The background colour for dimmed items.
williamr@2:      */
williamr@2:     inline void SetDimmedBackColor(TRgb aColor);
williamr@2: 
williamr@2:     /**
williamr@2:      * Gets the colour used to draw non-highlighted text.
williamr@2:      *
williamr@2:      * @return The text colour.
williamr@2:      */
williamr@2:     inline TRgb TextColor() const;
williamr@2: 
williamr@2:     /**
williamr@2:      * Gets the colour used to draw the background for non-highlighted items.
williamr@2:      *
williamr@2:      * @return Background colour.
williamr@2:      */
williamr@2:     inline TRgb BackColor() const;
williamr@2: 
williamr@2:     /**
williamr@2:      * Gets the colour used to draw highlighted text.
williamr@2:      *
williamr@2:      * @return The highlighted text colour.
williamr@2:      */
williamr@2:     inline TRgb HighlightedTextColor() const;
williamr@2: 
williamr@2:     /**
williamr@2:      * Gets the colour used to draw the background for highlighted items.
williamr@2:      *
williamr@2:      * @return The highlighted background colour.
williamr@2:      */
williamr@2:     inline TRgb HighlightedBackColor() const;
williamr@2: 
williamr@2:     /**
williamr@2:      * Gets the colour used to draw dimmed text.
williamr@2:      *
williamr@2:      * @return The dimmed text colour. 
williamr@2:      */
williamr@2:     inline TRgb DimmedTextColor() const;
williamr@2: 
williamr@2:     /**
williamr@2:      * Gets the colour used to draw the background for dimmed items.
williamr@2:      *
williamr@2:      * @return The background colour for dimmed items.
williamr@2:      */
williamr@2:     inline TRgb DimmedBackColor() const;
williamr@2: 
williamr@2:     /**
williamr@2:      * Gets the item drawer flags.
williamr@2:      *
williamr@2:      * @return The item drawer flags.
williamr@2:      */
williamr@2:     inline TInt Flags() const;
williamr@2: 
williamr@2:     /**
williamr@2:      * Sets the item drawer flags.
williamr@2:      *
williamr@2:      * @param aFlags The new item drawer flags.
williamr@2:      */
williamr@2:     IMPORT_C void SetFlags(TInt aFlags);
williamr@2: 
williamr@2:     /**
williamr@2:      * Sets the item drawer flags.
williamr@2:      *
williamr@2:      * @param aFlags The new item drawer flags.
williamr@2:      */
williamr@2:     IMPORT_C void ClearFlags(TInt aFlags);
williamr@2: 
williamr@2:     /**
williamr@2:      * Access to skin contexts.
williamr@2:      *
williamr@2:      * @since S60 2.0
williamr@2:      * @return Pointer to skin background control context.
williamr@2:      */
williamr@2:     IMPORT_C MAknsControlContext  *SkinBackgroundControlContext() const;
williamr@2:     /**
williamr@2:      * Ability to enable skins in listboxes.
williamr@2:      *
williamr@2:      * @since S60 2.0
williamr@2:      * @param aEnabled parameter for enabling/disabling skin.
williamr@2:      *        @c ETrue enables skin,
williamr@2:      *        @c EFalse disables skin
williamr@2:      */
williamr@2:     IMPORT_C void SetSkinEnabledL(TBool aEnabled);
williamr@2: 
williamr@2: protected:
williamr@2: 
williamr@2:     /**
williamr@2:      * C++ default constructor.
williamr@2:      */
williamr@2:     IMPORT_C CListItemDrawer();
williamr@2: 
williamr@2:     /**
williamr@2:      * Draws item text.
williamr@2:      * 
williamr@2:      * This function is called by @c CListItemDrawer::DrawItem() with 
williamr@2:      * appropriate arguments. Its purpose is to draw the actual item 
williamr@2:      * - everything other than the item mark - into the graphics context.
williamr@2:      *
williamr@2:      * @param aItemIndex Which item to draw. 
williamr@2:      * @param aActualItemRect Where the item should be drawn. 
williamr@2:      * @param aItemIsCurrent Whether the item is current. 
williamr@2:      * @param aViewIsEmphasized Whether the list box view is emphasised. 
williamr@2:      * @param aViewIsDimmed Whether the list box view is dimmed. 
williamr@2:      * @param aItemIsSelected Whether the list box item is selected.
williamr@2:      */
williamr@2:     virtual void DrawActualItem(TInt aItemIndex, 
williamr@2:                                 const TRect& aActualItemRect, 
williamr@2:                                 TBool aItemIsCurrent, 
williamr@2:                                 TBool aViewIsEmphasized, 
williamr@2:                                 TBool aViewIsDimmed, 
williamr@2:                                 TBool aItemIsSelected) const = 0;
williamr@2: 
williamr@2:     /**
williamr@2:      * Resets the pen style, brush style, brush colour etc. to suitable 
williamr@2:      * starting values for this class. 
williamr@2:      * 
williamr@2:      * This function is called after every drawing operation.
williamr@2:      */
williamr@2:     IMPORT_C virtual void ResetGc() const;
williamr@2: 
williamr@2:     /**
williamr@2:      * Gets the colour used to draw tick marks. 
williamr@2:      *
williamr@2:      * A tick mark usually indicates that an item is selected.
williamr@2:      *
williamr@2:      * @return The tick mark colour.
williamr@2:      */
williamr@2:     inline TRgb MarkColor() const;
williamr@2: 
williamr@2:     /**
williamr@2:      * Gets the vertical gap between items in pixels.
williamr@2:      *
williamr@2:      * @return The vertical gap between items in pixels.
williamr@2:      */
williamr@2:     IMPORT_C TInt VerticalInterItemGap() const;
williamr@2:     
williamr@2:     /**
williamr@2:      * Sets up the graphics context for the specified item.
williamr@2:      *
williamr@2:      * @param aItemIndex The item for which the graphics context 
williamr@2:      *        will be set up.
williamr@2:      */
williamr@2:     IMPORT_C void SetupGc(TInt aItemIndex) const;
williamr@2: 
williamr@2: private:
williamr@2: 
williamr@2:     IMPORT_C virtual TAny* Reserved_1();
williamr@2: 
williamr@2:     inline TInt& VerticalInterItemGap();
williamr@2: 
williamr@2:     inline const CFont* SymbolFont() const;
williamr@2: 
williamr@2:     inline const CFont*& SymbolFont();
williamr@2: 
williamr@2: protected:
williamr@2:     
williamr@2:     /** Item's cell size. */
williamr@2:     TSize iItemCellSize;
williamr@2: 
williamr@2:     /** Mark gutter. */
williamr@2:     TInt iMarkGutter;
williamr@2: 
williamr@2:     /** Mark column width. */
williamr@2:     TInt iMarkColumnWidth;
williamr@2: 
williamr@2:     /** View area. */
williamr@2:     TRect iViewRect;
williamr@2: 
williamr@2:     /** Draw mark. */
williamr@2:     TBool iDrawMark;
williamr@2: 
williamr@2:     /** Graphics context controller. */
williamr@2:     CWindowGc* iGc;
williamr@2: 
williamr@2:     /** Color of text. */ 
williamr@2:     TRgb iTextColor;
williamr@2:     
williamr@2:     /** Background color. */
williamr@2:     TRgb iBackColor;
williamr@2: 
williamr@2:     /** Color of highlighted text. */
williamr@2:     TRgb iHighlightedTextColor; 
williamr@2: 
williamr@2:     /** Highlighted background color. */
williamr@2:     TRgb iHighlightedBackColor;
williamr@2: 
williamr@2:     /** Color of dimmed text. */
williamr@2:     TRgb iDimmedTextColor;
williamr@2: 
williamr@2:     /** Color of dimmed background. */
williamr@2:     TRgb iDimmedBackColor;
williamr@2: 
williamr@2:     /** Mark color. */
williamr@2:     TRgb iMarkColor;
williamr@2: 
williamr@2:     /** Data model. */
williamr@2:     CListBoxData* iData;
williamr@2: 
williamr@2: private:
williamr@2: 
williamr@2:     const CFont* iSymbolFont;
williamr@2: 
williamr@2:     TInt iVerticalInterItemGap;
williamr@2: 
williamr@2:     TInt iSpare;
williamr@2: 
williamr@2:     TUint iFlags;
williamr@2: 
williamr@2:     };
williamr@2: 
williamr@2: 
williamr@2: 
williamr@2: 
williamr@2: class MTextListBoxModel;
williamr@2: 
williamr@2: 
williamr@2: /**
williamr@2:  * Item drawer which can handle text.
williamr@2:  * 
williamr@2:  * Used by @c CListBoxView to draw individual list box items 
williamr@2:  * for a @c CEikTextListBox
williamr@2:  */
williamr@2: class CTextListItemDrawer : public CListItemDrawer
williamr@2:     {
williamr@2: 
williamr@2: public:
williamr@2: 
williamr@2:     /**
williamr@2:      * C++ default constructor.
williamr@2:      */
williamr@2:     IMPORT_C CTextListItemDrawer();
williamr@2:     
williamr@2:     /**
williamr@2:      * Destructor.
williamr@2:      */
williamr@2:     IMPORT_C ~CTextListItemDrawer();
williamr@2: 
williamr@2:     /**
williamr@2:      * C++ default constructor.
williamr@2:      *
williamr@2:      * Constructs a new text item drawer which draws the data of the specified 
williamr@2:      * model using the supplied font.
williamr@2:      *
williamr@2:      * @param aTextListBoxModel The model whose items will be drawn. 
williamr@2:      * @param aFont The font in which the items will be drawn.
williamr@2:      */
williamr@2:     IMPORT_C CTextListItemDrawer(MTextListBoxModel* aTextListBoxModel, 
williamr@2:                                  const CFont* aFont);
williamr@2: 
williamr@2:     /**
williamr@2:      * Handles 2nd phase construction.
williamr@2:      *
williamr@2:      * @param aFont The font in which the list box items will be drawn.
williamr@2:      */
williamr@2:     IMPORT_C void ConstructL(const CFont* aFont);
williamr@2: 
williamr@2:     /**
williamr@2:      * Draws the actual item contents for the specified item in the specified 
williamr@2:      * rectangle.
williamr@2:      *
williamr@2:      * @param aItemIndex Index of the item to draw. 
williamr@2:      * @param aActualItemRect Area to draw into. 
williamr@2:      * @param aItemIsCurrent @c ETrue if the item is current. 
williamr@2:      * @param aViewIsEmphasized @c ETrue if the view is emphasised. 
williamr@2:      * @param aViewIsDimmed Ignored
williamr@2:      * @param aItemIsSelected @c ETrue if the item is selected.
williamr@2:      */
williamr@2:     IMPORT_C virtual void DrawActualItem(TInt aItemIndex, 
williamr@2:                                          const TRect& aActualItemRect, 
williamr@2:                                          TBool aItemIsCurrent, 
williamr@2:                                          TBool aViewIsEmphasized, 
williamr@2:                                          TBool aViewIsDimmed,
williamr@2:                                          TBool aItemIsSelected) const;
williamr@2: 
williamr@2:     /**
williamr@2:      * Gets the width in pixels of the specified item.
williamr@2:      *
williamr@2:      * @param aItemIndex The index of the item for which the width is obtained.
williamr@2:      * @return The specified item’s width in pixels.
williamr@2:      */ 
williamr@2:     IMPORT_C virtual TInt ItemWidthInPixels(TInt aItemIndex) const;
williamr@2: 
williamr@2:     /**
williamr@2:      * Gets the minimum size of a cell based on the font and the number of 
williamr@2:      * characters in the cell.
williamr@2:      *
williamr@2:      * @return The minimum size for a cell, in pixels.
williamr@2:      */
williamr@2:     IMPORT_C virtual TSize MinimumCellSize() const;
williamr@2: 
williamr@2:     /**
williamr@2:      * Sets the graphics context.
williamr@2:      *
williamr@2:      * @param aGc The graphics context to use.
williamr@2:      */
williamr@2:     IMPORT_C virtual void SetGc(CWindowGc* aGc);
williamr@2: 
williamr@2:     /**
williamr@2:      * Sets the number of characters in a cell. 
williamr@2:      * This value affects only @c MinimumCellSize().
williamr@2:      *
williamr@2:      * @param aNumOfCharsToDisplayInCell Number of characters to 
williamr@2:      *        display in a cell.
williamr@2:      */
williamr@2:     IMPORT_C void SetCellWidthInChars(TInt aNumOfCharsToDisplayInCell);
williamr@2: 
williamr@2:     /**
williamr@2:      * Gets the position and size of the matcher cursor.
williamr@2:      *
williamr@2:      * @deprecated
williamr@2:      * @param aMatchableText String currently being matched. Not Used.
williamr@2:      * @param aCharPos Position within the string. Not Used.
williamr@2:      * @param aItemCellYPos Y position of the item cell in pixels. Not Used.
williamr@2:      * @param aCurrentItemIndex Item index for the current item. Not Used.
williamr@2:      * @return The rectangle covered by the matcher cursor, in pixels.
williamr@2:      */
williamr@2:     IMPORT_C virtual TRect MatcherCursorRect(const TDesC& aMatchableText, 
williamr@2:                                              TInt aCharPos, 
williamr@2:                                              TInt aItemCellYPos, 
williamr@2:                                              TInt aCurrentItemIndex ) const;
williamr@2: 
williamr@2:     /**
williamr@2:      * No Implementation. 
williamr@2:      *
williamr@2:      * Derived classes that deal with text and want to support incremental 
williamr@2:      * matching in listboxes need to redefine this function.
williamr@2:      * Should be used to get the ascent of the matcher cursor in pixels.
williamr@2:      *
williamr@2:      * @deprecated
williamr@2:      * @param aCurrentItemIndex Index of the current item. Not Used.
williamr@2:      * @return Always returns 0;
williamr@2:      */
williamr@2:     IMPORT_C virtual TInt MatcherCursorAscent( TInt aCurrentItemIndex ) const;
williamr@2: 
williamr@2:     /**
williamr@2:      * Sets the font.
williamr@2:      *
williamr@2:      * @param aFont The new font.
williamr@2:      */
williamr@2:     IMPORT_C void SetFont(const CFont* aFont);
williamr@2: 
williamr@2:     /**
williamr@2:      * Sets the search string.
williamr@2:      *
williamr@2:      * @param aSearchString The new search string.
williamr@2:      */
williamr@2:     IMPORT_C void SetSearchStringL(const TDesC* aSearchString);
williamr@2: 
williamr@2:     /**
williamr@2:      * Gets font for the specified item.
williamr@2:      *
williamr@2:      * @param aIndex The index of the target item.
williamr@2:      * @return Specified item's font.
williamr@2:      */
williamr@2:     IMPORT_C const CFont* Font(TInt aIndex) const;
williamr@2: 
williamr@2:     // SAPLAF new methods.
williamr@2: 
williamr@2: 
williamr@2:     /**
williamr@2:      * Sets item mark position.
williamr@2:      *
williamr@2:      * @param aPos The new position.
williamr@2:      */
williamr@2:     inline void SetItemMarkPosition(TInt aPos);
williamr@2: 
williamr@2:     /**
williamr@2:      * Gets item mark position.
williamr@2:      *
williamr@2:      * @return Position of the Item mark.
williamr@2:      */
williamr@2:     inline TInt ItemMarkPosition() const;
williamr@2: 
williamr@2:     /**
williamr@2:      * Sets the item mark replacement.
williamr@2:      *
williamr@2:      * @param aReplacement The new replacement descriptor.
williamr@2:      */
williamr@2:     inline void SetItemMarkReplacement(const TDesC &aReplacement);
williamr@2: 
williamr@2:     /**
williamr@2:      * Gets item mark replacement.
williamr@2:      *
williamr@2:      * @return Pointer to the replacement string.
williamr@2:      */
williamr@2:     inline TPtrC ItemMarkReplacement() const;
williamr@2: 
williamr@2:     /**
williamr@2:      * Sets item mark reverse to be active or not.
williamr@2:      *
williamr@2:      * @param aReverse The new setting.
williamr@2:      *        @c ETrue if item is marked reversed.
williamr@2:      */
williamr@2:     inline void SetItemMarkReverse(TBool aReverse);
williamr@2: 
williamr@2:     /**
williamr@2:      * Check if the item has been marked reversed is active.
williamr@2:      *
williamr@2:      * @return Indicates if active or not.
williamr@2:      *         @c ETrue if active
williamr@2:      */
williamr@2:     inline TBool ItemMarkReverse() const;
williamr@2: 
williamr@2: 
williamr@2: protected:
williamr@2: 
williamr@2:     /**
williamr@2:      * Draws text.
williamr@2:      *
williamr@2:      * This function is invoked by @c DrawItemText() to draw a string into a 
williamr@2:      * rectangular area of @c iGc.
williamr@2:      *
williamr@2:      * @param aDes The string to draw. 
williamr@2:      * @param aItemTextRect Area to draw into. 
williamr@2:      * @param aItemIsCurrent @c ETrue if the item is current. 
williamr@2:      * @param aViewIsEmphasized @c ETrue if the view is emphasised. 
williamr@2:      * @param aItemIsSelected @c ETrue if the item is selected. 
williamr@2:      * @param aItemIndex The item’s index.
williamr@2:      */
williamr@2:     IMPORT_C virtual void DoDrawItemText(const TDesC& aDes, 
williamr@2:                                          const TRect& aItemTextRect, 
williamr@2:                                          TBool aItemIsCurrent, 
williamr@2:                                          TBool aViewIsEmphasized, 
williamr@2:                                          TBool aItemIsSelected, 
williamr@2:                                          TInt aItemIndex) const;
williamr@2: 
williamr@2:     /**
williamr@2:      * Draw item text.
williamr@2:      * 
williamr@2:      * This function is invoked by @c DrawActualItem() to draw the item text.
williamr@2:      *
williamr@2:      * @param aItemIndex Index of the item to draw. 
williamr@2:      * @param aItemTextRect Area to draw into. 
williamr@2:      * @param aItemIsCurrent @c ETrue if the item is current. 
williamr@2:      * @param aViewIsEmphasized @c ETrue if the view is emphasised.
williamr@2:      * @param aItemIsSelected @c ETrue if the item is selected. 
williamr@2:      */
williamr@2:     IMPORT_C virtual void DrawItemText(TInt aItemIndex, 
williamr@2:                                        const TRect& aItemTextRect, 
williamr@2:                                        TBool aItemIsCurrent, 
williamr@2:                                        TBool aViewIsEmphasized, 
williamr@2:                                        TBool aItemIsSelected) const;
williamr@2: 
williamr@2:     /**
williamr@2:      * Resets the graphics context.
williamr@2:      * This function invokes @c CListItemDrawer::ResetGc() and resets the pen 
williamr@2:      * colour to @c iTextColor.
williamr@2:      */
williamr@2:     IMPORT_C virtual void ResetGc() const;
williamr@2: 
williamr@2: private:
williamr@2: 
williamr@2:     IMPORT_C virtual TAny* Reserved_1();
williamr@2: 
williamr@2: protected:
williamr@2: 
williamr@2:     /** List box model for the drawer. */
williamr@2:     MTextListBoxModel* iModel;
williamr@2: 
williamr@2:     /** Font used by the drawer. */
williamr@2:     const CFont* iFont;
williamr@2: 
williamr@2: private:
williamr@2:     
williamr@2:     TInt iNumOfCharsInCell;
williamr@2: 
williamr@2:     // AVKON LAF 
williamr@2: 
williamr@2:     TInt iItemMarkPos;
williamr@2: 
williamr@2:     TPtrC iItemMarkReplacement;
williamr@2: 
williamr@2:     TBool iItemMarkReverse;
williamr@2: 
williamr@2:     // AVKON LAF ENDS 
williamr@2: 
williamr@2:     };
williamr@2: 
williamr@2: 
williamr@2: 
williamr@2: 
williamr@2: /**
williamr@2:  * The @c TListItemProperties class packages together the color and 
williamr@2:  * style properties which can be applied when drawing the contents 
williamr@2:  * of list box items.
williamr@2:  *
williamr@2:  * @since Symbian ER5U
williamr@2:  */
williamr@2: 
williamr@2: class TListItemProperties
williamr@2: 
williamr@2:     {
williamr@2: 
williamr@2: public:
williamr@2: 
williamr@2:     /**
williamr@2:      * C++ default constructor.
williamr@2:      */
williamr@2:     IMPORT_C TListItemProperties();
williamr@2: 
williamr@2: public:
williamr@2: 
williamr@2:     /**
williamr@2:      * Sets whether the list item is drawn bold or not bold.
williamr@2:      *
williamr@2:      * @deprecated
williamr@2:      * @param aBold @c ETrue to draw the list item bold. 
williamr@2:      *        @c EFalse otherwise.
williamr@2:      */
williamr@2:     inline void SetBold(TBool aBold);
williamr@2: 
williamr@2:     /**
williamr@2:      * Tests whether the list item is drawn bold.
williamr@2:      *
williamr@2:      * @deprecated
williamr@2:      * @return @c ETrue if the list item is drawn bold. 
williamr@2:      *         @c EFalse otherwise.
williamr@2:      */
williamr@2:     inline TBool IsBold() const;
williamr@2: 
williamr@2:     /**
williamr@2:      * Sets whether or not the list item is drawn in italics.
williamr@2:      *
williamr@2:      * @deprecated
williamr@2:      * @param aItalics @c ETrue to draw the list item in italics. 
williamr@2:      *        @c EFalse otherwise.
williamr@2:      */
williamr@2:     inline void SetItalics(TBool aItalics);
williamr@2: 
williamr@2:     /**
williamr@2:      * Tests whether the list item is italicised.
williamr@2:      *
williamr@2:      * @deprecated
williamr@2:      * @return @c ETrue if the list item is drawn in italics. 
williamr@2:      *         @c EFalse otherwise.
williamr@2:      */
williamr@2:     inline TBool IsItalics() const;
williamr@2: 
williamr@2:     /**
williamr@2:      * Sets whether or not the list item is drawn with an underline.
williamr@2:      *
williamr@2:      * @param aUnderlined @c ETrue to draw the list item with an underline. 
williamr@2:      *        @c EFalse otherwise.
williamr@2:      */
williamr@2:     inline void SetUnderlined(TBool aUnderlined);
williamr@2: 
williamr@2:     /**
williamr@2:      * Test whether the list item is drawn with an underline.
williamr@2:      *
williamr@2:      * @return @c ETrue if the list item is drawn with an underline. 
williamr@2:      *         @c EFalse otherwise.
williamr@2:      */
williamr@2:     inline TBool IsUnderlined() const;
williamr@2: 
williamr@2:     /**
williamr@2:      * Sets list item dim state. 
williamr@2:      * 
williamr@2:      * An item is usually drawn dimmed to indicate that it cannot accept 
williamr@2:      * user input.
williamr@2:      *
williamr@2:      * @param aDimmed @c ETrue to draw the list item dimmed. @c EFalse otherwise.
williamr@2:      */
williamr@2:     inline void SetDimmed(TBool aDimmed);
williamr@2: 
williamr@2:     /**
williamr@2:      * Tests list item dim state. 
williamr@2:      *
williamr@2:      * An item is usually drawn dimmed to indicate that it cannot accept 
williamr@2:      * user input.
williamr@2:      *
williamr@2:      * @return @c ETrue if the list item is dimmed. 
williamr@2:      *         @c EFalse otherwise.
williamr@2:      */
williamr@2:     inline TBool IsDimmed() const;
williamr@2: 
williamr@2:     /**
williamr@2:      * Sets the list item’s colour.
williamr@2:      *
williamr@2:      * @param aColor The list item’s colour.
williamr@2:      */
williamr@2:     inline void SetColor(TRgb aColor);
williamr@2: 
williamr@2:     /**
williamr@2:      * Gets the list item’s colour.
williamr@2:      *
williamr@2:      * @return The list item’s colour.
williamr@2:      */
williamr@2:     inline TRgb Color() const;
williamr@2: 
williamr@2:     /**
williamr@2:      * Activate/deactivate separator after item.
williamr@2:      *
williamr@2:      * @deprecated
williamr@2:      * @param aSeparator Active/deactive selector.
williamr@2:      *        @c ETrue = Active.
williamr@2:      *        @c EFalse = Deactivated.
williamr@2:      */
williamr@2:     inline void SetSeparatorAfter(TBool aSeparator);
williamr@2: 
williamr@2:     /**
williamr@2:      * Check if separator after item is active.
williamr@2:      *
williamr@2:      * @deprecated
williamr@2:      * @return @c ETrue if Active.
williamr@2:      *         @c EFalse if Deactivated.
williamr@2:      */
williamr@2:     inline TBool IsSeparatorAfter() const;
williamr@2: 
williamr@2:     /**
williamr@2:      * Select to hide the item .
williamr@2:      *
williamr@2:      * @param aHidden Defines whether the item is hidden.
williamr@2:      *        @c ETrue = Hidden
williamr@2:      */
williamr@2:     inline void SetHiddenSelection(TBool aHidden);
williamr@2: 
williamr@2:     /**
williamr@2:      * Check if the item is hidden.
williamr@2:      *
williamr@2:      * @return @c ETrue if item is hidden.
williamr@2:      */
williamr@2:     inline TBool IsSelectionHidden() const;
williamr@2: 
williamr@2: private:
williamr@2: 
williamr@2:     TUint iFlags;
williamr@2: 
williamr@2:     TRgb iColor;
williamr@2: 
williamr@2: private:
williamr@2: 
williamr@2:     enum
williamr@2: 
williamr@2:         {
williamr@2: 
williamr@2:         ELbxItemBold        = 0x0001,
williamr@2: 
williamr@2:         ELbxItemItalics     = 0x0002,
williamr@2: 
williamr@2:         ELbxItemUnderlined  = 0x0004,
williamr@2: 
williamr@2:     ELbxItemDimmed      = 0x0008,
williamr@2: 
williamr@2:     ELbxItemSeparatorAfter  = 0x0010,
williamr@2:     
williamr@2:     ELbxItemSelectionHidden = 0x0020
williamr@2:     
williamr@2:         };
williamr@2: 
williamr@2:     };
williamr@2: 
williamr@2: 
williamr@2: 
williamr@2: //
williamr@2: 
williamr@2: // Inlines
williamr@2: 
williamr@2: //
williamr@2: 
williamr@2: 
williamr@2: 
williamr@2: inline void CListItemDrawer::SetTextColor(TRgb aColor)
williamr@2: 
williamr@2:     {iTextColor=aColor;}
williamr@2: 
williamr@2: inline void CListItemDrawer::SetBackColor(TRgb aColor)
williamr@2: 
williamr@2:     {iBackColor=aColor;}
williamr@2: 
williamr@2: inline void CListItemDrawer::SetHighlightedTextColor(TRgb aColor)
williamr@2: 
williamr@2:     {iHighlightedTextColor=aColor;}
williamr@2: 
williamr@2: inline void CListItemDrawer::SetHighlightedBackColor(TRgb aColor)
williamr@2: 
williamr@2:     {iHighlightedBackColor=aColor;}
williamr@2: 
williamr@2: inline void CListItemDrawer::SetDimmedTextColor(TRgb aColor)
williamr@2: 
williamr@2:     {iDimmedTextColor=aColor;}
williamr@2: 
williamr@2: inline void CListItemDrawer::SetDimmedBackColor(TRgb aColor)
williamr@2: 
williamr@2:     {iDimmedBackColor=aColor;}
williamr@2: 
williamr@2: inline TRgb CListItemDrawer::TextColor() const
williamr@2: 
williamr@2:     {return iTextColor;}
williamr@2: 
williamr@2: inline TRgb CListItemDrawer::BackColor() const
williamr@2: 
williamr@2:     {return iBackColor;}
williamr@2: 
williamr@2: inline TRgb CListItemDrawer::HighlightedTextColor() const
williamr@2: 
williamr@2:     {return iHighlightedTextColor;}
williamr@2: 
williamr@2: inline TRgb CListItemDrawer::HighlightedBackColor() const
williamr@2: 
williamr@2:     {return iHighlightedBackColor;}
williamr@2: 
williamr@2: inline TRgb CListItemDrawer::DimmedTextColor() const
williamr@2: 
williamr@2:     {return iDimmedTextColor;}
williamr@2: 
williamr@2: inline TRgb CListItemDrawer::DimmedBackColor() const
williamr@2: 
williamr@2:     {return iDimmedBackColor;}
williamr@2: 
williamr@2: inline TRgb CListItemDrawer::MarkColor() const
williamr@2: 
williamr@2:     {return iMarkColor;}
williamr@2: 
williamr@2: inline TInt CListItemDrawer::Flags() const
williamr@2: 
williamr@2:     {return iFlags;}
williamr@2: 
williamr@2: 
williamr@2: 
williamr@2: inline TBool TListItemProperties::IsItalics() const
williamr@2: 
williamr@2:     {return iFlags&ELbxItemItalics;}
williamr@2: 
williamr@2: inline TBool TListItemProperties::IsBold() const
williamr@2: 
williamr@2:     {return iFlags&ELbxItemBold;}
williamr@2: 
williamr@2: inline TBool TListItemProperties::IsUnderlined() const
williamr@2: 
williamr@2:     {return iFlags&ELbxItemUnderlined;}
williamr@2: 
williamr@2: inline TBool TListItemProperties::IsDimmed() const
williamr@2: 
williamr@2:     {return iFlags&ELbxItemDimmed;}
williamr@2: 
williamr@2: inline TBool TListItemProperties::IsSeparatorAfter() const
williamr@2: 
williamr@2:     {return iFlags&ELbxItemSeparatorAfter;}
williamr@2: 
williamr@2: inline TBool TListItemProperties::IsSelectionHidden() const
williamr@2: 
williamr@2:     {return iFlags&ELbxItemSelectionHidden;}
williamr@2: 
williamr@2: 
williamr@2: 
williamr@2: inline void TListItemProperties::SetColor(TRgb aColor)
williamr@2: 
williamr@2:     {iColor=aColor;}
williamr@2: 
williamr@2: inline TRgb TListItemProperties::Color() const
williamr@2: 
williamr@2:     {return iColor;}
williamr@2: 
williamr@2: inline void TListItemProperties::SetBold(TBool aBold)
williamr@2: 
williamr@2:     {
williamr@2: 
williamr@2:     if (aBold) 
williamr@2: 
williamr@2:         iFlags|=ELbxItemBold;
williamr@2: 
williamr@2:     else
williamr@2: 
williamr@2:         iFlags&=(~ELbxItemBold);
williamr@2: 
williamr@2:     }
williamr@2: 
williamr@2: inline void TListItemProperties::SetItalics(TBool aItalics)
williamr@2: 
williamr@2:     {
williamr@2: 
williamr@2:     if (aItalics)
williamr@2: 
williamr@2:         iFlags|=ELbxItemItalics;
williamr@2: 
williamr@2:     else
williamr@2: 
williamr@2:         iFlags&=(~ELbxItemItalics);
williamr@2: 
williamr@2:     }
williamr@2: 
williamr@2: inline void TListItemProperties::SetUnderlined(TBool aUnderlined)
williamr@2: 
williamr@2:     {
williamr@2: 
williamr@2:     if (aUnderlined)
williamr@2: 
williamr@2:         iFlags|=ELbxItemUnderlined;
williamr@2: 
williamr@2:     else
williamr@2: 
williamr@2:         iFlags&=(~ELbxItemUnderlined);
williamr@2: 
williamr@2:     }
williamr@2: 
williamr@2: inline void TListItemProperties::SetDimmed(TBool aDimmed)
williamr@2: 
williamr@2:     {
williamr@2: 
williamr@2:     if (aDimmed)
williamr@2: 
williamr@2:         iFlags|=ELbxItemDimmed;
williamr@2: 
williamr@2:     else
williamr@2: 
williamr@2:         iFlags&=(~ELbxItemDimmed);
williamr@2: 
williamr@2:     }
williamr@2: 
williamr@2: 
williamr@2: 
williamr@2: inline void TListItemProperties::SetSeparatorAfter(TBool aSeparator)
williamr@2: 
williamr@2:     {
williamr@2: 
williamr@2:     if (aSeparator) 
williamr@2: 
williamr@2:         iFlags|=ELbxItemSeparatorAfter;
williamr@2: 
williamr@2:     else
williamr@2: 
williamr@2:         iFlags&=(~ELbxItemSeparatorAfter);
williamr@2: 
williamr@2:     }
williamr@2: 
williamr@2: 
williamr@2: inline void TListItemProperties::SetHiddenSelection(TBool aBlocked)
williamr@2: 
williamr@2:     {
williamr@2: 
williamr@2:     if (aBlocked) 
williamr@2: 
williamr@2:         iFlags|=ELbxItemSelectionHidden;
williamr@2: 
williamr@2:     else
williamr@2: 
williamr@2:         iFlags&=(~ELbxItemSelectionHidden);
williamr@2: 
williamr@2:     }
williamr@2: 
williamr@2: 
williamr@2: 
williamr@2: 
williamr@2:  
williamr@2: 
williamr@2: // AVKON LAF 
williamr@2: 
williamr@2: inline void CTextListItemDrawer::SetItemMarkPosition(TInt aPos) { iItemMarkPos = aPos; }
williamr@2: 
williamr@2: inline TInt CTextListItemDrawer::ItemMarkPosition() const { return iItemMarkPos; }
williamr@2: 
williamr@2: inline void CTextListItemDrawer::SetItemMarkReplacement(const TDesC & aReplacement) { iItemMarkReplacement.Set(aReplacement); }
williamr@2: 
williamr@2: inline TPtrC CTextListItemDrawer::ItemMarkReplacement() const { return iItemMarkReplacement; }
williamr@2: 
williamr@2: inline void CTextListItemDrawer::SetItemMarkReverse(TBool aReverse) { iItemMarkReverse = aReverse; }
williamr@2: inline TBool CTextListItemDrawer::ItemMarkReverse() const { return iItemMarkReverse; }
williamr@2: 
williamr@2: // END OF AVKON LAF 
williamr@2: 
williamr@2: 
williamr@2: 
williamr@2: #endif  // __EIKLBI_H__
williamr@2: 
williamr@2: // End of File