--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mobilemessaging/unieditor/utils/inc/UniObjectsModel.h Thu Dec 17 08:44:11 2009 +0200
@@ -0,0 +1,188 @@
+/*
+* Copyright (c) 2005-2007 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: Unified Message Editor objects model.
+*
+*/
+
+
+#ifndef C_UNIOBJECTSMODEL_H
+#define C_UNIOBJECTSMODEL_H
+
+// ========== INCLUDE FILES ================================
+
+#include <MsgAttachmentModel.h>
+#include <MsgAttachmentUtils.h>
+#include <unimodelconst.h>
+
+// ========== CONSTANTS ====================================
+
+// ========== MACROS =======================================
+
+// ========== FUNCTION PROTOTYPES ==========================
+
+// ========== FORWARD DECLARATIONS =========================
+
+class CUniDataUtils;
+class CUniObject;
+class CUniObjectsInfo;
+
+// ========== DATA TYPES ===================================
+
+// ========== CLASS DECLARATION ============================
+
+/**
+* Unified Editor objects model derived from attachment model.
+*
+* @lib UniUtils.lib
+*
+* @since S60 3.2
+*/
+NONSHARABLE_CLASS( CUniObjectsModel ) : public CMsgAttachmentModel
+ {
+
+ public:
+
+ /**
+ * Factory method that creates this object.
+ *
+ * @since S60 3.2
+ *
+ * @param aReadOnly - Boolean flag.
+ */
+ IMPORT_C static CMsgAttachmentModel* NewL( TBool aReadOnly );
+
+ /**
+ * Destructor
+ *
+ * @since S60 3.2
+ */
+ virtual ~CUniObjectsModel();
+
+ /**
+ * Adds object to the internal array. Notifies attachment model
+ * observer with EMsgAttachmentAdded parameter.
+ * Overrides CMsgAttachmentModel::AddAttachmentL.
+ *
+ * @since S60 3.2
+ *
+ * @param aObject Object to be added.
+ * @param aDRMType DRM type of the object.
+ * @param aAttachmentObject ETrue is object is attachment. Otherwise EFalse.
+ * @param aSlideNumber Slide number where object is located.
+ * @param aIndex Index of the object.
+ *
+ * @return Pointer to the added object's attachment info.
+ */
+ CUniObjectsInfo* AddObjectL(
+ CUniObject& aObject,
+ TInt aDRMType,
+ TBool aAttachmentObject,
+ TInt aSlideNumber,
+ TInt aIndex = KErrNotFound );
+
+ /**
+ * Adds empty slide to the internal array. Notifies attachment model
+ * observer with EMsgAttachmentAdded parameter.
+ *
+ * @since S60 3.2
+ *
+ * @param aEmptySlideName Empty slide name string.
+ * @param aIndex Index of the object.
+ *
+ * @return Pointer to the added object's attachment info.
+ */
+ CUniObjectsInfo* AddEmptySlideL(
+ const TDesC& aEmptySlideName,
+ TInt aIndex = KErrNotFound );
+
+ /**
+ * Deletes attachment from internal array. Notifies attachment model
+ * observer with EMsgAttachmentRemoved parameter if aNotifyObserver flag is set.
+ *
+ * @since S60 3.2
+ *
+ * @param aIndex - index of the object to be deleted.
+ * @param aNotifyObserver - Boolean flag to determine whether
+ * observer is notified about model change.
+ */
+ void DeleteObjectL( TInt aIndex, TBool aNotifyObserver );
+
+ /**
+ * Change order of attachment.
+ *
+ * @since S60 3.2
+ *
+ * @param aIndex - Index of the attachment
+ * @param aNewPosition - Index of the new position of the attachment.
+ */
+ void ChangeOrderL (TInt aIndex, TInt aNewPosition);
+
+ /**
+ * Notify observer about the order change.
+ *
+ * @since S60 3.2
+ *
+ * @param aLayout - New layout of the message.
+ */
+ void NotifyChangeOrderL ( TUniLayout aLayout );
+
+ /**
+ * Loads mms slide bitmap.
+ *
+ * @since S60 3.2
+ *
+ * @return bitmap.
+ */
+ CGulIcon* BitmapForMmsSlideL();
+
+ protected:
+
+ /**
+ * Constructor.
+ *
+ * @since S60 3.2
+ *
+ * @param aReadOnly
+ */
+ CUniObjectsModel( TBool aReadOnly );
+
+ private:
+
+ /**
+ * Creates new attachment (object) info object.
+ *
+ * @param aFileName
+ * @param aSize
+ * @param aFetched
+ * @param aAttachedThisSession
+ * @param aDataType
+ * @param aDRMDataType
+ */
+ virtual CMsgAttachmentInfo* CreateNewInfoL(
+ const TDesC& aFileName,
+ TInt aSize,
+ TBool aFetched,
+ TBool aAttachedThisSession,
+ TMsvAttachmentId aAttachmentId,
+ const TDataType& aDataType,
+ CMsgAttachmentInfo::TDRMDataType aDRMDataType );
+
+ private:
+
+ CGulIcon* iMmsSlideIcon;
+ };
+
+#endif // C_UNIOBJECTSMODEL_H
+
+// End of File