diff -r 000000000000 -r 72b543305e3a mobilemessaging/postcard/postcardinc/PostcardDocument.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mobilemessaging/postcard/postcardinc/PostcardDocument.h Thu Dec 17 08:44:11 2009 +0200 @@ -0,0 +1,260 @@ +/* +* Copyright (c) 2005 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: +* CPostcardDocument, document class for Postcard application. +* +*/ + + + + +#ifndef __POSTCARDDOCUMENT_H +#define __POSTCARDDOCUMENT_H + +// INCLUDES +#include // CMsvEntry +#include // CMsgEditorDocument + +// CONSTANTS + +// This tell how much of the max MMS size is reserved for greeting and recipient +const TInt KPostcardAddressGreetingOverhead = 2000; +// What's the max. size the greeting text can store itself internally +// (the max. size of sent text is read from central repository) +const TInt KPostcardDefaultGreetingSegment = 512; + +// MACROS + +// DATA TYPES + +enum TPostcardMsgType // Type of the postcard + { + EPostcardNew = 0, + EPostcardDraft, + EPostcardForward, + EPostcardEdit, + EPostcardSendAs, + EPostcardSent + }; + +enum TPostcardPart // Enumerations for different parts of the postcard + { + EPostcardImage = 1, + EPostcardText = 2, + EPostcardRecipient = 4, + EPostcardNone = 8 // Prevents unnecessary icons to be drawn at startup. + }; + +// FUNCTION PROTOTYPES + +// FORWARD DECLARATIONS + +class CMmsClientMtm; +class CBaseMtmUi; +class CMsgMediaResolver; +class CMsgTextUtils; + +// CLASS DECLARATION + +class CPostcardDocument :public CMsgEditorDocument + { + public: // Constructors and destructor + + /** + * Destructor. + */ + ~CPostcardDocument(); + + /** + * C++ constructor + * + * @param aApp Reference to application instance + */ + CPostcardDocument( CEikApplication& aApp ); + + /** + * Factory function to create this object + * + * @param aApp Reference to application instance + */ + static CPostcardDocument* NewL( CEikApplication& aApp ); + + public: // New functions + + /** + * InitializeL + * Creates MediaResolver and MmsData + */ + void InitializeL( RFs& aFs ); + + public: // Virtuals from CMsgEditorDocument + + /** + * DefaultMsgFolder + * Returns default folder for new messages. + * @return ID of the Drafts folder. + */ + TMsvId DefaultMsgFolder() const; + + /** + * DefaultMsgService + * From CMsgEditorDocument + * Returns default message service used by application + * @return TMsvId KMsvLocalServiceIndexEntryId. + */ + TMsvId DefaultMsgService() const; + + /** + * CreateNewL + * From CMsgEditorDocument + * Creates new message. + * A new message of type Postcard is created + * in a destination folder. + * Calls CreateNewL(TMsvId aServiceType, TMsvId aDestination, + * TInt aTypeList). + * @param aService service used for message + * @param aDestFolder folder in which message will be saved eg. + * KMsvDraftEntryIdValue + * @return ID of mail operation. + */ + TMsvId CreateNewL(TMsvId aService, TMsvId aDestFolder); + + /** + * EntryChangedL + * From CMsgEditorDocument + * Called after entry is changed by BaseEditor SetEntry Function. + * From MsgEditorDocument + */ + void EntryChangedL(); + + public: // From CMsgEditorDocument + + /* + * Mtm + * Accessor (Overrides baseeditor) + * Returns CMmsClientMtm reference correctly casted from CBaseMtm + * @param None + * @return Reference to documents CMmsClientMtm + */ + CMmsClientMtm& Mtm(); + + /* + * MtmUi + * Accessor (Overrides baseeditor) + * Returns CMmsMtmUi reference correctly casted from CBaseMtmUi + * @param None + * @return Reference to documents CMmsMtmUi + */ + CBaseMtmUi& MtmUi(); + + public: + + /** + * Get pointer to MediaResolver + * @return Pointer to MediaResolver + */ + inline CMsgMediaResolver* MediaResolver( ) { return iMediaResolver; }; + + /** + * Get pointer to MmsData + * @return Pointer to MmsData + */ + inline CMsgTextUtils* TextUtils( ) { return iTextUtils; }; + + /** + * Messagetype accessor + * + * @return Message type + */ + inline TPostcardMsgType MessageType() const { return iMsgType; }; + + public: // new ones: + + /** + * Sets aPart as changed + */ + void SetChanged( TPostcardPart aPart ); + + /** + * Checks if aPart is changed + */ + TBool Changed( TPostcardPart aPart ) const; + + /** + * ETrue if any part of the postcard has been changed + */ + TBool Modified( ) const; + + /** + * Set whether message is SendAs, Forward, Reply or Open from Draft. + * Function determines it from launch flags & entry flags. + */ + void SetMessageType(); + + /** + * Returns the max size of the message + */ + TInt MaxMessageSize( ) const; + + /** + * Returns the max size of the image (max message - textrecipientoverhead) + */ + TInt MaxImageSize( ) const; + + /** + * Called by Controller so it knows if the app is started from ROM or not + * Returns full filepath to this application + */ + TFileName AppFullName( ); + + /** + * Check if the mimetype is an image + */ + TBool IsImage( const TDataType& aMimeType ); + + /** + * Tells the maximum width and height of the image. + * If image is bigger than that -> scaling is needed + */ + TSize MaxImageDimensions( ); + + protected: // New functions + + /** + * ConstructL + * 2nd phase constructor. + */ + void ConstructL(); + + private: // New Functions + + /** + * Creates a new CPostcardAppUi + */ + CEikAppUi* CreateAppUiL(); + + private: // data + + RFs iFs; + TInt iMsgChanged; + TPostcardMsgType iMsgType; + CMsgMediaResolver* iMediaResolver; + CMsgTextUtils* iTextUtils; + TInt iMaxMessageSize; + }; + + +#endif // __POSTCARDDOCUMENT_H + +// End of file