diff -r ebe688cedc25 -r 7fdbb852d323 email/mail/ViewerSrc/MsgMailViewerDocument.h --- /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 + +// 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 +