--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/messagingappbase/msgeditor/modelinc/MsgEditorModel.h Thu Dec 17 08:44:11 2009 +0200
@@ -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