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