--- a/emailuis/emailui/inc/FreestyleEmailUiFolderListVisualiser.h Thu Dec 17 08:39:21 2009 +0200
+++ b/emailuis/emailui/inc/FreestyleEmailUiFolderListVisualiser.h Thu Jan 07 12:38:38 2010 +0200
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2007-2008 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007-2008 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"
@@ -15,12 +15,12 @@
*
*/
-
-
+
+
#ifndef __FREESTYLEEMAILUI_FOLDERLISTVISUALISER_H__
#define __FREESTYLEEMAILUI_FOLDERLISTVISUALISER_H__
-
+
#include <e32base.h>
//<cmail>
@@ -37,6 +37,7 @@
class CAlfTextVisual;
class CAlfGridLayout;
class CAlfImageVisual;
+class CAlfShadowBorderBrush;
class CAlfDeckLayout;
class CAlfAnchorLayout;
class CFSEmailUiFolderListControl;
@@ -65,11 +66,8 @@
class CAlfFrameBrush;
-//REMOVE WHEN DONE TESTING
-//class CSimpleAOTest;
-// <cmail> Touch
-class CFSEmailUiFolderListVisualiser : public CFsEmailUiViewBase, public MFsTreeListObserver
-// </cmail>
+class CFSEmailUiFolderListVisualiser : public CFsEmailUiViewBase,
+ public MFsTreeListObserver
{
public: // Data types
enum TExpandCollapseType
@@ -78,7 +76,7 @@
EFolderListCollapse,
EFolderListAutomatic
};
-
+
public: // Construction and destruction
/**
* Destructor
@@ -98,26 +96,20 @@
CFreestyleEmailUiAppUi& aAppUi );
static CFSEmailUiFolderListVisualiser* NewLC( CAlfEnv& aEnv,
CAlfControlGroup& aControlGroup,
- CFreestyleEmailUiAppUi& aAppUi );
+ CFreestyleEmailUiAppUi& aAppUi );
public: // From base class CAknView
void DynInitMenuPaneL(TInt aResourceId, CEikMenuPane* aMenuPane);
void HandleCommandL( TInt aCommand );
TUid Id() const;
- // <cmail> Toolbar
- /*
- void ChildDoActivateL( const TVwsViewId& aPrevViewId,
- TUid aCustomMessageId,
- const TDesC8& aCustomMessage );*/
- // </cmail> Toolbar
- void ChildDoDeactivate();
+ void ChildDoDeactivate();
void DoTransitionEffect( TBool aDirectionOut );
void GetParentLayoutsL( RPointerArray<CAlfVisual>& aLayoutArray ) const;
public: // Own public functions
-
+
virtual TBool HandleWsEventL( const TWsEvent& aEvent );
-
+
// Handle foreground event (called by FreestyleEmailUiMailListVisualiser)
void HandleForegroundEventL();
@@ -133,17 +125,15 @@
* @return ETrue if event was consumed, otherwise EFalse
*/
TBool OfferEventL( const TAlfEvent& aEvent );
-
- // <cmail> Touch
+
/**
- * Handling pointer events.
+ * Handling pointer events.
*
* @param aEvent Event forwarded from control
* @return ETrue if event was consumed, otherwise EFalse
*/
TBool HandlePointerEventL(const TAlfEvent& aEvent);
- // </cmail>
-
+
/**
* Expands or collpases the currently highlighted folder
*/
@@ -166,23 +156,23 @@
void ShowInPopupL( const TFSMailMsgId aFolderId,
MFSEmailUiFolderListCallback* aCallback,
MFsControlButtonInterface* aButton = NULL );
-
+
/**
* Quick and dirty solution to show the sort list with the same list.
* Could be changed to some more elegant implementation (e.g. folder list
* and sort list derive from some generic control base class that
* implements the common operations), if time permits.
*
- * @param aCurrentSortOrder Current sort order in mail list
+ * @param aCurrentSortCriteria Current sort criteria in mail list
* @param aFolderType Folder type of the currently visible folder in mail list
* @param aCallback Call back to inform the result of the sort order query
* @param aButton Control bar button from where the popup is opened
*/
- void ShowSortListPopupL( const TFSMailSortField aCurrentSortOrder,
+ void ShowSortListPopupL( const TFSMailSortCriteria aCurrentSortCriteria,
const TFSFolderType aFolderType,
MFSEmailUiSortListCallback* aCallback,
MFsControlButtonInterface* aButton = NULL );
-
+
/**
* Does a horizontal scroll for the list if needed
*
@@ -194,37 +184,42 @@
/**
* Function to check whether folder list is displaying popup
- */
+ */
TBool IsPopupShown();
/**
* Function to hide popup
- */
+ */
void HidePopupL();
-
+
/**
* From MFsTreeListObserver
*/
-// <cmail> Touch
- void TreeListEventL( const TFsTreeListEvent aEvent,
+ void TreeListEventL( const TFsTreeListEvent aEvent,
const TFsTreeItemId aId = KFsTreeNoneID );
-// </cmail>
// <cmail> Receiving online/offline events
void HandleMailBoxEventL( TFSMailEvent aEvent, TFSMailMsgId aMailbox,
TAny* aParam1, TAny* aParam2, TAny* aParam3 );
// </cmail>
-// <cmail> Toolbar
+
+ /**
+ * From CFsEmailUiViewBase
+ * This method is called from the appui when the focus state is changed.
+ *
+ * @param aVisible Indicates if focus should become visible or removed
+ */
+ void FocusVisibilityChange( TBool aVisible );
private: // from
-
+
/**
* @see CFsEmailUiViewBase::ChildDoActivateL
*/
void ChildDoActivateL( const TVwsViewId& aPrevViewId,
TUid aCustomMessageId,
const TDesC8& aCustomMessage );
-
+
/**
* @see CFsEmailUiViewBase::OfferToolbarEventL
*/
@@ -234,9 +229,7 @@
* @see CFsEmailUiViewBase::ToolbarResourceId
*/
TInt ToolbarResourceId() const;
-
-// </cmail> Toolbar
-
+
private: // Private functions
/**
@@ -249,19 +242,17 @@
* positive if first parameter is greater than second
*/
static TInt CompareFolders( const CFSMailFolder& aFirst, const CFSMailFolder& aSecond );
-
+
// Construction
CFSEmailUiFolderListVisualiser( CAlfEnv& aEnv, CFreestyleEmailUiAppUi &aAppUi, CAlfControlGroup& aControlGroup );
void ConstructL();
void LoadIconsL();
// Internal functions used when showing and hiding the list
- // <cmail>
//void DoShowInPopupL();
void DoShowInPopupL( MFsControlButtonInterface* aButton,
MFSEmailUiFolderListCallback* aFolderCallback,
MFSEmailUiSortListCallback* aSortCallback );
- // </cmail>
void PrepareFolderListL();
void PopulateFolderListL();
void PopulateFolderListDeferred();
@@ -270,15 +261,13 @@
// Recreate list content
void UpdateFolderListL();
void UpdateSortListL();
-
+
// View layout handling and item position calculation
void UpdateListSizeAttributes();
void ResizeListIcons();
void ResizeListItemsL();
void AdaptScreenRectToListContent();
- // <cmail>
void AdjustWidthByContent( TRect& aRect ) const;
- // </cmail>
void SetAnchors();
void SetItemVisualizerPropertiesL( MFsTreeItemVisualizer* aItemVisualizer );
@@ -287,9 +276,6 @@
TRect RightListRectInThisResolution();
TRect FolderListRectInThisResolution();
TRect SortListRectInThisResolution();
- // <cmail>
- //void PopupListWidthHeightInThisResolution( TInt& aWidth, TInt& aHeight );
- // </cmail>
// Handle the selection or cancelation of the list
void HandleSelectionL( TFSEmailUiCtrlBarResponse aSelection );
@@ -303,7 +289,7 @@
void AppendMoreFoldersL();
void AppendMailboxesL();
void AppendSeparatorLineL();
-
+
// Append sort list data
void AppendSortListItemsL();
@@ -313,29 +299,29 @@
TBool aRefreshLastItem );
TFsTreeItemId AppendNodeFolderL( CFSMailFolder* aFolder, TFsTreeItemId aParentNode );
TFsTreeItemId AppendLeafFolderL( CFSMailFolder* aFolder, TFsTreeItemId aParentNode, TBool aAllowRefresh );
-
+
TFsTreeItemId AppendNodeToListFromResourceL( TInt aResourceId,
TFsTreeItemId aParentNode,
CAlfTexture* aIcon,
TUint aUnreadCnt = 0);
-
+
TFsTreeItemId AppendNodeToListL( TDesC* aItemData,
TFsTreeItemId aParentNode,
CAlfTexture* aIcon,
TUint aUnreadCnt);
- TFsTreeItemId AppendItemToListFromResourceL( TInt aResourceId,
+ TFsTreeItemId AppendItemToListFromResourceL( TInt aResourceId,
TFsTreeItemId aParentNode,
CAlfTexture* aIcon,
TBool aAllowRefresh,
TUint aUnreadCnt = 0);
-
- TFsTreeItemId AppendItemToListL( TDesC* aItemData,
+
+ TFsTreeItemId AppendItemToListL( TDesC* aItemData,
TFsTreeItemId aParentNode,
CAlfTexture* aIcon,
TBool aAllowRefresh,
TUint aUnreadCnt = 0);
-
+
void CreatePlainItemLC2( const TDesC* aItemDataBuff,
CFsTreePlainOneLineItemData* &aItemData,
CFsTreePlainOneLineItemVisualizer* &aItemVisualizer,
@@ -371,28 +357,28 @@
// Check wheter all list nodes are expanded or collapsed
TBool AllNodesCollapsed() const;
TBool AllNodesExpanded( TFsTreeItemId aParentNodeId = KFsTreeRootID ) const;
-
+
// Recursive function to get item's root level parent
TFsTreeItemId GetRootParent( const TFsTreeItemId aItemId ) const;
-
+
void DoFirstStartL();
- //<cmail>
void SetHeaderTextAttributesL();
void ConnectToMailboxL();
void DisconnectFromMailboxL();
TBool CbaButtonPressed( TPoint aPosition );
void GetCbaRects( TRect& aLeftCbaRect, TRect& aRightCbaRect );
TBool IsAreaSideRightPaneActive();
- //</cmail>
-
+
private:
-
+
// Array of list item infos
RPointerArray< CFsTreePlainOneLineItemData > iListItemDatas;
-
+
private: // Typedefs and member variables
// Array type for the list icons
typedef RPointerArray<CAlfTexture> TFsEmailFolderListIconArray;
+ // Array type for the sort list icons
+ typedef RPointerArray<CAlfTexture> TFsEmailSortListIconArray;
// ALF environment
CAlfEnv& iEnv;
@@ -407,15 +393,11 @@
CAlfImageVisual* iListBgImageVisual;
CAlfImageVisual* iHeaderImageVisual;
CAlfTextVisual* iHeaderTextVisual;
- // <cmail>
- //CAlfImageBrush* iBackgroundBrush;
CAlfFrameBrush* iBackgroundBrush;
- // </cmail>
-
-// <cmail> Touch
+ CAlfShadowBorderBrush* iShadowBrush;
+
// ALF visual for background
CAlfVisual* iFaderVisual;
-// </cmail>
// Pointers to control and model
CFSEmailUiFolderListControl* iControl; // not owned (owned by ALF env)
@@ -424,13 +406,13 @@
// Callback pointers
MFSEmailUiFolderListCallback* iCallback;
MFSEmailUiSortListCallback* iSortListCallback;
-
+
// Type of the currently visible folder in mail list
TFSFolderType iCurrentFolderType;
-
+
// Custom message ID passed in view activation
TUid iCustomMessageId;
-
+
// List/view size attributes
TRect iScreenRect;
TRect iCtrlButtonRect;
@@ -440,12 +422,12 @@
TInt iListSeparatorHeight;
TSize iListIconSize;
TSize iPreviousListIconSize;
-
+
TPoint iPadding;
-
+
// ETrue if list shown in fullscreen
TBool iFullScreen;
-
+
// List id of the "More folders" item in folder list
TFsTreeItemId iMoreFoldersItemId;
@@ -460,20 +442,23 @@
// Folder list icons, items not owned (are owned by texture manager)
TFsEmailFolderListIconArray iIconArray;
+
+ // Sort list icons, items not owned (are owned by texture manager)
+ TFsEmailSortListIconArray iSortIconArray;
// Previously selected items
TFSMailMsgId iLatestSelectedMoveFolderId;
TFSMailMsgId iCurrentFolderId;
- TFSMailSortField iCurrentSortOrder;
-
+ TFSMailSortCriteria iCurrentSortCriteria;
+
// Pointers to list items (and nodes)
RPointerArray<MFsTreeItemVisualizer> iListItemVisulizers;
-
+
// Previous level in list, used in horizontal scrolling
TInt iPreviousListLevel;
-
+
TBool iFirstStartCompleted;
-
+
TBool iPopupListShown;
//For header text caption
@@ -485,12 +470,12 @@
TBool iWaitingToGoOnline;
// Do we need to connect the mailbox before showing the folder list
TBool iNoConnectNeeded;
-
+
// Should we use expansion animation for the next transition effect
TBool iAnimateNextActivation;
-
+
CAsyncCallBack* iAsyncCallback;
-
+
TBool iConsumeUntilNextUpEvent;
};