emailuis/emailui/inc/FreestyleEmailUiFolderListVisualiser.h
changeset 1 12c456ceeff2
parent 0 8466d47a6819
child 2 5253a20d2a1e
equal deleted inserted replaced
0:8466d47a6819 1:12c456ceeff2
     1 /*
     1 /*
     2 * Copyright (c) 2007-2008 Nokia Corporation and/or its subsidiary(-ies). 
     2 * Copyright (c) 2007-2008 Nokia Corporation and/or its subsidiary(-ies).
     3 * All rights reserved.
     3 * All rights reserved.
     4 * This component and the accompanying materials are made available
     4 * This component and the accompanying materials are made available
     5 * under the terms of "Eclipse Public License v1.0"
     5 * under the terms of "Eclipse Public License v1.0"
     6 * which accompanies this distribution, and is available
     6 * which accompanies this distribution, and is available
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
    13 *
    13 *
    14 * Description:  FreestyleEmailUi folder list visualiser definition
    14 * Description:  FreestyleEmailUi folder list visualiser definition
    15 *
    15 *
    16 */
    16 */
    17 
    17 
    18  
    18 
    19     
    19 
    20 #ifndef __FREESTYLEEMAILUI_FOLDERLISTVISUALISER_H__
    20 #ifndef __FREESTYLEEMAILUI_FOLDERLISTVISUALISER_H__
    21 #define __FREESTYLEEMAILUI_FOLDERLISTVISUALISER_H__
    21 #define __FREESTYLEEMAILUI_FOLDERLISTVISUALISER_H__
    22 
    22 
    23     
    23 
    24 #include <e32base.h>
    24 #include <e32base.h>
    25 
    25 
    26 //<cmail>
    26 //<cmail>
    27 #include "fstreelistconstants.h"
    27 #include "fstreelistconstants.h"
    28 //</cmail>
    28 //</cmail>
    35 #include <alf/alfimagebrush.h>
    35 #include <alf/alfimagebrush.h>
    36 // forward declarations
    36 // forward declarations
    37 class CAlfTextVisual;
    37 class CAlfTextVisual;
    38 class CAlfGridLayout;
    38 class CAlfGridLayout;
    39 class CAlfImageVisual;
    39 class CAlfImageVisual;
       
    40 class CAlfShadowBorderBrush;
    40 class CAlfDeckLayout;
    41 class CAlfDeckLayout;
    41 class CAlfAnchorLayout;
    42 class CAlfAnchorLayout;
    42 class CFSEmailUiFolderListControl;
    43 class CFSEmailUiFolderListControl;
    43 class CFSEmailUiFolderListModel;
    44 class CFSEmailUiFolderListModel;
    44 class CAlfBorderBrush;
    45 class CAlfBorderBrush;
    63 class CFSMailBox;
    64 class CFSMailBox;
    64 class CFSMailFolder;
    65 class CFSMailFolder;
    65 
    66 
    66 class CAlfFrameBrush;
    67 class CAlfFrameBrush;
    67 
    68 
    68 //REMOVE WHEN DONE TESTING
    69 class CFSEmailUiFolderListVisualiser : public CFsEmailUiViewBase,
    69 //class CSimpleAOTest;
    70                                        public MFsTreeListObserver
    70 // <cmail> Touch
       
    71 class CFSEmailUiFolderListVisualiser : public CFsEmailUiViewBase, public MFsTreeListObserver
       
    72 // </cmail>
       
    73 	{
    71 	{
    74 public: // Data types
    72 public: // Data types
    75     enum TExpandCollapseType
    73     enum TExpandCollapseType
    76         {
    74         {
    77         EFolderListExpand,
    75         EFolderListExpand,
    78         EFolderListCollapse,
    76         EFolderListCollapse,
    79         EFolderListAutomatic
    77         EFolderListAutomatic
    80         };
    78         };
    81     
    79 
    82 public: // Construction and destruction
    80 public: // Construction and destruction
    83     /**
    81     /**
    84      * Destructor
    82      * Destructor
    85      */
    83      */
    86 	~CFSEmailUiFolderListVisualiser();
    84 	~CFSEmailUiFolderListVisualiser();
    96 	static CFSEmailUiFolderListVisualiser* NewL( CAlfEnv& aEnv,
    94 	static CFSEmailUiFolderListVisualiser* NewL( CAlfEnv& aEnv,
    97                                                  CAlfControlGroup& aControlGroup,
    95                                                  CAlfControlGroup& aControlGroup,
    98                                                  CFreestyleEmailUiAppUi& aAppUi );
    96                                                  CFreestyleEmailUiAppUi& aAppUi );
    99 	static CFSEmailUiFolderListVisualiser* NewLC( CAlfEnv& aEnv,
    97 	static CFSEmailUiFolderListVisualiser* NewLC( CAlfEnv& aEnv,
   100                                                   CAlfControlGroup& aControlGroup,
    98                                                   CAlfControlGroup& aControlGroup,
   101                                                   CFreestyleEmailUiAppUi& aAppUi );				
    99                                                   CFreestyleEmailUiAppUi& aAppUi );
   102 
   100 
   103 public: // From base class CAknView
   101 public: // From base class CAknView
   104 	void DynInitMenuPaneL(TInt aResourceId, CEikMenuPane* aMenuPane);
   102 	void DynInitMenuPaneL(TInt aResourceId, CEikMenuPane* aMenuPane);
   105 	void HandleCommandL( TInt aCommand );
   103 	void HandleCommandL( TInt aCommand );
   106     TUid Id() const;
   104     TUid Id() const;
   107     // <cmail> Toolbar
   105     void ChildDoDeactivate();
   108     /*
       
   109     void ChildDoActivateL( const TVwsViewId& aPrevViewId,
       
   110             TUid aCustomMessageId,
       
   111             const TDesC8& aCustomMessage );*/            
       
   112     // </cmail> Toolbar
       
   113     void ChildDoDeactivate();                
       
   114     void DoTransitionEffect( TBool aDirectionOut );
   106     void DoTransitionEffect( TBool aDirectionOut );
   115     void GetParentLayoutsL( RPointerArray<CAlfVisual>& aLayoutArray ) const;
   107     void GetParentLayoutsL( RPointerArray<CAlfVisual>& aLayoutArray ) const;
   116 
   108 
   117 public: // Own public functions
   109 public: // Own public functions
   118     
   110 
   119     virtual TBool HandleWsEventL( const TWsEvent& aEvent );
   111     virtual TBool HandleWsEventL( const TWsEvent& aEvent );
   120     
   112 
   121     // Handle foreground event (called by FreestyleEmailUiMailListVisualiser)
   113     // Handle foreground event (called by FreestyleEmailUiMailListVisualiser)
   122     void HandleForegroundEventL();
   114     void HandleForegroundEventL();
   123 
   115 
   124     /**
   116     /**
   125 	 * Dynamic switch handling and background updating
   117 	 * Dynamic switch handling and background updating
   131      *
   123      *
   132      * @param aEvent Event forwarded from control
   124      * @param aEvent Event forwarded from control
   133      * @return ETrue if event was consumed, otherwise EFalse
   125      * @return ETrue if event was consumed, otherwise EFalse
   134      */
   126      */
   135 	TBool OfferEventL( const TAlfEvent& aEvent );
   127 	TBool OfferEventL( const TAlfEvent& aEvent );
   136 	
   128 
   137 	// <cmail> Touch
   129     /**
   138     /**
   130      * Handling pointer events.
   139      * Handling pointer events. 
       
   140      *
   131      *
   141      * @param aEvent Event forwarded from control
   132      * @param aEvent Event forwarded from control
   142      * @return ETrue if event was consumed, otherwise EFalse
   133      * @return ETrue if event was consumed, otherwise EFalse
   143      */
   134      */
   144 	TBool HandlePointerEventL(const TAlfEvent& aEvent);
   135 	TBool HandlePointerEventL(const TAlfEvent& aEvent);
   145 	// </cmail>
   136 
   146 	
       
   147 	/**
   137 	/**
   148 	 * Expands or collpases the currently highlighted folder
   138 	 * Expands or collpases the currently highlighted folder
   149 	 */
   139 	 */
   150 	void ExpandOrCollapseL( const TExpandCollapseType& aType );
   140 	void ExpandOrCollapseL( const TExpandCollapseType& aType );
   151 
   141 
   164      * @param aButton Control bar button from where the popup is opened
   154      * @param aButton Control bar button from where the popup is opened
   165    	 */
   155    	 */
   166     void ShowInPopupL( const TFSMailMsgId aFolderId,
   156     void ShowInPopupL( const TFSMailMsgId aFolderId,
   167                        MFSEmailUiFolderListCallback* aCallback,
   157                        MFSEmailUiFolderListCallback* aCallback,
   168     				   MFsControlButtonInterface* aButton = NULL );
   158     				   MFsControlButtonInterface* aButton = NULL );
   169 	
   159 
   170     /**
   160     /**
   171 	 * Quick and dirty solution to show the sort list with the same list.
   161 	 * Quick and dirty solution to show the sort list with the same list.
   172 	 * Could be changed to some more elegant implementation (e.g. folder list
   162 	 * Could be changed to some more elegant implementation (e.g. folder list
   173 	 * and sort list derive from some generic control base class that
   163 	 * and sort list derive from some generic control base class that
   174 	 * implements the common operations), if time permits.
   164 	 * implements the common operations), if time permits.
   175 	 *
   165 	 *
   176 	 * @param aCurrentSortOrder Current sort order in mail list
   166 	 * @param aCurrentSortCriteria Current sort criteria in mail list
   177      * @param aFolderType Folder type of the currently visible folder in mail list
   167      * @param aFolderType Folder type of the currently visible folder in mail list
   178      * @param aCallback Call back to inform the result of the sort order query
   168      * @param aCallback Call back to inform the result of the sort order query
   179      * @param aButton Control bar button from where the popup is opened
   169      * @param aButton Control bar button from where the popup is opened
   180 	 */
   170 	 */
   181     void ShowSortListPopupL( const TFSMailSortField aCurrentSortOrder,
   171     void ShowSortListPopupL( const TFSMailSortCriteria aCurrentSortCriteria,
   182                              const TFSFolderType aFolderType,
   172                              const TFSFolderType aFolderType,
   183     						 MFSEmailUiSortListCallback* aCallback,
   173     						 MFSEmailUiSortListCallback* aCallback,
   184     						 MFsControlButtonInterface* aButton  = NULL );
   174     						 MFsControlButtonInterface* aButton  = NULL );
   185     
   175 
   186     /**
   176     /**
   187      * Does a horizontal scroll for the list if needed
   177      * Does a horizontal scroll for the list if needed
   188      *
   178      *
   189      * @param aForceRecalculation If ETrue, recalculates the list rect always.
   179      * @param aForceRecalculation If ETrue, recalculates the list rect always.
   190      *                            If EFalse, recalculates the list rect only
   180      *                            If EFalse, recalculates the list rect only
   192      */
   182      */
   193     void DoHorizontalScrollL( TBool aForceRecalculation = EFalse );
   183     void DoHorizontalScrollL( TBool aForceRecalculation = EFalse );
   194 
   184 
   195     /**
   185     /**
   196      * Function to check whether folder list is displaying popup
   186      * Function to check whether folder list is displaying popup
   197      */ 
   187      */
   198     TBool IsPopupShown();
   188     TBool IsPopupShown();
   199 
   189 
   200     /**
   190     /**
   201      * Function to hide popup
   191      * Function to hide popup
   202      */ 
   192      */
   203     void HidePopupL();
   193     void HidePopupL();
   204     
   194 
   205     /**
   195     /**
   206      * From MFsTreeListObserver
   196      * From MFsTreeListObserver
   207      */
   197      */
   208 // <cmail> Touch
   198     void TreeListEventL( const TFsTreeListEvent aEvent,
   209     void TreeListEventL( const TFsTreeListEvent aEvent, 
       
   210                                     const TFsTreeItemId aId = KFsTreeNoneID );
   199                                     const TFsTreeItemId aId = KFsTreeNoneID );
   211 // </cmail>
       
   212 
   200 
   213 // <cmail> Receiving online/offline events
   201 // <cmail> Receiving online/offline events
   214     void HandleMailBoxEventL( TFSMailEvent aEvent, TFSMailMsgId aMailbox,
   202     void HandleMailBoxEventL( TFSMailEvent aEvent, TFSMailMsgId aMailbox,
   215         TAny* aParam1, TAny* aParam2, TAny* aParam3 );
   203         TAny* aParam1, TAny* aParam2, TAny* aParam3 );
   216 // </cmail>
   204 // </cmail>
   217 // <cmail> Toolbar    
   205 
       
   206     /**
       
   207      * From CFsEmailUiViewBase
       
   208      * This method is called from the appui when the focus state is changed.
       
   209      *
       
   210      * @param aVisible Indicates if focus should become visible or removed
       
   211      */
       
   212     void FocusVisibilityChange( TBool aVisible );
   218 
   213 
   219 private: // from
   214 private: // from
   220     
   215 
   221     /**
   216     /**
   222      * @see CFsEmailUiViewBase::ChildDoActivateL
   217      * @see CFsEmailUiViewBase::ChildDoActivateL
   223      */
   218      */
   224     void ChildDoActivateL( const TVwsViewId& aPrevViewId,
   219     void ChildDoActivateL( const TVwsViewId& aPrevViewId,
   225             TUid aCustomMessageId,
   220             TUid aCustomMessageId,
   226             const TDesC8& aCustomMessage );
   221             const TDesC8& aCustomMessage );
   227     
   222 
   228     /**
   223     /**
   229      *  @see CFsEmailUiViewBase::OfferToolbarEventL
   224      *  @see CFsEmailUiViewBase::OfferToolbarEventL
   230      */
   225      */
   231     void OfferToolbarEventL( TInt aCommand );
   226     void OfferToolbarEventL( TInt aCommand );
   232 
   227 
   233     /**
   228     /**
   234      * @see CFsEmailUiViewBase::ToolbarResourceId
   229      * @see CFsEmailUiViewBase::ToolbarResourceId
   235      */
   230      */
   236     TInt ToolbarResourceId() const;
   231     TInt ToolbarResourceId() const;
   237    
   232 
   238 // </cmail> Toolbar    
       
   239     
       
   240 private: // Private functions
   233 private: // Private functions
   241 
   234 
   242     /**
   235     /**
   243      * Comparison function for TLinearOrder
   236      * Comparison function for TLinearOrder
   244      *
   237      *
   247      * @return Zero if parameters are equal,
   240      * @return Zero if parameters are equal,
   248      *         negative if first parameter is less than second,
   241      *         negative if first parameter is less than second,
   249      *         positive if first parameter is greater than second
   242      *         positive if first parameter is greater than second
   250      */
   243      */
   251     static TInt CompareFolders( const CFSMailFolder& aFirst, const CFSMailFolder& aSecond );
   244     static TInt CompareFolders( const CFSMailFolder& aFirst, const CFSMailFolder& aSecond );
   252        
   245 
   253 	// Construction
   246 	// Construction
   254 	CFSEmailUiFolderListVisualiser( CAlfEnv& aEnv, CFreestyleEmailUiAppUi &aAppUi, CAlfControlGroup& aControlGroup );
   247 	CFSEmailUiFolderListVisualiser( CAlfEnv& aEnv, CFreestyleEmailUiAppUi &aAppUi, CAlfControlGroup& aControlGroup );
   255 	void ConstructL();
   248 	void ConstructL();
   256 	void LoadIconsL();
   249 	void LoadIconsL();
   257 
   250 
   258 	// Internal functions used when showing and hiding the list
   251 	// Internal functions used when showing and hiding the list
   259 	// <cmail>
       
   260 	//void DoShowInPopupL();
   252 	//void DoShowInPopupL();
   261 	void DoShowInPopupL( MFsControlButtonInterface* aButton,
   253 	void DoShowInPopupL( MFsControlButtonInterface* aButton,
   262 	        MFSEmailUiFolderListCallback* aFolderCallback,
   254 	        MFSEmailUiFolderListCallback* aFolderCallback,
   263 	        MFSEmailUiSortListCallback* aSortCallback );
   255 	        MFSEmailUiSortListCallback* aSortCallback );
   264 	// </cmail>
       
   265 	void PrepareFolderListL();
   256 	void PrepareFolderListL();
   266     void PopulateFolderListL();
   257     void PopulateFolderListL();
   267     void PopulateFolderListDeferred();
   258     void PopulateFolderListDeferred();
   268     static TInt DoPopulateFolderList( TAny* aSelfPtr );
   259     static TInt DoPopulateFolderList( TAny* aSelfPtr );
   269 
   260 
   270 	// Recreate list content
   261 	// Recreate list content
   271 	void UpdateFolderListL();
   262 	void UpdateFolderListL();
   272 	void UpdateSortListL();
   263 	void UpdateSortListL();
   273 	
   264 
   274 	// View layout handling and item position calculation
   265 	// View layout handling and item position calculation
   275 	void UpdateListSizeAttributes();
   266 	void UpdateListSizeAttributes();
   276 	void ResizeListIcons();
   267 	void ResizeListIcons();
   277 	void ResizeListItemsL();
   268 	void ResizeListItemsL();
   278 	void AdaptScreenRectToListContent();
   269 	void AdaptScreenRectToListContent();
   279 	// <cmail>
       
   280 	void AdjustWidthByContent( TRect& aRect ) const;
   270 	void AdjustWidthByContent( TRect& aRect ) const;
   281 	// </cmail>
       
   282 	void SetAnchors();
   271 	void SetAnchors();
   283 	void SetItemVisualizerPropertiesL( MFsTreeItemVisualizer* aItemVisualizer );
   272 	void SetItemVisualizerPropertiesL( MFsTreeItemVisualizer* aItemVisualizer );
   284 
   273 
   285 	// Popup list position calcualtion
   274 	// Popup list position calcualtion
   286 	TRect LeftListRectInThisResolution();
   275 	TRect LeftListRectInThisResolution();
   287 	TRect RightListRectInThisResolution();
   276 	TRect RightListRectInThisResolution();
   288 	TRect FolderListRectInThisResolution();
   277 	TRect FolderListRectInThisResolution();
   289 	TRect SortListRectInThisResolution();
   278 	TRect SortListRectInThisResolution();
   290 	// <cmail>
       
   291 	//void PopupListWidthHeightInThisResolution( TInt& aWidth, TInt& aHeight );
       
   292 	// </cmail>
       
   293 
   279 
   294 	// Handle the selection or cancelation of the list
   280 	// Handle the selection or cancelation of the list
   295 	void HandleSelectionL( TFSEmailUiCtrlBarResponse aSelection );
   281 	void HandleSelectionL( TFSEmailUiCtrlBarResponse aSelection );
   296 	TBool HandleCallbackL();
   282 	TBool HandleCallbackL();
   297 
   283 
   301 	// Append folder list data
   287 	// Append folder list data
   302 	void AppendActiveMailboxFoldersL();
   288 	void AppendActiveMailboxFoldersL();
   303 	void AppendMoreFoldersL();
   289 	void AppendMoreFoldersL();
   304 	void AppendMailboxesL();
   290 	void AppendMailboxesL();
   305 	void AppendSeparatorLineL();
   291 	void AppendSeparatorLineL();
   306 	
   292 
   307 	// Append sort list data
   293 	// Append sort list data
   308 	void AppendSortListItemsL();
   294 	void AppendSortListItemsL();
   309 
   295 
   310 	// Helper functions used to append different kind of items to list
   296 	// Helper functions used to append different kind of items to list
   311 	void AppendSubfoldersL( TFSMailMsgId aFolder,
   297 	void AppendSubfoldersL( TFSMailMsgId aFolder,
   312 	                        TFsTreeItemId aParentNode,
   298 	                        TFsTreeItemId aParentNode,
   313 	                        TBool aRefreshLastItem );
   299 	                        TBool aRefreshLastItem );
   314 	TFsTreeItemId AppendNodeFolderL( CFSMailFolder* aFolder, TFsTreeItemId aParentNode );
   300 	TFsTreeItemId AppendNodeFolderL( CFSMailFolder* aFolder, TFsTreeItemId aParentNode );
   315 	TFsTreeItemId AppendLeafFolderL( CFSMailFolder* aFolder, TFsTreeItemId aParentNode, TBool aAllowRefresh );
   301 	TFsTreeItemId AppendLeafFolderL( CFSMailFolder* aFolder, TFsTreeItemId aParentNode, TBool aAllowRefresh );
   316 	
   302 
   317 	TFsTreeItemId AppendNodeToListFromResourceL( TInt aResourceId,
   303 	TFsTreeItemId AppendNodeToListFromResourceL( TInt aResourceId,
   318 												 TFsTreeItemId aParentNode,
   304 												 TFsTreeItemId aParentNode,
   319 												 CAlfTexture* aIcon,
   305 												 CAlfTexture* aIcon,
   320 												 TUint aUnreadCnt = 0);
   306 												 TUint aUnreadCnt = 0);
   321 	
   307 
   322 	TFsTreeItemId AppendNodeToListL( TDesC* aItemData,
   308 	TFsTreeItemId AppendNodeToListL( TDesC* aItemData,
   323 									 TFsTreeItemId aParentNode,
   309 									 TFsTreeItemId aParentNode,
   324 									 CAlfTexture* aIcon,
   310 									 CAlfTexture* aIcon,
   325 									 TUint aUnreadCnt);
   311 									 TUint aUnreadCnt);
   326 
   312 
   327 	TFsTreeItemId AppendItemToListFromResourceL( TInt aResourceId, 
   313 	TFsTreeItemId AppendItemToListFromResourceL( TInt aResourceId,
   328 												 TFsTreeItemId aParentNode,
   314 												 TFsTreeItemId aParentNode,
   329 												 CAlfTexture* aIcon,
   315 												 CAlfTexture* aIcon,
   330                                                  TBool aAllowRefresh,
   316                                                  TBool aAllowRefresh,
   331                                                  TUint aUnreadCnt = 0);
   317                                                  TUint aUnreadCnt = 0);
   332 	
   318 
   333 	TFsTreeItemId AppendItemToListL( TDesC* aItemData, 
   319 	TFsTreeItemId AppendItemToListL( TDesC* aItemData,
   334 									 TFsTreeItemId aParentNode,
   320 									 TFsTreeItemId aParentNode,
   335 									 CAlfTexture* aIcon,
   321 									 CAlfTexture* aIcon,
   336                                      TBool aAllowRefresh,
   322                                      TBool aAllowRefresh,
   337                                      TUint aUnreadCnt = 0);
   323                                      TUint aUnreadCnt = 0);
   338 														
   324 
   339 	void CreatePlainItemLC2( const TDesC* aItemDataBuff,
   325 	void CreatePlainItemLC2( const TDesC* aItemDataBuff,
   340                              CFsTreePlainOneLineItemData* &aItemData,
   326                              CFsTreePlainOneLineItemData* &aItemData,
   341                              CFsTreePlainOneLineItemVisualizer* &aItemVisualizer,
   327                              CFsTreePlainOneLineItemVisualizer* &aItemVisualizer,
   342                              CAlfTexture* aIcon );
   328                              CAlfTexture* aIcon );
   343 	void CreatePlainNodeLC2( TDesC* aItemDataBuff,
   329 	void CreatePlainNodeLC2( TDesC* aItemDataBuff,
   369     void UpdateToolbarButtons();
   355     void UpdateToolbarButtons();
   370 
   356 
   371 	// Check wheter all list nodes are expanded or collapsed
   357 	// Check wheter all list nodes are expanded or collapsed
   372 	TBool AllNodesCollapsed() const;
   358 	TBool AllNodesCollapsed() const;
   373 	TBool AllNodesExpanded( TFsTreeItemId aParentNodeId = KFsTreeRootID ) const;
   359 	TBool AllNodesExpanded( TFsTreeItemId aParentNodeId = KFsTreeRootID ) const;
   374 	
   360 
   375 	// Recursive function to get item's root level parent
   361 	// Recursive function to get item's root level parent
   376 	TFsTreeItemId GetRootParent( const TFsTreeItemId aItemId ) const;
   362 	TFsTreeItemId GetRootParent( const TFsTreeItemId aItemId ) const;
   377 	
   363 
   378     void DoFirstStartL();
   364     void DoFirstStartL();
   379     //<cmail>
       
   380     void SetHeaderTextAttributesL();
   365     void SetHeaderTextAttributesL();
   381     void ConnectToMailboxL();
   366     void ConnectToMailboxL();
   382     void DisconnectFromMailboxL();
   367     void DisconnectFromMailboxL();
   383     TBool CbaButtonPressed( TPoint aPosition );
   368     TBool CbaButtonPressed( TPoint aPosition );
   384     void GetCbaRects( TRect& aLeftCbaRect, TRect&  aRightCbaRect );
   369     void GetCbaRects( TRect& aLeftCbaRect, TRect&  aRightCbaRect );
   385     TBool IsAreaSideRightPaneActive();
   370     TBool IsAreaSideRightPaneActive();
   386     //</cmail>
   371 
   387 	
       
   388 private:
   372 private:
   389     
   373 
   390     // Array of list item infos
   374     // Array of list item infos
   391     RPointerArray< CFsTreePlainOneLineItemData > iListItemDatas;
   375     RPointerArray< CFsTreePlainOneLineItemData > iListItemDatas;
   392     
   376 
   393 private: // Typedefs and member variables
   377 private: // Typedefs and member variables
   394 	// Array type for the list icons
   378 	// Array type for the list icons
   395 	typedef RPointerArray<CAlfTexture> TFsEmailFolderListIconArray;
   379 	typedef RPointerArray<CAlfTexture> TFsEmailFolderListIconArray;
       
   380 	// Array type for the sort list icons
       
   381 	typedef RPointerArray<CAlfTexture> TFsEmailSortListIconArray;
   396 
   382 
   397 	// ALF environment
   383 	// ALF environment
   398     CAlfEnv& iEnv;
   384     CAlfEnv& iEnv;
   399 
   385 
   400 	// View layouts
   386 	// View layouts
   405 
   391 
   406 	// ALF visuals etc. for list background and header
   392 	// ALF visuals etc. for list background and header
   407 	CAlfImageVisual* iListBgImageVisual;
   393 	CAlfImageVisual* iListBgImageVisual;
   408 	CAlfImageVisual* iHeaderImageVisual;
   394 	CAlfImageVisual* iHeaderImageVisual;
   409     CAlfTextVisual* iHeaderTextVisual;
   395     CAlfTextVisual* iHeaderTextVisual;
   410 	// <cmail>
       
   411     //CAlfImageBrush* iBackgroundBrush;
       
   412     CAlfFrameBrush* iBackgroundBrush;
   396     CAlfFrameBrush* iBackgroundBrush;
   413 	// </cmail>
   397     CAlfShadowBorderBrush* iShadowBrush;
   414 	
   398 
   415 // <cmail> Touch
       
   416 	// ALF visual for background
   399 	// ALF visual for background
   417 	CAlfVisual* iFaderVisual;
   400 	CAlfVisual* iFaderVisual;
   418 // </cmail>
       
   419 
   401 
   420 	// Pointers to control and model
   402 	// Pointers to control and model
   421     CFSEmailUiFolderListControl* iControl;	// not owned (owned by ALF env)
   403     CFSEmailUiFolderListControl* iControl;	// not owned (owned by ALF env)
   422     CFSEmailUiFolderListModel* iModel;		// owned
   404     CFSEmailUiFolderListModel* iModel;		// owned
   423 
   405 
   424 	// Callback pointers
   406 	// Callback pointers
   425 	MFSEmailUiFolderListCallback* iCallback;
   407 	MFSEmailUiFolderListCallback* iCallback;
   426 	MFSEmailUiSortListCallback* iSortListCallback;
   408 	MFSEmailUiSortListCallback* iSortListCallback;
   427 	
   409 
   428 	// Type of the currently visible folder in mail list
   410 	// Type of the currently visible folder in mail list
   429 	TFSFolderType iCurrentFolderType;
   411 	TFSFolderType iCurrentFolderType;
   430 	
   412 
   431 	// Custom message ID passed in view activation
   413 	// Custom message ID passed in view activation
   432 	TUid iCustomMessageId;
   414 	TUid iCustomMessageId;
   433 	
   415 
   434 	// List/view size attributes
   416 	// List/view size attributes
   435    	TRect iScreenRect;
   417    	TRect iScreenRect;
   436 	TRect iCtrlButtonRect;
   418 	TRect iCtrlButtonRect;
   437     TRect iPreviousListRect;
   419     TRect iPreviousListRect;
   438 	TInt iListItemHeight;
   420 	TInt iListItemHeight;
   439 	TInt iListHeaderHeight;
   421 	TInt iListHeaderHeight;
   440     TInt iListSeparatorHeight;
   422     TInt iListSeparatorHeight;
   441 	TSize iListIconSize;
   423 	TSize iListIconSize;
   442 	TSize iPreviousListIconSize;
   424 	TSize iPreviousListIconSize;
   443 	
   425 
   444 	TPoint iPadding;
   426 	TPoint iPadding;
   445 	
   427 
   446 	// ETrue if list shown in fullscreen
   428 	// ETrue if list shown in fullscreen
   447 	TBool iFullScreen;
   429 	TBool iFullScreen;
   448 	
   430 
   449 	// List id of the "More folders" item in folder list
   431 	// List id of the "More folders" item in folder list
   450 	TFsTreeItemId iMoreFoldersItemId;
   432 	TFsTreeItemId iMoreFoldersItemId;
   451 
   433 
   452     // Pointer to the tree list component visualizer.
   434     // Pointer to the tree list component visualizer.
   453     CFsTreeVisualizerBase* iTreeVisualizer;
   435     CFsTreeVisualizerBase* iTreeVisualizer;
   458 	// Mailbox that is currently active in mail list
   440 	// Mailbox that is currently active in mail list
   459  	CFSMailBox* iActiveMailbox;
   441  	CFSMailBox* iActiveMailbox;
   460 
   442 
   461 	// Folder list icons, items not owned (are owned by texture manager)
   443 	// Folder list icons, items not owned (are owned by texture manager)
   462 	TFsEmailFolderListIconArray iIconArray;
   444 	TFsEmailFolderListIconArray iIconArray;
       
   445 
       
   446 	// Sort list icons, items not owned (are owned by texture manager)
       
   447 	TFsEmailSortListIconArray iSortIconArray;
   463 	
   448 	
   464 	// Previously selected items
   449 	// Previously selected items
   465 	TFSMailMsgId iLatestSelectedMoveFolderId;
   450 	TFSMailMsgId iLatestSelectedMoveFolderId;
   466     TFSMailMsgId iCurrentFolderId;
   451     TFSMailMsgId iCurrentFolderId;
   467 	TFSMailSortField iCurrentSortOrder;
   452 	TFSMailSortCriteria iCurrentSortCriteria;
   468 	
   453 
   469 	// Pointers to list items (and nodes)
   454 	// Pointers to list items (and nodes)
   470 	RPointerArray<MFsTreeItemVisualizer> iListItemVisulizers;
   455 	RPointerArray<MFsTreeItemVisualizer> iListItemVisulizers;
   471 	
   456 
   472     // Previous level in list, used in horizontal scrolling
   457     // Previous level in list, used in horizontal scrolling
   473 	TInt iPreviousListLevel;
   458 	TInt iPreviousListLevel;
   474 	
   459 
   475 	TBool iFirstStartCompleted;
   460 	TBool iFirstStartCompleted;
   476 	
   461 
   477 	TBool iPopupListShown;
   462 	TBool iPopupListShown;
   478 
   463 
   479 	//For header text caption
   464 	//For header text caption
   480   	TBool iTitleCaptionVisible;
   465   	TBool iTitleCaptionVisible;
   481 
   466 
   483   	TBool iMoveOrCopyInitiated;
   468   	TBool iMoveOrCopyInitiated;
   484   	// Flag to see if connection was started
   469   	// Flag to see if connection was started
   485   	TBool iWaitingToGoOnline;
   470   	TBool iWaitingToGoOnline;
   486     // Do we need to connect the mailbox before showing the folder list
   471     // Do we need to connect the mailbox before showing the folder list
   487     TBool iNoConnectNeeded;
   472     TBool iNoConnectNeeded;
   488 	
   473 
   489 	// Should we use expansion animation for the next transition effect
   474 	// Should we use expansion animation for the next transition effect
   490 	TBool iAnimateNextActivation;
   475 	TBool iAnimateNextActivation;
   491 	
   476 
   492 	CAsyncCallBack* iAsyncCallback;
   477 	CAsyncCallBack* iAsyncCallback;
   493 	
   478 
   494 	TBool iConsumeUntilNextUpEvent;
   479 	TBool iConsumeUntilNextUpEvent;
   495 	};
   480 	};
   496 
   481 
   497 
   482 
   498 #endif //__FREESTYLEEMAILUI_FOLDERLISTVISUALISER_H__
   483 #endif //__FREESTYLEEMAILUI_FOLDERLISTVISUALISER_H__