diff -r 000000000000 -r 8466d47a6819 emailuis/emailui/inc/FreestyleEmailUiDownloadManagerVisualiser.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/emailuis/emailui/inc/FreestyleEmailUiDownloadManagerVisualiser.h Thu Dec 17 08:39:21 2009 +0200 @@ -0,0 +1,151 @@ +/* +* 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: FreestyleEmailUi download manager visualiser definition +* +*/ + + + +#ifndef __FREESTYLEEMAILUI_DOWNLOADMANAGERVISUALISER_H__ +#define __FREESTYLEEMAILUI_DOWNLOADMANAGERVISUALISER_H__ + +// SYSTEM INCLUDES +// +#include "fstreelistconstants.h" +#include "fstreelistobserver.h" +// + +// INTERNAL INCLUDES +#include "FreestyleEmailUiViewBase.h" +#include "FreestyleEmailUiAttachmentsListModel.h" + +// FORWARD DECLARATIONS +class CAlfDeckLayout; +class CAlfAnchorLayout; +class CFsTreeList; +class CFsTreeVisualizerBase; +class CFreestyleEmailUiDownloadManagerControl; +class CFreestyleEmailUiAppUi; +class CFsControlBar; +class CFSEmailUiDownloadManagerModel; + +/** + * Download manager visualiser. + */ +class CFSEmailUiDownloadManagerVisualiser : public CFsEmailUiViewBase, + public MFSEmailUiAttachmentsStatusObserver, public MFsTreeListObserver + { +public: + static CFSEmailUiDownloadManagerVisualiser* NewL(CAlfEnv& aEnv, CFreestyleEmailUiAppUi* aAppUi, CAlfControlGroup& aControlGroup); + static CFSEmailUiDownloadManagerVisualiser* NewLC(CAlfEnv& aEnv, CFreestyleEmailUiAppUi* aAppUi, CAlfControlGroup& aControlGroup); + virtual ~CFSEmailUiDownloadManagerVisualiser(); + + // from MFSEmailUiAttachmentsStatusObserver + virtual void DownloadStatusChangedL( TInt aIndex ); + + // from MFsTreeListObserver + // Touch + virtual void TreeListEventL( const TFsTreeListEvent aEvent, + const TFsTreeItemId aId = KFsTreeNoneID ); + // + + // From CAknView + TUid Id() const; + // Toolbar + /*void DoActivateL(const TVwsViewId& aPrevViewId, + TUid aCustomMessageId, + const TDesC8& aCustomMessage);*/ + // Toolbar + void ChildDoDeactivate(); + void DynInitMenuPaneL(TInt aResourceId, CEikMenuPane* aMenuPane); + + // From CFsEmailUiViewBase + + void HandleDynamicVariantSwitchL( CFsEmailUiViewBase::TDynamicSwitchType aType ); + void HandleDynamicVariantSwitchOnBackgroundL( CFsEmailUiViewBase::TDynamicSwitchType aType ); + void GetParentLayoutsL( RPointerArray& aLayoutArray ) const; + + // Refresh + void RefreshL(); + + // Mail list current model data + CFSEmailUiDownloadManagerModel* Model(); + + // Highlighted index + TInt HighlightedIndex(); + + void ReScaleUiL(); + void ResetColorsL(); + void SetMskL(); + // Event handling forwarded from control + TBool OfferEventL( const TAlfEvent& aEvent ); + void HandleCommandL(TInt aCommand); + + CAlfControl* ViewerControl(); + + void HandleMailBoxEventL( TFSMailEvent aEvent, TFSMailMsgId aMailbox, + TAny* aParam1, TAny* /*aParam2*/, TAny* /*aParam3*/ ); + +// Toolbar +private: // from + + /** + * @see CFsEmailUiViewBase::ChildDoActivateL + */ + void ChildDoActivateL( const TVwsViewId& aPrevViewId, + TUid aCustomMessageId, + const TDesC8& aCustomMessage ); + +// Toolbar + +private: + CFSEmailUiDownloadManagerVisualiser( CAlfEnv& aEnv, + CFreestyleEmailUiAppUi* aAppUi, CAlfControlGroup& aControlGroup ); + void ConstructL(); + + TBool IsCommandAvailableOnItem( TInt aCommandId, const TAttachmentData* aFocusedItem ) const; + HBufC* CreateSecondLineTextLC( const TAttachmentData& aAttachment ) const; + void TryToOpenItemL( TFsTreeItemId aId ); + void RemoveAttachmentL( TFsTreeItemId aId ); + void LaunchActionMenuL(); + + void ShortcutCollapseExpandAllToggleL(); + void GoToTopL(); + void GoToBottomL(); + + void SetMailboxNameToStatusPaneL(); + +private: + // Reference to Alf environment + CAlfEnv& iEnv; + + // Screen control + CFreestyleEmailUiDownloadManagerControl* iScreenControl; + + // Control bar + CFsControlBar* iControlBar; + + // Mail List + CFsTreeList* iDownloadManagerList; + CFSEmailUiDownloadManagerModel* iModel; + CFsTreeList* iDownloadsList; + CAlfDeckLayout* iListLayout; + CFsTreeVisualizerBase* iDownloadManagerTreeListVisualizer; + TFsTreeItemId iHeaderItemId; + }; + + + + +#endif