diff -r ebe688cedc25 -r 7fdbb852d323 email/mail/UtilsSrc/MsgMailDocument.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/email/mail/UtilsSrc/MsgMailDocument.h Wed Sep 01 12:31:54 2010 +0100 @@ -0,0 +1,292 @@ +/* +* 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: Base class for document classes of the +* mail viewer and editor applications +* +*/ + + +#ifndef MSGMAILDOCUMENT_H +#define MSGMAILDOCUMENT_H + +// INCLUDES +#include // CMsgEditorDocument +#include + +// FORWARD DECLARATIONS +class CImHeader; +class CMsgMailViewerSettings; +class TMsvEmailEntry; +class CImEmailMessage; +class CEikMenuPane; +class CMsgMailPreferences; +class CMailMessage; +class CMailCRHandler; + +// CLASS DECLARATION + +/** +* CMsgMailDocument, base class for editor and viewer application document +* classes. +* Defines CMsgMailDocument -class, which is a base class for document +* classes of the mail viewer and editor applications. The document is +* part of the Symbian OS application framework. +*/ +class CMsgMailDocument :public CMsgEditorDocument + { + public: // Constructors and destructor + + // Types of messages to keep count + enum + { + EIndexAddHeaders = 0, + EIndexLast + }; + + /** + * Destructor. + */ + IMPORT_C ~CMsgMailDocument(); + + public: // New functions + + /** + * Sets preferences of the message.. + * @param aModel model. + */ + void SetPreferences(CMsgMailPreferences* aPrefs); + + /** + * Returns header of the message. + * @return CImHeader, header of the message. + */ + CImHeader& HeaderL() const; + + /** + * Get entry of the message. + * @return TMsvEmailEntry entry of the message. + */ + IMPORT_C const TMsvEmailEntry& TMsvEMailEntryL(); + + + /** + * Returns reference to message object. + * @return CImEmailMessage reference to message. + */ + IMPORT_C CImEmailMessage& MessageL(); + + /** + * inline + * Creates new message. + * @see CreateNewL(TMsvId aServiceType, TMsvId aDestination, + * TInt aTypeList, TUid aMtm) + * + * calls CreateNewL(aService, aTarget, aTypeList, KUidMsgTypeSMTP); + */ + TMsvId CreateNewL(TMsvId aService, TMsvId aTarget, + TInt aTypeList); + + /** + * inline + * @return a pointer to Mail Central Repository handler. + * Ownership not transferred. + */ + CMailCRHandler* MailCRHandler() const; + + /** + * Creates new message. + * A new message of given type is created in a destination folder. + * @param aServiceType service used for sending message + * @param aTarget folder in which message will be saved eg. + * KMsvDraftEntryIdValue + * @param aTypeList type of message to be created. + * @see TMsvEmailTypeList + * @param aMtm, message type to be created e.g. KUidMsgTypeSMTP + * @return ID of mail operation. + */ + IMPORT_C TMsvId CreateNewL(TMsvId aServiceType, TMsvId aTarget, + TInt aTypeList, TUid aMtm); + + /** + * Creates new message entry. + * @return new message ID. + */ + TMsvId CreateNewEntryL( TMsvEmailEntry& aEntry ); + + /** + * Returns a preferences object of the document. + * @return A preference object. + */ + CMsgMailPreferences& SendOptions() const; + + /** + * Sets iConfNote flag according to parameter. + * @param aConfNote value to set. + */ + void SetConfirmation(TBool aConfNote); + + /** + * Checks if confirmation note needs to be shown to user. + * @return ETrue if note is needed. + */ + TBool ShowConfirmation() const; + + /** + * Save iHeader information to current store. + */ + void SaveHeaderToStoreL(); + + /** + * Check if we are dealing with a SyncML mail + * @deprecated + * @returns EFalse. + */ + IMPORT_C TBool IsSyncMLMail(); + + /** + * Check file mime type + * @param aFile file to be checked. + * @return TDataType mime type of a file. + */ + IMPORT_C TDataType ResolveMimeType( RFile aFile ); + + /** + * Informs the model of updated central repository value + * Integer override + * @param aMessageType The index of entry. + * @param aValue Received value + */ + TInt SetReceivedIntL( const TUint aMessageType, const TInt aValue ); + + /** + * Informs the model of updated central repository value + * Real override + * @param aMessageType The index of entry. + * @param aValue Received value + */ + TInt SetReceivedRealL( + const TUint aMessageType, const TReal aValue ); + + /** + * Informs the model of updated central repository value + * Binary override + * @param aMessageType The index of entry. + * @param aValue Received value + */ + TInt SetReceivedBinaryL( + const TUint aMessageType, const TDesC8 aValue ); + + /** + * Informs the model of updated central repository value + * String override + * @param aMessageType The index of entry. + * @param aValue Received value + */ + TInt SetReceivedStringL( + const TUint aMessageType, + const TDesC16 aValue ); + + /** + * Check if we are below critical level. + * @param aBytesToWrite bytes to be written. + * @retur ETrue if critical level is not reached. + */ + TBool DiskSpaceBelowCriticalLevelL( TInt aBytesToWrite ); + + protected: // New functions + /** + * Constructor. + * Initializes variables and calls parent class constructor. + * @param aApp application object. + */ + IMPORT_C CMsgMailDocument(CEikApplication& aApp); + + public: // Functions from base classes + + /// From CMsgEditorDocument + TMsvId DefaultMsgService() const; + TMsvId DefaultMsgFolder() const; + TMsvId CreateNewL(TMsvId aService, TMsvId aTarget); + + protected: // Functions from base classes + + /// From CMsgEditorDocument + IMPORT_C void EntryChangedL(); + IMPORT_C CMsvOperation* CreateReplyL( + TMsvId aDest, + TMsvPartList aParts, + TRequestStatus& aStatus ); + IMPORT_C CMsvOperation* CreateForwardL( + TMsvId aDest, + TMsvPartList aParts, + TRequestStatus& aStatus ); + + + private: // implementation + void AddAttachmentNamesToMessageBodyL( const TDesC& aString ); + HBufC* GetAttachmentNamesFromMessageL( + CImEmailMessage* aMailMessage ); + TBool IsPlainHTMLMessageL( CImEmailMessage* aMailMessage ); + static TInt ShowHtmlNoteCallBackL( TAny* aCaller ); + + protected: // Data + /// Own: Message proferences + CMsgMailPreferences* iPrefs; + + // Ref: Mail message + CMailMessage* iViewedMessage; + + // Own: message centry + CMsvEntry* iMessageCEntry; + + // original message id + TMsvId iMessageID; + + // Ref: Mail CR handler + CMailCRHandler* iMailCRHandler; + + private: // Data + /// Own: Mail message + CImEmailMessage* iMessage; + + /// Own: Message header + CImHeader* iHeader; + + /** + * iConfNote flag telling if user needs to be informed + * when attachment added. + */ + TBool iConfNote; + + // AP session + RApaLsSession iApaSession; + + //own + CIdle* iIdle; + + /** + * iShowNoteCallBack is used to show + * html note to user with some delay. + */ + TCallBack iShowNoteCallBack; + + + }; + +#include "MsgMailDocument.inl" // Inline functions + +#endif // MSGMAILDOCUMENT_H + +// End of File +