emailuis/emailui/inc/FreestyleEmailUiAttachmentsListVisualiser.h
branchRCL_3
changeset 64 3533d4323edc
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/emailuis/emailui/inc/FreestyleEmailUiAttachmentsListVisualiser.h	Wed Sep 01 12:28:57 2010 +0100
@@ -0,0 +1,224 @@
+/*
+* 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 attachments list visualiser definition 
+*
+*/
+
+ 
+    
+#ifndef __FREESTYLEEMAILUI_ATTACHMENTSLISTVISUALISER_H__
+#define __FREESTYLEEMAILUI_ATTACHMENTSLISTVISUALISER_H__
+
+// SYSTEM INCLUDES
+//<cmail>
+#include "fstreelistobserver.h"
+#include "fsccontactactionmenudefines.h"
+//</cmail>
+
+// INTERNAL INCLUDES
+#include "FreestyleEmailUiViewBase.h"
+#include "FreestyleEmailUiAttachmentsListModel.h"
+
+// FORWARD DECLARATIONS
+class CAlfDeckLayout;
+class CAlfAnchorLayout;
+class CFsTreeList;
+class CFsTreeVisualizerBase;
+class CFreestyleEmailUiAttachmentsListControl;
+class CFreestyleEmailUiAppUi;
+class CFsControlBar;
+class CFsTreePlainOneLineNodeVisualizer;
+struct TAttachmentData;
+
+
+/**
+ * Attachment list visualiser.
+ */
+// <cmail>
+class CFSEmailUiAttachmentsListVisualiser : public CFsEmailUiViewBase,
+    public MFSEmailUiAttachmentsStatusObserver, public MFsTreeListObserver, public MFsActionMenuPositionGiver
+    {
+// </cmail>
+public: // constructors and destructor
+
+    /**
+     *  Two-phased constructor.
+     *  
+     * @param aEnv Reference to Alfred environment.
+     * @param aAppUi Pointer to app ui.
+     * @param aControlGroup Reference to visualiser's control group.
+     */
+    static CFSEmailUiAttachmentsListVisualiser* NewL( CAlfEnv& aEnv,
+        CFreestyleEmailUiAppUi* aAppUi, CAlfControlGroup& aControlGroup );
+
+    /**
+     * @see CFSEmailUiAttachmentsListVisualiser::NewL
+     */
+    static CFSEmailUiAttachmentsListVisualiser* NewLC( CAlfEnv& aEnv,
+        CFreestyleEmailUiAppUi* aAppUi, CAlfControlGroup& aControlGroup );
+
+    /** Destructor. */
+    virtual ~CFSEmailUiAttachmentsListVisualiser();
+
+public: // from CAknView
+
+// from base class MFsTreeListObserver
+
+    /** Handles events from the tree list. */
+    // <cmail> Touch
+    void TreeListEventL( const TFsTreeListEvent aEvent, 
+                         const TFsTreeItemId aId,
+                         const TPoint& aPoint );
+    TPoint ActionMenuPosition();
+    // </cmail>
+    TUid Id() const;
+    // <cmail> Toolbar
+    /*void DoActivateL( const TVwsViewId& aPrevViewId, TUid aCustomMessageId,
+        const TDesC8& aCustomMessage );*/
+    // </cmail> Toolbar
+    void ChildDoDeactivate();
+    void DynInitMenuPaneL( TInt aResourceId, CEikMenuPane* aMenuPane );
+
+public: // from CFsEmailUiViewBase
+
+
+	void HandleDynamicVariantSwitchL( TDynamicSwitchType aType );
+    void HandleDynamicVariantSwitchOnBackgroundL( TDynamicSwitchType aType );
+
+    void GetParentLayoutsL( RPointerArray<CAlfVisual>& aLayoutArray ) const;
+
+public: // from MFSEmailUiAttachmentsStatusObserver
+
+    void DownloadStatusChangedL( TInt aIndex );
+
+
+
+public: // new methods
+
+    // Mail list current model data
+    CFSEmailUiAttachmentsListModel* Model();
+
+    // Sets softkeys
+    void SetViewSoftkeysL( TInt aResourceId );	
+
+    void CreateHeadersAndSeparatorsL();
+    void MoveItemToNodeL( TFsTreeItemId aItemId, TFsTreeItemId aTargetNodeId );
+    void SetMskL();
+    // Event handling forwarded from control
+    TBool OfferEventL( const TAlfEvent& aEvent ); 
+    void HandleCommandL( TInt aCommand );
+
+    void HandleMailBoxEventL( TFSMailEvent aEvent, TFSMailMsgId aMailbox,
+    TAny* aParam1, TAny* aParam2, TAny* aParam3 );
+
+// <cmail> Toolbar    
+private: // from
+    
+    /**
+     * @see CFsEmailUiViewBase::ChildDoActivateL
+     */
+    void ChildDoActivateL( const TVwsViewId& aPrevViewId,
+            TUid aCustomMessageId,
+            const TDesC8& aCustomMessage );
+    
+    /**
+     *  @see CFsEmailUiViewBase::OfferToolbarEventL
+     */
+    void OfferToolbarEventL( TInt aCommand );
+
+    /**
+     * @see CFsEmailUiViewBase::ToolbarResourceId
+     */
+    TInt ToolbarResourceId() const;
+// </cmail> Toolbar     
+    
+private: // constructors
+
+    // C++ Constructor.
+    CFSEmailUiAttachmentsListVisualiser( CAlfEnv& aEnv,
+        CFreestyleEmailUiAppUi& aAppUi, CAlfControlGroup& aControlGroup );
+    // Second phase constructor.
+    void ConstructL();
+
+private: // new methods
+
+    // Refresh list, recreates it from empty
+    void RefreshL( TPartData aPart );
+
+    void ReScaleUiL();
+    void ResetColorsL();
+
+    TBool IsCommandAvailableOnItem( TInt aCommandId, const TAttachmentData* aFocusedItem ) const;
+    HBufC* CreateSecondLineTextLC( const TAttachmentData& aAttachment ) const;
+    void TryToOpenItemL( TFsTreeItemId aId );
+    void RemoveAttachmentContentL( TFsTreeItemId aId );
+
+    // launches action menu
+    void LaunchActionMenuL();
+
+    void ShortcutCollapseExpandAllToggleL();
+    void GoToTopL();
+    void GoToBottomL();
+
+    void SetupTitlePaneTextL();
+    
+    //<cmail> Not used anywhere anymore.
+
+    //</cmail>
+    CAlfControl* ViewerControl();
+
+    void DoFirstStartL();
+    void UpdateSize();
+    
+    //<cmail> touch
+    void DoHandleActionL( );    
+    //</cmail> touch
+    
+private: // data
+
+    // Reference to Alf environment
+    CAlfEnv& iEnv;
+
+    // Screen control
+    CFreestyleEmailUiAttachmentsListControl* iScreenControl;
+
+    CFSEmailUiAttachmentsListModel* iModel; 
+    CFsTreeList* iAttachmentsList;
+    CAlfDeckLayout* iListLayout;
+    CAlfAnchorLayout* iAnchorLayout;
+    CFsTreeVisualizerBase* iAttachmentsTreeListVisualizer;
+
+    TFsTreeItemId iDownloadedNode;
+    TFsTreeItemId iNotDownloadedNode;
+
+// <cmail> Prevent Download Manager opening with attachments 
+    //TFsTreeItemId iDownloadManagerLink;
+// </cmail>
+
+    //not owned
+    CFsTreePlainOneLineNodeVisualizer* iDownloadedVisualiser;
+    //not owned
+    CFsTreePlainOneLineNodeVisualizer* iNotDownloadedVisualiser;
+
+    // The text shown in the title pane when this view was activated
+    //<cmail> removed as not used anywhere.
+
+	//</cmail>
+    TBool iFirstStartCompleted;
+    // Flag for embedded message mode
+    TBool iEmbeddedMsgMode;
+    };
+
+
+#endif