diff -r 000000000000 -r f72a12da539e menufw/menufwui/mmwidgets/inc/mmlistboxitemdrawer.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/menufw/menufwui/mmwidgets/inc/mmlistboxitemdrawer.h Thu Dec 17 08:40:49 2009 +0200 @@ -0,0 +1,918 @@ +/* +* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: CMmListBoxItemDrawer +* Version : %version: MM_38.1.14 % << Don't touch! Updated by Synergy at check-out. +* +*/ + + +#ifndef C_MMLISTBOXITEMDRAWER_H +#define C_MMLISTBOXITEMDRAWER_H + +#include +#include +#include +#include +#include +#include "mmwidgetsconstants.h" +#include "mmtemplatelibrary.h" +#include "hniconholder.h" +#include "mmsubcellssetupcode.h" + +class CMmListBoxModel; +class TMmFloatingItem; +class CMmMarqueeAdapter; +class CMmDrawerAnimator; +class CMmPostEvaluationProcessor; +class CMmItemsDataCache; + +/** + * Used to draw items in widgets. The item drawer is used both by grid + * and listbox. Data is used to draw subcells. The subcell templates are fetched + * from the template library and set to data to be drawn. + * + * @code + * @endcode + * @lib mmwidgets + * @since S60 v3.0 + * @ingroup group_mmwidgets + */ +NONSHARABLE_CLASS( CMmListBoxItemDrawer ): + public CFormattedCellListBoxItemDrawer + { + + friend class CMmPostEvaluationProcessor; + +public: + + /** + * Two-phased constructor. + * + * @since S60 v3.0 + * @param aMmListBoxModel The listbox model. + * @param aFont Font. + * @param aFormattedCellData Cell data. + * @param aWidgetType Widget type. + */ + static CMmListBoxItemDrawer* NewL( + CMmListBoxModel* aMmListBoxModel, + const CFont* aFont, + CFormattedCellListBoxData* aFormattedCellData, + TMmWidgetType aWidgetType, + CMmTemplateLibrary* aTemplateLibrary ); + + /** + * Two-phased constructor. + * + * @since S60 v3.0 + * @param aMmListBoxModel The listbox model. + * @param aFont Font. + * @param aFormattedCellData Cell data. + * @param aWidgetType Widget type. + */ + static CMmListBoxItemDrawer* NewLC( + CMmListBoxModel* aMmListBoxModel, + const CFont* aFont, + CFormattedCellListBoxData* aFormattedCellData, + TMmWidgetType aWidgetType, + CMmTemplateLibrary* aTemplateLibrary ); + + /** + * Destructor. + * + * @since S60 v3.0 + */ + ~CMmListBoxItemDrawer(); + + /** + * Enables/disables cached data use. + * + * When aEnable is true: + * Enables the use of cached data when drawing items. + * This significantly improves performance. + * Do not ever try to use this feature in edit mode. + * + * When aEnable is false: + * Restores the normal mode where data needed for drawing + * items is retrieved from the model and the cached data + * is updated with the information retrieved from the model + * + * @param aEnable Self-explanatory. + */ + void EnableCachedDataUse( TBool aEnable ); + + /** + * Returns ETrue if item drawer is using cached data. + * To start/stop using cached data, use the @c EnableCachedDataUse + * method. + * + * @return ETrue if cached data is used, EFalse otherwise. + */ + TBool CachedDataUseIsEnabled() const; + + /** + * This method should be called whenever items(s) are removed + * in order to remove corresponding entries in the local + * items data cache. + * + * @param aItemCount current item count + */ + void TrimCacheSize( TInt aItemCount ); + + /** + * Invalidates the cached data for all items. + */ + void InvalidateCache(); + + /** + * Get the height of the given item. + * + * @since S60 v3.0 + * @param aItemIndex Item index for which height is calculated. + * @param aItemIsCurrent Is item the current widget item. + * @return Item height. + */ + TInt GetItemHeight( TInt aItemIndex, TBool aItemIsCurrent ) const; + + /** + * Gets size of given item. + * + * @since S60 v3.0 + * @param aItemIndex Item index. + * @param aItemIsCurrent Is item the current widget item. + * @return Size of item. + */ + TSize GetItemSize( TInt aItemIndex, TBool aItemIsCurrent ) const; + + /** + * Gets rect of indicator. + * + * @since S60 v3.0 + * @return Rect of indicator. + */ + TRect GetIndicatorRect() const; + + /** + * Setx draggable state + * + * @since S60 v3.0 + * @param aDraggable Is draggable. + */ + void SetDraggableL( TBool aDraggable ); + + /** + * Sets item which is dragged. + * + * @since S60 v3.0 + * @param aDraggedItemIndex Dragged item index. + * @param aPoint Dragged point. + */ + void SetDraggedIndexL( TInt aDraggedItemIndex, TPoint aPoint ); + + /** + * Sets item which is dragged. + * + * @since S60 v3.0 + * @param aCenterPoint Center point of dragged item. + */ + void SetDraggedPointL( TPoint aCenterPoint ); + + /** + * Reveales if is possible to drag. + * + * @since S60 5.0 + * @return Is draggable. + */ + TBool IsDraggable() const; + + /** + * Sets associated widget. + * + * @since S60 5.0 + * @param aView Widget to associated with this drawer. + */ + void SetView( CEikListBox* aView ); + + /** + * Get associated widget. + * + * @since S60 5.0 + * @return Widget associated with this drawer. + */ + CEikListBox* Widget() const; + + /** + * Gets template library. + * + * @since S60 5.0 + * @return Return iTemplateLibrary. + */ + CMmTemplateLibrary* TemplateLibrary(); + + /** + * Sets the background context. + * + * @since S60 5.0 + * @param aBgContext Background context. + */ + void SetBgContext( + CAknsBasicBackgroundControlContext* aBgContext ); + + /** + * Sets condition if background should be redrawn. + * + * @since S60 v3.0 + * @param aRedraw Should background be redrawn. + */ + void SetRedrawItemBackground( TBool aRedraw ); + + /** + * Checks if item background redrawing is enabled. + * + * @since S60 v3.0 + * @return Is background redrawing enabled. + */ + TBool IsRedrawItemBackgroundEnabled() const; + + /** + * Draws empty item ( no subcells ). + * + * @since S60 v3.0 + * @param aItemIndex Item index. + * @param aItemRectPos Item rectangle position. + * @param aViewIsDimmed Is view dimmed. + */ + void DrawEmptyItem( TInt aItemIndex, + TPoint aItemRectPos, TBool aViewIsDimmed ) const; + + /** + * Sets edit mode condition. + * + * @since S60 v3.0 + * @param aIsEditMode Is edit mode. + */ + void SetEditModeL( TBool aIsEditMode ); + + /** + * Checks if edit mode is running. + * + * @since S60 v3.0 + * @return Is edit mode running. + */ + TBool IsEditMode() const; + + /** + * Animates dragged item transition. + * + * @since S60 v3.0 + */ + void AnimateDragItemTransitionL( ); + + /** + * Animates swapping of items. + * + * @since S60 v3.0 + * @param aItemFrom Start item position (index). + * @param aItemTo End item position (index). + */ + void AnimateItemSwapL( TInt aItemFrom, TInt aItemTo ); + + /** + * Animate item zoom in. + * + * @since S60 v3.0 + * @param aItemIndex Item index of item to be zoomed in. + */ + void AnimateItemZoomInL( TInt aItemIndex ); + + /** + * Animate item zoom out. + * + * @since S60 v3.0 + * @param aItemIndex Item index of zoomed item. + */ + void AnimateItemZoomOutL( TInt aItemIndex ); + + /** + * Checks if item drawer is ready to run new animation. + * + * @since S60 v3.0 + * @return Is drawer ready to run animation. + */ + CMmDrawerAnimator* GetAnimator(); + + /** + * Draws floating items. + * + * @since S60 v3.0 + * @param aCurrentlyDrawnRect Currently drawn item rectangle. + */ + void DrawFloatingItems( TRect aCurrentlyDrawnRect ); + + /** + * Gets floating item index. + * + * @since S60 v3.0 + * @param aType Floating item type. + * @return Floating item index. + */ + TInt GetFloatingItemIndex( TMmFloatingItemType aType ) const; + + /** + * Gets floating item. + * + * @since S60 v3.0 + * @param aType Floating item type. + * @return Floating item. + */ + TMmFloatingItem& GetFloatingItemL( TMmFloatingItemType aType ); + + /** + * Gets number of floating items. + * + * @since S60 5.0 + * @param aType Floating item type. + * @return Number of floating items. + */ + TInt GetValidFloatingItemCount( TMmFloatingItemType aType ); + + /** + * Gets floating items count. + * + * @since S60 5.0 + * @return Number of the floating items in the array. + */ + TInt GetFloatingItemCount(); + + /** + * Adds floating item to the floating item array. + * + * @since S60 5.0 + * @param aFloatingItem Floating item to be added. + * @param aPosition Position to add at. + */ + void AddFloatingItemL( TMmFloatingItem& aFloatingItem, + TInt aPosition = KErrNotFound ); + + /** + * Removes floating item. + * + * @since S60 5.0 + * @param aPosition Floating item index to be removed. + */ + void RemoveFloatingItem( TInt aPosition ); + + /** + * Removes all floating items. + * + * @since S60 5.0 + */ + void RemoveFloatingItems(); + + /** + * Gets floating item at particular index in the + * floating item array. + * + * @since S60 5.0 + * @param aIndex Index of the floating item in the array. + * @return Floating item. + */ + TMmFloatingItem& GetFloatingItemAtIndex( TInt aIndex ); + + /** + * Used to set scrollbar visibility flag. + * + * @since S60 v3.0 + * @param aIsScrollbarVisible Is scrollbar visible. + */ + void SetScrollbarVisibilityL( TBool aIsScrollbarVisible ); + + /** + * Replaces subcell text. + * + * @since S60 v3.0 + * @param aText Text which will replace previous text. + */ + void ReplaceSubCellText( const TDesC& aText ); + + /** + * Adds subcell marquee element. + * + * @since S60 v3.0 + * @param aSubCellTemplate Subcell template data. + * @param aIndex Subcell index. + * @param aItemIndex Item index. + */ + void AddSubcellMarqueeElementL( TTemplateChild aSubCellTemplate, + TInt aIndex, TInt aItemIndex ); + + /** + * Sets the marquee adapter. + * + * @since S60 v3.0 + * @param aAdapter Marquee adapter. + */ + void SetMarqueeAdapter( CMmMarqueeAdapter* aAdapter ); + + /** + * Sets the flag which tells that marquee is currently being drawn. + * + * @since S60 v3.0 + * @param aIsMarqueeBeingDrawn Is marquee being drawn. + */ + void SetMarqueeDrawing( TBool aIsMarqueeBeingDrawn ); + + /** + * Checks if text is clipped. + * + * @since S60 v3.0 + * @param aTemplateChild Subcell template data. + * @param aText Text to be clipped. + * @return Is text clipped. + */ + TBool IsTextClippedL( TTemplateChild aTemplateChild, + const TDesC& aText ) const; + + /** + * Sets the flag which tells that a scrollbar event is running. + * + * @since S60 v3.0 + * @param aIsRunning Is scrollbar event running. + */ + void SetScrollbarEventRunning( TBool aIsRunning ); + + /** + * Sets number of columns in view. + * + * @since S60 v3.0 + * @param aNumberOfColumns Number of columns in view. + */ + void SetNumberOfColsInView( TInt aNumberOfColumns ); + + /** + * Used in non-touch edit mode to block drawing of move indicators and highlight + * to clean screen for animation. + * + * @since S60 v3.0 + * @param aDrawn Should highlight and move indicators be drawn. + */ + void SetHighlightShown( TBool aDrawn ); + +protected: + /** + * From CListItemDrawer. Draws an item. + * + * @since S60 v3.0 + * @param aItemIndex Item index to be drawn. + * @param aItemRectPos Item rectangle position. + * @param aItemIsSelected Is item selected. + * @param aItemIsCurrent Is item current. + * @param aViewIsEmphasized Is view emphasized. + * @param aViewIsDimmed Is view dimmed. + */ + void DrawItem( TInt aItemIndex, TPoint aItemRectPos, + TBool aItemIsSelected, TBool aItemIsCurrent, + TBool aViewIsEmphasized, TBool aViewIsDimmed ) const; + + /** + * Draws item according to format text. + * + * @since S60 v3.0 + * @param aItemIndex Item index to be drawn. + * @param aItemTextRect Item rectangle. + * @param aItemIsCurrent Is item current. + * @param aViewIsEmphasized Is view emphasized. + * @param aItemIsSelected Is item selected. + */ + void DrawItemText( TInt aItemIndex, const TRect& aItemTextRect, + TBool aItemIsCurrent, TBool aViewIsEmphasized, + TBool aItemIsSelected ) const; + /** + * 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. + */ + void DrawActualItem(TInt aItemIndex, const TRect& aActualItemRect, + TBool aItemIsCurrent, TBool aViewIsEmphasized, TBool aViewIsDimmed, + TBool aItemIsSelected) const; + /** + * Draws background and separator lines. + * + * @since S60 v3.0 + * @param aItemTextRect Item rectangle. + */ + void DrawBackgroundAndSeparatorLines( const TRect& aItemTextRect ) const; + + /** + * Sets up item currently drawn item subcells. + * Also, fills-in/updates the cache information for the item at index + * aItemIndex. + * + * @since S60 v3.0 + * @param aItemIsCurrent Is item the current item in widget. + * @param aItemIndex Item index. + */ + void SetupSubCellsL( TBool aItemIsCurrent, TInt aItemIndex ) const; + + /** + * Sets up subcell to be drawn by listbox data. + * + * @since S60 v3.0 + * @param aSubCellTemplate Subcell template data. + * @param aIndex Subcell index. + * @param aItemIndex Item index. + */ + void SetupSubCellL( TTemplateChild aSubCellTemplate, TInt aIndex, + TInt aItemIndex ) const; + + /** + * Sets up "null" subcell to be avoided when drawing. + * + * @since S60 v3.0 + * @param aIndex Subcell index. + * @param aItemIndex Item index. + */ + void SetupSubNoCellL( TInt aIndex, TInt aItemIndex ) const; + + /** + * Sets up icon for dragged subcell. + * + * @since S60 v3.0 + * @param aSubCellTemplate Subcell template data. + * @param aIndex Subcell index. + * @param aItemIndex Index of dragged item. + */ + void SetupSubIcondDragHighlightCellL( TTemplateChild aSubCellTemplate, + TInt aIndex, TInt aItemIndex ) const; + + /** + * Adjusts rectangle of item. + * + * @since S60 v3.0 + * @param aItemIndex Item's index which adjust rectangle. + * @return Index of item which rectangle should be adjusted. + */ + TRect AdjustItemRect( TInt aItemIndex ) const; + + /** + * Draws the move indicator over the indicated item. + * + * @since S60 v3.0 + * @param aItemIndex Item index with move indicator. + * @param aActualItemRect The actual rectangle of indicator item. + */ + void DrawActualIndicatorItem( TInt aItemIndex, TRect aActualItemRect ); + + /** + * Sets up colors for subcell data. + * + * @since S60 v3.0 + * @return Colors for subcell drawing. + */ + CFormattedCellListBoxData::TColors SetupColors( TBool aDragged = EFalse ) const; + +private: + + /** + * Default constructor. + * + * @since S60 v3.0 + * @param aMmListBoxModel List box model. + * @param aFont Font needed by base constructor. + * @param aFormattedCellData Used to format subcell data in item drawer. + * @param aWidgetType Type of widgte (list/grid). + * @param aTemplateLibrary TemplateLibrary contains items sizes. + */ + CMmListBoxItemDrawer( CMmListBoxModel* aMmListBoxModel, + const CFont* aFont, + CFormattedCellListBoxData* aFormattedCellData, + TMmWidgetType aWidgetType, CMmTemplateLibrary* aTemplateLibrary ); + + /** + * 2nd phase constructor. + * + * @since S60 v3.0 + */ + void ConstructL(); + + /** + *Draws the item text according to the format defined by a text string. + * + * @since S60 v3.0 + * @param aItemIndex Item index to be drawn. + * @param aItemTextRect Item rectangle. + * @param aItemIsCurrent Is item current. + * @param aViewIsEmphasized Is view emphasized. + * @param aItemIsSelected Is item selected. + */ + void DoDrawItemTextL( TInt aItemIndex, const TRect& aItemTextRect, + TBool aItemIsCurrent, TBool aViewIsEmphasized, + TBool aItemIsSelected ) const; + + /** + * Draws an item. + * + * @since S60 v3.0 + * @param aItemIndex Item index to be drawn. + * @param aItemRectPos Position of item rectangle. + * @param aItemIsSelected Is item selected. + * @param aItemIsCurrent Is item current. + * @param aViewIsEmphasized Is view emphasized. + * @param aViewIsDimmed Is view dimmed. + */ + void DoDrawItem(TInt aItemIndex, TPoint aItemRectPos, + TBool aItemIsSelected, TBool aItemIsCurrent, TBool aViewIsEmphasized, + TBool aViewIsDimmed) const; + + /** + * Sets up backdrop image subcell. + * + * @since S60 v3.0 + * @param aTemplateChildArray Array of subcell children where the backdrop subcell template is appended. + * @param aItemIndex Index of currently drawn item. + * @param aItemText Text used to format item subcell content. + * @param aSubcellIncrement Is incremented if backdrop subcell template is appended. + */ + void SetupBackdropSubcellL( + RArray& aTemplateChildArray, TInt aItemIndex, + RBuf& aItemText, TInt& aSubcellIncrement ) const; + + /** + * Sets up icon image subcell. + * + * @since S60 v3.0 + * @param aTemplateChildArray Array of subcell children where the backdrop subcell template is appended. + * @param aChildIndex Index of a template child. + * @param aItemIndex Index of currently drawn item. + * @param aItemText Text used to format item subcell content. + * @param aSubcellIncrement Is incremented if backdrop subcell template is appended. + */ + void SetupIconSubcellL( + RArray& aTemplateChildArray, TInt aChildIndex, TInt aItemIndex, + RBuf& aItemText, TInt& aSubcellIncrement ) const; + + /** + * Determines whether a bitmap of given size needs scaling to be displayed + * in a rectangular area of some given target size. + * + * This method assumes that the bitmap will always be scaled with aspect + * ratio preserved. A bitmap does not need scaling if its size meets either + * of the two conditions: + * 1. bitmap width is nearly the same* as target area width and bitmap height + * is not greater than target height + * 2. bitmap width is not greater that target width and bitmap height is + * nearly the same* as target height. + * * nearly the same means that it is exactly the same or differs by at most + * 1 pixel. + * Please note that a bitmap which is too small (i.e. neither its width or its + * height is close to the target width/height) will be regarded as one that + * needs scaling. + * + * @param aBmpSize size of the bitmap + * @param aTargetSize size of the area where bitmap will be displayed + * @return ETrue if bitmap does not need scaling + */ + TBool BitmapFitsIntoTarget( TSize aBmpSize, TSize aTargetSize ) const; + + /** + * Sets up icon text subcell. + * + * @since S60 v3.0 + * @param aTemplateChildArray Array of subcell children where the backdrop subcell template is appended. + * @param aItemIndex Index of currently drawn item. + * @param aItemText Text used to format item subcell content. + * @param aSubcellIncrement Is incremented if backdrop subcell template is appended. + * @param aChildIndex Index of a template child. + */ + void SetupTextSubcellL( + RArray& aTemplateChildArray, TInt aChildIndex, TInt aItemIndex, + RBuf& aItemText, TInt& aSubcellIncrement ) const; + + /** + * Appends text if there is enough free memory. + * + * @since S60 v3.0 + * @param aBuffer Buffer to which the text will be added + * @param aTextToAppend Text to add + */ + void AppendText( RBuf& aBuffer, const TDesC& aTextToAppend ) const; + + /** + * Returns true if an item having an index equal to aItemIndex is a + * floating and dragged item. + * + * @param aItemIndex An index of a currently drawn item. + * @return ETrue if an item is floating and dragged. + */ + TBool IsFloating( TInt aItemIndex ) const; + + /** + * Returns highlight visibility. + * + * @param aItemIndex An index of a currently drawn item. + * @param aItemIsCurrent Is aItemIndex the current item index. + * @param aAllowHighlightForNonDraggedItem Should highlight be shown + * (set in case when effects are used). + * @return ETrue if highlight is drawn for the actually drawn item. + */ + TBool GetHighlightVisibility( TInt aItemIndex, + TBool aItemIsCurrent, TBool aAllowHighlightForNonDraggedItem ) const; + + /** + * Returns backdrop visibility. + * + * @param aItemIndex An index of a currently drawn item. + * @param aItemIsCurrent Is aItemIndex the current item index. + * @return ETrue if backdrop is visible for the currently drawn item. + */ + TBool GetBackdropVisibility( TInt aItemIndex, TBool aItemIsCurrent ) const; + + /** + * Checks if item has specified floating type. + * + * @param aItemIndex Item index. + * @param aFloatingType Floating type to check on the item. + * @return ETrue if the item is of the given floating type. + */ + TBool ItemHasFloatingType( TInt aItemIndex, TMmFloatingItemType aFloatingType) const; + +public: + /** + * Animator used by drawer to animate item transitions. + * Own + */ + CMmDrawerAnimator* iAnimator; + +private: // Data + /** + * Listbox model. + * Not own. + */ + CMmListBoxModel* iMmModel; + + /** + * Font. + */ + const CFont * iFont; + + /** + * Drawer owner widget type (list/grid). + */ + TMmWidgetType iWidgetType; + + /** + * Is draggable flag. + */ + TBool iDraggable; + + /** + * Widget. + */ + CEikListBox* iWidget; + + /** + * Background context. + * Not own. + */ + CAknsBasicBackgroundControlContext * iBgContext; + + /** + * Redraw background flag. + */ + TBool iRedrawBackground; + + /** + * Ratio of zooming animation. + */ + TReal iIconAnimationZoomRatio; + + /** + * Zommed item index. + */ + TInt iZoomIconIndex; + + /** + * Is edit mode flag. + */ + TBool iIsEditMode; + + /** + * Array of floating items. + */ + RArray iFloatingItems; + + /** + * Just draw backdrop flag. + */ + TBool iLeftOverAreaUnderAnimatedItem; + + /** + * Is drawn item an indicator item. + */ + TBool iIsIndicatorItem; + + /** + * Marquee adapter. + */ + CMmMarqueeAdapter* iMarqueeAdapter; + + /** + * Subcell item text. + */ + HBufC* iSubcellText; + + /** + * Is marquee being drawn flag; + */ + TBool iIsMarqueeBeingDrawn; + + /** + * Number of columns in widget. + */ + TInt iNumberOfColsInWidget; + + /** + * Original mask of the dragged item. + * Not own. + */ + CFbsBitmap* iOriginalMask; + + /** + * Gul Icon of the item dragged. + * Not own. + */ + CGulIcon* iGulDragged; + + /** + * Temporary mask of the dragged item. + * Not own. + */ + CFbsBitmap* iDragMask; + + /** + * Indicates id original gul had external bitmaps. + */ + TBool iExternalBitamp; + + /** + * Indicates if highlight should be shown. + */ + TBool iHighlightShown; + + /** + * Indicates if move indicators should be drawn. + */ + TBool iDrawMoveIndicators; + + /** + * Template library. Stores template attributes. + * Not own. + */ + CMmTemplateLibrary* iTemplateLibrary; + + /** + * Storage for cached items data. The data is updated during normal operation + * and used when iUseCache is ETrue. + * Own. + */ + CMmItemsDataCache* iItemsDataCache; + + /** + * This flag tells whether to rely on cached data (when possible) or + * to obtain data from the model normally. It should be set to ETrue + * when drawing performance is critical (e.g. during flick). + */ + TBool iUseCache; + + /** + * Stores information on the last used subcells configuration. + * Such information is needed to determine whether it is necessary to + * setup subcells before drawing a particular item or is it possible + * to skip this step because the subcells are already set properly. + */ + mutable TMmSubcellsSetupCode iLastSubcellsSetupCode; + + /** + * Set to ETrue if item has backdrop. + */ + mutable TBool iItemHasBackdrop; + }; + +#endif // MMLISTBOXITEMDRAWER_H