email/mail/ViewerSrc/MsgMailViewerDocument.h
branchRCL_3
changeset 27 7fdbb852d323
parent 0 72b543305e3a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/email/mail/ViewerSrc/MsgMailViewerDocument.h	Wed Sep 01 12:31:54 2010 +0100
@@ -0,0 +1,230 @@
+/*
+* 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:  Declares document for application.
+*
+*/
+
+#ifndef MSGMAILVIEWERDOCUMENT_H
+#define MSGMAILVIEWERDOCUMENT_H
+
+// INCLUDES
+#include "MsgMailDocument.h"
+#include <cmsvattachment.h>
+
+// CONSTANTS
+
+// FORWARD DECLARATIONS
+class  CEikAppUi;
+class MsgMailDRMHandler;
+class CSendUi;
+class CMailOperation;
+class MMsvProgressReporter;
+
+// CLASS DECLARATION
+
+/**
+*  CMsgMailViewerDocument application class.
+*/
+class CMsgMailViewerDocument : public CMsgMailDocument
+    {
+    public: // Constructors and destructor
+        /**
+        * Two-phased constructor.
+        */
+        static CMsgMailViewerDocument* NewL(CEikApplication& aApp);
+
+        /**
+        * Destructor.
+        */
+        virtual ~CMsgMailViewerDocument();
+
+    public: // New functions
+    	/**
+    	* Add Attachment to viewer attachment model.
+    	* @param aAttachmentInfo attachment info.
+    	* @param aCanBeRemoved ETrue if attachment can be removed
+    	* via attachment view.
+    	*/
+    	void AddAttachmentL( 
+    		CMsvAttachment& aAttachmentInfo, 
+    		TBool aCanBeRemoved );
+        
+        /**
+        * CanSaveFileL
+        * @since Series 60 3.0        
+        * @param aDataType type to be checked.
+        * @return ETrue if system can save attachments with this mime type.
+        */      	
+    	TBool CanSaveFileL( TDataType aDataType );
+    
+        /// Returns character set
+        TUint Charset() const;
+        
+        /**
+        * DeleteMessageL
+        * @since Series 60 3.0        
+		* Delete message from server.
+		* @return ETrue if operation was cancelled.
+        */          
+        TBool DeleteMessageL();
+        
+        /**
+        * FetchAttachmentL
+        * @since Series 60 3.0        
+        * @param aSelection attachments to be fetched.
+        * @param aCompletionStatus operation completion status.
+        * @return CMsvOperation
+        */          
+        CMsvOperation* FetchAttachmentL( 
+            CMsvEntrySelection& aSelection, 
+            TRequestStatus& aCompletionStatus );
+        
+        /**
+        * FetchAttachmentL
+        * @since Series 60 3.0        
+        * @param aSelection attachments to be fetched.
+        * Operation is not completed immediately when this method returns.
+        */         
+        void FetchAttachmentL( CMsvEntrySelection& aSelection );
+
+        /**
+        * FetchAttachmentL
+        * @since Series 60 3.0        
+        * @param aAttachmentId attachment id.
+        * Operation is not completed immediately when this method returns.        
+        */         
+        void FetchAttachmentL( TMsvAttachmentId aAttachmentId );
+
+        /**
+        * RemoveAttachmentL
+        * @since Series 60 3.0 
+        * @param aAttachmentId attachment id.
+        */         
+        void RemoveAttachmentL( TMsvAttachmentId aAttachmentId );
+        
+        /// Sets character set.
+        void SetCharSet(const TUint aCharSet);
+
+        /**
+        * Check connection status.
+        * @return ETrue if connected.
+        **/
+        TBool IsOnLineL() const;
+        
+        /**
+        * RetrieveMessageL
+        * @since Series 60 3.0
+        * Retrieves current mail message from the server.
+        */          
+        void RetrieveMessageL();
+        
+        /**
+        * SendUiL
+        * Returns Send UI instance.
+        * @since Series 60 3.0        
+        */         
+        CSendUi& SendUiL();
+        
+        /**
+        * ShowMessageInfoL
+        * Opens message info popup
+        * @since Series 60 3.0        
+        */         
+        void ShowMessageInfoL();
+               
+        /**
+        * OpenMessageEntryL
+        * @since Series 60 3.0        
+        * Opens entry if it is a message.
+        * @param aEntryId message entry id.
+        * @return ETrue if entry was opened.
+        */      	
+    	TBool OpenMessageEntryL( TMsvId aEntryId );
+		        
+        /**
+        * @return mail message
+        */
+        CMailMessage& MailMessage();
+        
+        /**
+        * MoveRemoteEntryL
+        * Moves remote messages.
+        * @since Series 60 3.0        
+        */          
+        void MoveRemoteEntryL( 
+        	TMsvId aTo, 
+        	TMsvId aService, 
+        	TBool aDestinationIsRemote );
+        
+        /**
+        * UpdateAttachmentModelFromMessageL
+        * Updates attachment model.
+        * @since Series 60 3.0        
+        */         	
+        void UpdateAttachmentModelFromMessageL();
+        
+        /**
+        * ForwardMailMessageL
+        * @param aReporter operation UI progress reporter.
+        * @param aStatus operation status.
+        * @param aSetSuspend ETrue if operation should be suspended.        
+        * @return CMailOperation        
+        * @since Series 60 3.1        
+        */         	        
+        CMailOperation* ForwardMailMessageL( 
+            MMsvProgressReporter& aReporter,
+            TRequestStatus& aStatus, 
+            TBool aSetSuspend );
+
+    private: // implementation
+
+        CMsgMailViewerDocument(CEikApplication& aApp);
+        void ConstructL();
+        void DoInitDRMHandlerL();
+
+    private:
+
+		/// From CEikDocument, create CMsgMailViewerAppUi "App UI" object.
+        CEikAppUi* CreateAppUiL();
+        
+        /// From MMsgAttachmentModelObserver
+        void NotifyChanges(TMsgAttachmentCommand aCommand, 
+            CMsgAttachmentInfo* aAttachmentInfo );
+		/// From MMsgAttachmentModelObserver
+		RFile GetAttachmentFileL( TMsvAttachmentId aId );
+		
+		// From CMsgEditorDocument
+		void EntryChangedL();	
+		
+    private: // Member data
+        /**
+        * Character set used for the message.
+        */
+        TUint iCharSet;
+        		
+		// Own DRM handler
+		MsgMailDRMHandler* iDRMHandler;
+        
+        /**
+        * Own: Pointer to Send UI object
+        */
+        CSendUi* iSendUi;
+    };
+
+#include "MsgMailViewerDocument.inl"
+
+#endif
+
+// End of File
+