email/mail/ViewerSrc/MsgMailViewerAttachmentsDlg.h
changeset 0 72b543305e3a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/email/mail/ViewerSrc/MsgMailViewerAttachmentsDlg.h	Thu Dec 17 08:44:11 2009 +0200
@@ -0,0 +1,146 @@
+/*
+* Copyright (c) 2002 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:  This dialog is used for Attachment handling.
+*
+*/
+
+
+#ifndef MSGMAILVIEWERATTACHMENTS_H
+#define MSGMAILVIEWERATTACHMENTS_H
+
+//  INCLUDES
+#include <MsgViewAttachmentsDialog.h>
+#include <msvapi.h> // MMsvSessionObserver
+#include "MMsgMailAttachmentDialogObserver.h"
+
+// FORWARD DECLARATIONS
+class CMsgMailViewerDocument;
+
+// CLASS DECLARATION
+
+/**
+*  Dialog for attachments.
+*  Mail attachments are handled from this dialog.
+*/
+class CMsgMailViewerAttachmentsDlg :public CMsgViewAttachmentsDialog, 
+    public MMsvSessionObserver
+    {
+    public:  // Constructors and destructor
+        /**
+        * NewL
+        * @param aTitle Dialog title text
+        * @param aAttachmentModel a reference to attachment model
+        * @param aDocument a reference to app document.
+        */
+        static CMsgMailViewerAttachmentsDlg* NewL(
+        	TDesC& aTitle,
+            CMsgAttachmentModel& aAttachmentModel, 
+            CMsgMailViewerDocument& aDocument,
+            MMsgMailAttachmentDialogObserver& aDlgObserver
+            );
+
+        /**
+        * Destructor
+        */
+        ~CMsgMailViewerAttachmentsDlg();
+        
+        /**
+        * NotifySizeChanged, calls SizeChanged() method of
+        * dialog's listbox
+        * 
+        */
+        void NotifySizeChanged();
+        
+        /**
+        * Updates all attachments fetched flags
+        * in attachment model.
+        * 
+        */
+        void UpdateAttachmentsFetchFlags();
+        
+        /**
+        * From MEikListBoxObserverClass
+        */
+        void HandleListBoxEventL( 
+            CEikListBox* aListBox, TListBoxEvent aEventType );
+        
+        /**
+        * Updates list of attatchments if attatchment 
+        * dialog is opened before all attatchments 
+        * are loaded.
+        */
+        void UpdateAttatchmentListL();
+
+    private: // Implementation
+        void UpdateChangedAttachmentsL(
+            const CMsvEntrySelection& aChangedEntries );
+		void FetchRemoteAttachmentL( TInt aIndex );
+        void UpdateModelInfoL( TInt aIndex );
+        void OpenAttachmentL();
+        void DoFetchOrOpenL( TInt aIndex );
+        void DoProcessCommandL( TInt aCommandId );
+        void DoSendViaL();
+        void PurgeAttachmentL( TInt aIndex );
+        TBool CanRemoveAttachment( CMsgAttachmentInfo& aInfo );
+        void SetMiddleSoftKeyLabelL( 
+            TInt aResourceId, 
+            TInt aCommandId );
+        void UpdateMiddleSoftKeyL( TInt aIndex );   
+        
+         
+    private: // Constructor
+        CMsgMailViewerAttachmentsDlg(
+            TDesC& aTitle,
+            CMsgAttachmentModel& aAttachmentModel, 
+            CMsgMailViewerDocument& aDocument,
+            MMsgMailAttachmentDialogObserver& aDlgObserver );
+        /**
+        * 2nd phase constructor
+        */
+        void ConstructL();
+
+    private: // Functions from base classes
+        /// from CAknDialog
+        void DynInitMenuPaneL(TInt aMenuId, CEikMenuPane* aMenuPane);
+        /// From CCoeControl
+        TKeyResponse OfferKeyEventL(
+            const TKeyEvent& aKeyEvent,TEventCode aType);
+        /// from CAknDialog
+        void ProcessCommandL(TInt aCommandId);
+        /// From CCoeControl
+		void GetHelpContext( TCoeHelpContext& aContext) const;
+        /// From MMsvSessionObserver
+        void HandleSessionEventL(TMsvSessionEvent aEvent, 
+            TAny* aArg1, TAny* aArg2, TAny* aArg3);
+        //From CEikDialog
+        TBool OkToExitL(TInt aButtonId);
+
+    private:    // Data
+        /**
+        * A reference to the application Document.
+        */
+        CMsgMailViewerDocument& iDocument;
+       
+        /// Internal status flags
+        TInt iFlags;
+
+        /**
+        * Ref: application UI object.
+        */
+        MMsgMailAttachmentDialogObserver& iDlgObserver;
+    };
+
+#endif      // MSGMAILVIEWATTACHMENTS_H
+
+// End of File