diff -r d189ee25cf9d -r 3533d4323edc emailuis/uicomponents/inc/fsmultilineitemvisualizer.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/emailuis/uicomponents/inc/fsmultilineitemvisualizer.h Wed Sep 01 12:28:57 2010 +0100 @@ -0,0 +1,306 @@ +/* +* 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: A visualizer class for the MultiLine item. +* +*/ + + +#ifndef C_FSMULTILINEITEMVISUALIZER_H +#define C_FSMULTILINEITEMVISUALIZER_H + +class CAlfControl; +class CAlfLayout; +class CAlfTexture; + +class CFsMultiLineItemData; + +#include "fstreeitemvisualizerbase.h" + +/** + * CFsMultiLineItemVisualizer is a visualizer for an item with 1-4 lines. + * + * This class is a concrete implementation for the MFsTreeItemVisualizer + * interface. It provides visualization for a Multiline item's data. + * + * @code + * + * @endcode + * + * @lib + */ +NONSHARABLE_CLASS( CFsMultiLineItemVisualizer ): + public CFsTreeItemVisualizerBase + { +public: + + /** + * Two-phased constructor + * + * @param aOwnerControl Owner control. + */ + IMPORT_C static CFsMultiLineItemVisualizer* NewL( + CAlfControl& aOwnerControl ); + + /** + * C++ destructor + */ + virtual ~CFsMultiLineItemVisualizer(); + +public: + + //visualizer's interface + + /** + * The function sets how many lines the multiline item has when it's not extended. + * + * @param aNumberOfLines Number of lines in not extended state (1-4).Note that + * the value should be <= than the number of lines in extended state. + */ + virtual void SetNumberOfLinesWhenNotExtended( TInt aNumberOfLines ); + + /** + * The function returns how many lines the item has when it's not extended. + * + * @return Number of lines in not extended state (1-4). + */ + virtual TInt NumberOfLinesWhenNotExtended( ) const; + + /** + * The function sets how many lines the multiline item has when it's extended. + * + * @param aNumberOfLines Number of lines in extended state (1-4).Note that + * the value should be >= than the number of lines in not extended state. + */ + virtual void SetNumberOfLinesWhenExtended( TInt aNumberOfLines ); + + /** + * The function returns how many lines the item has when it's extended. + * + * @return Number of lines in extended state (1-4). + */ + virtual TInt NumberOfLinesWhenExtended( ) const; + + /** + * The function sets state of the item's checkbox. + * A call of this function should be followed by a call of list's + * visualizer's function UpdateItemL() or RefreshListViewL(). + * + * @param ETrue Sets checkbox to "on" state. + * EFalse Sets checkbox to "off" state. + */ + virtual void SetCheckboxState( TBool aChecked ); + + /** + * The function returns state of the item's checkbox. + * + * @return ETrue Checkbox is in "on" state. + * EFalse Checkbox is in "off" state. + */ + virtual TBool CheckboxState () const; + + /** + * The function sets whether place holders should be kept when icons in the + * first column are not present. + * + * @param ETrue if place holders should be present. EFalse otherwise. + */ + virtual void SetKeepEmptyIconsPlaceHolders( TBool aKeep ); + + /** + * The function returns whether place holders are kept in case icons are + * not set. + * + * @returm ETrue if place holders are present. EFasle otherwise. + */ + virtual TBool IsKeepEmptyIconsPlaceHolders( ) const; + +public: + +// from base class MFsTreeItemVisualizer + + /** + * Returns the type of the item's visualizer. + */ + virtual TFsTreeItemVisualizerType Type() const; + + /** + * From MFsTreeItemVisualizer. + * Returns the size of an item in a normal (not extended) state. + * + * @return Size in pixels of an item when it is not extended. + */ + virtual TSize Size() const; + + /** + * From MFsTreeItemVisualizer. + * Returns the size of an item in expanded state. + * + * @return Size in pixels of the item when it is in expanded state. + */ + virtual TSize ExtendedSize() const; + + /** + * From MFsTreeItemVisualizer. + * A call to this function means that the item is requested to draw itself + * within specified parent layout. Data to be visualized is passed as an + * argument. + * + * Parameter descriptions will be added when the final function prototype + * is ready. + */ + virtual void ShowL( CAlfLayout& aParentLayout, + const TUint aTimeout = 0 ); + + /** + * A call to this function means that the item is requested to update its + * visual content. + */ + virtual void UpdateL( const MFsTreeItemData& aData, + TBool aFocused, + const TUint aLevel, + CAlfTexture*& aMarkIcon, + CAlfTexture*& aMenuIcon, + const TUint aTimeout = 0, + TBool aUpdateData = ETrue); + + + /** + * This method sets flag disable wrapping the text item. + */ + virtual void OffWrapping(); + + /** + * From MFsTreeItemVisualizer. + * A call to this function means that the item goes out of the visible + * items scope. The visualizer should destroy all its visuals to save + * memory. + */ + virtual void Hide( const TInt aTimeout = 0 ); + + +protected: + + /** + * C++ constructor + * + * @param aOwnerControl Owner control. + */ + CFsMultiLineItemVisualizer( CAlfControl& aOwnerControl ); + + /** + * Second phase constructor + * + */ + void ConstructL( ); + +private: + + /** + */ + void UpdateLayout(const CFsMultiLineItemData* aData, const TInt aIndentation ); + + /** + * Returns item's size in state with given number of lines. + * + * @param aNumberLines Number of item's lines (1-4) + * @return Size of item. TSize(0,0) in case invalid number of lines was passed to the func. + */ + TSize SizeWithNumberOfLines( const TInt aNumberLines ) const; + +protected: //data + + /** + * State of item's checkbox. + * + * ETrue - checkbox is "on" + * EFalse - checkbox is "off" + */ + TBool iCheckState; + + /** + * Place holders for empty icons should be kept or not. + */ + TBool iKeepPlaceHolders; + + /** + * Number of lines (1-4) when item is not extended. + */ + TInt iNumLinesNotExtended; + + /** + * Number of lines (1-4) when item is extended. + */ + TInt iNumLinesExtended; + +///////////////////////////first line/////////////////////////// + /** + * Text visual. + * Own. + */ + CAlfTextVisual* iFirstLineTextVis; + + /** + * Visual for an icon. + */ + CAlfImageVisual* iFirstLineIconVis; + + /** + * Visual for a checkbox icon. + */ + CAlfImageVisual* iCheckBoxIconVis; + + /** + * Visual for a mark icon. + */ + CAlfImageVisual* iMarkIconVis; + + /** + * Visual for a menu icon. + */ + CAlfImageVisual* iMenuIconVis; + +///////////////////////////second line/////////////////////////// + /** + * + */ + CAlfTextVisual* iSecondLineTextVis; + + /** + * Visual for an icon. + */ + CAlfImageVisual* iSecondLineIconVis; + +///////////////////////////third line/////////////////////////// + /** + */ + CAlfTextVisual* iThirdLineTextVis; + + /** + * Visual for an icon. + */ + CAlfImageVisual* iThirdLineIconVis; + +///////////////////////////fourth line/////////////////////////// + /** + */ + CAlfTextVisual* iFourthLineTextVis; + + /** + * Visual for an icon. + */ + CAlfImageVisual* iFourthLineIconVis; + + }; + +#endif //C_FSMULTILINEITEMVISUALIZER_H