wvuing/wvuiave/AppSrc/CCAMessageWrapper.h
changeset 0 094583676ce7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/wvuing/wvuiave/AppSrc/CCAMessageWrapper.h	Thu Dec 17 08:41:52 2009 +0200
@@ -0,0 +1,187 @@
+/*
+* Copyright (c) 2002-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:  Message wrapper for MCAUiMessage
+*
+*/
+
+
+
+#ifndef CCAMESSAGEWRAPPER_H
+#define CCAMESSAGEWRAPPER_H
+
+//  INCLUDES
+#include <e32base.h>
+#include <frmtlay.h> // TCursorSelection
+
+// FORWARD DECLARATIONS
+class MCAConversationMessage;
+class MCAMessageContainer;
+
+// CLASS DECLARATION
+
+/**
+*  Message wrapper for MCAConversationMessage
+*  stores information about highlight items inside this message etc
+*
+*  @lib chat.app
+*  @since Series 60 3.0
+*/
+class CCAMessageWrapper : public CBase
+    {
+    public:  // Constructors and destructor
+
+        /**
+         * Two-phased constructor.
+         * @param aWrappedMessage Wrapped message
+         * @param aContainer Message container interface
+         *                   (for informing about changed message)
+         */
+        static CCAMessageWrapper* NewL( MCAConversationMessage& aWrappedMessage,
+                                        MCAMessageContainer& aContainer );
+
+        /**
+         * Destructor.
+         */
+        virtual ~CCAMessageWrapper();
+
+    public: // New functions
+
+        /**
+         * @return Modifiable position for thumbnail
+         *         of this message in rich text
+         *
+         * Note that these are not used within this class,
+         * so it's safe to return non-const reference.
+         */
+        TCursorSelection& ThumbPos();
+
+        /**
+         * @return Modifiable selection for this message in rich text
+         *         (for highlighting)
+         *
+         * Note that these are not used within this class,
+         * so it's safe to return non-const reference.
+         */
+        TCursorSelection& Selection();
+
+        /**
+         * @return Modifiable whole selection for this message in rich text.
+         * use this to remove message from rich text
+         * as this contains the whole text.
+         *
+         * Note that these are not used within this class,
+         * so it's safe to return non-const reference.
+         */
+        TCursorSelection& WholeSelection();
+
+        /**
+        * @return Modifiable message selection for this message in rich text.
+        * use this to identify the message part from the nick part
+        *
+        * Note that these are not used within this class,
+        * so it's safe to return non-const reference.
+        */
+        TCursorSelection& MessageSelection();
+
+        /**
+         * @return Modifiable array of highlights for this message
+         *
+         * Note that these are not used within this class,
+         * so it's safe to return non-const reference.
+         */
+        RArray<TCursorSelection>& Highlights();
+
+        /**
+         * @return Modifiable array of highlight types for this message
+         *
+         * Note that these are not used within this class,
+         * so it's safe to return non-const reference.
+         */
+        RArray<TInt>& HighlightTypes();
+
+        /**
+         * @return Wrapped message
+         *
+         * Note that these are not used within this class,
+         * so it's safe to return non-const reference.
+         */
+        MCAConversationMessage& Message();
+
+        /**
+         * Sets wrapper to be inserted or added.
+         * @since S60 v3.2
+         * @param aInserted ETrue to set wrapper inserted,
+         *                  EFalse to set added.
+         */
+        void SetInserted( TBool aInserted );
+
+        /**
+         * Is wrapper inserted or added.
+         * @since S60 v3.2
+         * @return ETrue if this wrapper is inserted,
+         *         EFalse otherwise.
+         */
+        TBool IsInserted() const;
+
+    protected:  // Functions from MCAImageLoaderObserver
+
+        /**
+         * @see MCAImageLoaderObserver
+         */
+        //void Handleplaaplaplaa
+
+    private:
+
+        /**
+         * C++ default constructor.
+         */
+        CCAMessageWrapper( MCAConversationMessage& aWrappedMessage,
+                           MCAMessageContainer& aContainer );
+
+    private:    // Data
+
+        // Note that these shouldn't be used within this class,
+        // these are only contained in this wrapper class
+
+        // Position of thumbnail in rich text
+        TCursorSelection iThumbPosition;
+
+        //owns. wrapped message
+        MCAConversationMessage* iMessage;
+
+        // Highlight selection for this text
+        TCursorSelection iSelection;
+
+        // Whole selection for this text
+        TCursorSelection iWholeSelection;
+
+        // Message part selection for this text
+        TCursorSelection iMessageSelection;
+
+        // Selections inside this message
+        RArray<TCursorSelection> iHighlights;
+
+        // Selection types inside this message
+        RArray<TInt> iTypes;
+
+        // doesn't own, reference to message container interface
+        MCAMessageContainer& iContainer;
+
+        // Is this wrapper inserted (ETrue) or added (EFalse)
+        TBool iInserted;
+    };
+
+#endif      // CCAMESSAGEWRAPPER_H
+
+// End of File