diff -r ebe688cedc25 -r 7fdbb852d323 messagingappbase/msgeditor/modelinc/MsgEditorModel.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/messagingappbase/msgeditor/modelinc/MsgEditorModel.h Wed Sep 01 12:31:54 2010 +0100 @@ -0,0 +1,182 @@ +/* +* 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: MsgEditorModel declaration +* +*/ + + + +#ifndef INC_MSGEDITORMODEL_H +#define INC_MSGEDITORMODEL_H + +// ========== INCLUDE FILES ================================ + +// ========== CONSTANTS ==================================== + +// ========== MACROS ======================================= + +// ========== DATA TYPES =================================== + +// ========== FUNCTION PROTOTYPES ========================== + +// ========== FORWARD DECLARATIONS ========================= + +class CBaseMtm; +class CClientMtmRegistry; +class CMtmUiRegistry; +class CMtmUiDataRegistry; +class CBaseMtmUi; +class CBaseMtmUiData; +class MMsgEditorModelObserver; + +// ========== CLASS DECLARATION ============================ + +/** + * Interface for message editor/viewer model module. + * + */ +class CMsgEditorModel : public CBase, public MMsvSessionObserver +{ + +public: // new functions + + /** + * Constructor. + */ + CMsgEditorModel(); + + /** + * Destructor. + */ + ~CMsgEditorModel(); + + /** + * 2nd phase constructor. + */ + void ConstructL(); + + /** + * Set up current message entry, creates a real connection between current + * editor/viewer session and an message entry to be displayed or edited. + * @param aEntryId + */ + void SetEntryL(TMsvId aEntryId); + + /** + * Loads client and ui mtm's according to given message type. + */ + void PrepareMtmL(const TUid aMtmType); + + /** + * Return reference to current session. + * @return + */ + inline CMsvSession& Session() const; + + /** + * Return reference to mtm. + * @return + */ + inline CBaseMtm& Mtm() const; + + /** + * Return reference to mtm ui. + * @return + */ + CBaseMtmUi& MtmUiL(); + + /** + * Return reference to mtm ui data. + * @return + */ + CBaseMtmUiData& MtmUiDataL(); + + /** + * Return current message's entry. + * @return + */ + inline const TMsvEntry& Entry() const; + + /** + * Set the editor model observer. + * @param aObserver + */ + inline void SetModelObserver(MMsgEditorModelObserver* aObserver); + + /** + * Returns the current (the most recently known) status of the media. + * @return + */ + inline TBool MediaAvailable() const; + + /** + * Allows changing the media availability flag stored in model. + * @param aMediaAvailable + */ + inline void SetMediaAvailable(TBool aMediaAvailable); + + /** + * + */ + void Wait(); + +public: // new public data member + + TInt iLaunchWait; + +private: // from MMsvSessionObserver + + /** + * Handles session event observer, and call event handling functions in + * observer. Note that if additional session event handlers are defined in + * the session, they are called before this function (as this is the + * main session observer). + + * Note that the same event (especially EMsvEntriesChanged) may happen + * several times successively when the message is saved. This is probably + * because the editor may modify the same entry several times when saving + * message. + * + * @param aEvent + * @param aArg1 + * @param aArg2 + * @param aArg3 + */ + void HandleSessionEventL(TMsvSessionEvent aEvent, TAny* aArg1, TAny* aArg2, TAny* aArg3); + + /** + * + */ + void CompleteConstructL(); + +private: // data + + CMsvSession* iSession; + CBaseMtm* iMtm; + CClientMtmRegistry* iMtmReg; + CMtmUiRegistry* iMtmUiReg; + CMtmUiDataRegistry* iMtmUiDataReg; + CBaseMtmUi* iMtmUi; + MMsgEditorModelObserver* iModelObserver; + TBool iMediaAvailable; + TBool iWait; + CBaseMtmUiData* iMtmUiData; + +}; + +#include "MsgEditorModel.inl" + +#endif + +// End of File