--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/messagingapp/msgui/conversationview/inc/msgconversationwidget.h Fri Jun 04 10:25:39 2010 +0100
@@ -0,0 +1,449 @@
+/*
+ * Copyright (c) 2009 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:MsgConversationWidget Widget (aka Bubble Widget).
+ *
+ */
+
+#ifndef MSG_CONVERSATIONWIDGET_H
+#define MSG_CONVERSATIONWIDGET_H
+
+// SYSTEM INCLUDES
+#include <hbwidget.h>
+
+// FORWORD DECLARATIONS
+class HbFrameItem;
+class HbIconItem;
+class HbTextItem;
+
+/**
+ * This class represents the custom layouted widget to show
+ * the conversation inside a bubble shape in the conversation view.
+ */
+class MsgConversationWidget: public HbWidget
+{
+Q_OBJECT
+
+Q_ENUMS(SendingState)
+Q_PROPERTY(int priority READ priority WRITE setPriority)
+Q_PROPERTY(bool hasAttachment READ hasAttachment WRITE setAttachment)
+Q_PROPERTY(bool hasImage READ hasImage WRITE setImage)
+Q_PROPERTY(bool hasAudio READ hasAudio WRITE setAudio)
+Q_PROPERTY(bool hasVideo READ hasVideo WRITE setVideo)
+Q_PROPERTY(bool isPlayable READ isPlayable WRITE setPlayable)
+Q_PROPERTY(bool isIncoming READ isIncoming WRITE setIncoming)
+Q_PROPERTY(bool isMMS READ isMMS WRITE setMMS)
+Q_PROPERTY(bool isMMSNotification READ isMMSNotification WRITE setMMSNotification)
+Q_PROPERTY(bool isUnread READ isUnread WRITE setUnread)
+Q_PROPERTY(SendingState sendingState READ sendingState WRITE setSendingState)
+Q_PROPERTY(int notificationState READ notificationState WRITE setNotificationState)
+
+public:
+
+ /**
+ * Constructor
+ * @param parent, reference of QGraphicsItem
+ * default set to 0
+ */
+ MsgConversationWidget(QGraphicsItem * parent = 0);
+
+ /**
+ * Destructor
+ */
+ virtual ~MsgConversationWidget();
+
+public:
+
+ /**
+ * Enum defining Message Sending State
+ * @attention This enum can have values from 0 to 255 only.
+ */
+ enum SendingState
+ {
+ Unknown = 0x00, Sent = 0x01, Sending = 0x02, Pending = 0x03, Failed = 0x04
+ };
+
+ /**
+ * Set subject for this widget
+ * @param QString
+ */
+ void setSubject(const QString &subject);
+
+ /**
+ * Set body text for this widget
+ * @param QString
+ */
+ void setBodyText(const QString &bodyText);
+
+ /**
+ * Set preview icon path for this widget
+ * @param QString
+ */
+ void setPreviewIconPath(const QString& filePath,int msgId);
+
+ /**
+ * Set priority property
+ * @param priority Set high/low/normal priority
+ * @attention Pass high/low/normal priority to this function.
+ * @see ConvergedMessage::Priority
+ */
+ void setPriority(int priority);
+
+ /**
+ * Get priority property
+ * @return Returns high/low/normal priority.
+ * @see ConvergedMessage::Priority
+ */
+ int priority();
+
+ /**
+ * Specify if this widget's message has attachment
+ * @param bool
+ */
+ void setAttachment(bool hasAttachment = true);
+
+ /**
+ * Get to find if this has attachment
+ * @return bool
+ */
+ bool hasAttachment();
+
+ /**
+ * Specify if this widget's message has image
+ * @param bool
+ */
+ void setImage(bool image = true);
+
+ /**
+ * Get to find if this has image file
+ * @return bool
+ */
+ bool hasImage();
+
+ /**
+ * Specify if this widget's message has audio
+ * @param bool
+ */
+ void setAudio(bool hasAudio = true);
+
+ /**
+ * Get to find if this has audio file
+ * @return bool
+ */
+ bool hasAudio();
+
+ /**
+ * Displays audio icon if audio media is present.
+ */
+ void displayAudioIcon(const QString &iconPath = QString());
+
+ /**
+ * Specify if this widget's message has video
+ * @param bool
+ */
+ void setVideo(bool hasVideo = true);
+
+ /**
+ * Get to find if this has video file
+ * @return bool
+ */
+ bool hasVideo();
+
+ /**
+ * Specify if this widget's message has playable content
+ * @param bool
+ */
+ void setPlayable(bool playable = true);
+
+ /**
+ * Get to find if this has playable content
+ * @return bool
+ */
+ bool isPlayable();
+
+ /**
+ * Specify if this widget's message is incoming
+ * @param bool
+ */
+ void setIncoming(bool incoming = true);
+
+ /**
+ * Get to find if this is incoming message
+ * @return bool
+ */
+ bool isIncoming();
+
+ /**
+ * Specify if this widget's message is unread
+ * @param bool
+ */
+ void setUnread(bool unread = true);
+
+ /**
+ * Get to find if this is unread message
+ * @return bool
+ */
+ bool isUnread();
+
+ /**
+ * Set to know if this widget if of type MMS
+ * @return bool
+ */
+ void setMMS(bool isMMS = true);
+
+ /**
+ * Get to find if this widget is of type MMS
+ * @return bool
+ */
+ bool isMMS();
+
+ /**
+ * Set to know if this widget if of type MMS Notification
+ * @return bool
+ */
+ void setMMSNotification(bool isMMSNotification = true);
+
+ /**
+ * Get to find if this widget is of type MMS Notification
+ * @return bool
+ */
+ bool isMMSNotification();
+
+ /**
+ * Set the sending state.
+ * Maps ConvergedMessage::SendingState to MessageState.
+ * @see ConvergedMessage::SendingState
+ */
+ void setSendingState(int state);
+
+ /**
+ * Returns the sending state.
+ * @return Returns one of the states from enum SendingState.
+ */
+ SendingState sendingState();
+
+ /**
+ * Set the notification state.
+ * Maps ConvergedMessage::NotificationState to MessageState.
+ * @see ConvergedMessage::NotificationState
+ */
+ void setNotificationState(int state);
+
+ /**
+ * Returns the notification state.
+ * @return Returns one of the states from enum NotificationState.
+ */
+ int notificationState();
+
+ /**
+ * Sets the Timestamp.
+ * @param timeStamp Timestamp to be set.
+ */
+ void setTimeStamp(const QString &timeStamp);
+
+ /**
+ * Draws the new message frame.
+ */
+ void drawNewItemFrame();
+
+ /**
+ * Draws the normal/highlighted state bubble frame.
+ */
+ void drawBubbleFrame();
+
+ /**
+ * Draws the pressed state bubble frame.
+ */
+ void drawPressedBubbleFrame();
+
+ /**
+ * Function to receive item pressed events.
+ * @see MsgConversationViewItem::pressStateChanged
+ */
+ void pressStateChanged(bool pressed, bool animate);
+
+ /**
+ * Function to reset widget items.
+ */
+ void resetProperties();
+
+ /**
+ * Function to repolish the widget
+ */
+ void repolishWidget();
+
+private:
+
+ /**
+ * Initialize the widget.
+ */
+ void init();
+
+public:
+
+ /**
+ * Enum defining MMS Notification's Msg State
+ * These are added here so that notification state
+ * can be used inside css in future
+ * @attention This enum can have values from 0 to 255 only
+ * Add any new states only at the bottom of this enum
+ */
+ enum NotificationState
+ {
+ NotifUnknown = 0x00,
+ NotifReadyForFetching = 0x01,
+ NotifRetrieving = 0x02,
+ NotifExpired = 0x03,
+ NotifFailed = 0x04,
+ };
+
+private:
+
+ /**
+ * Info if message has attachment.
+ * true if message has attachment else false.
+ */
+ bool mHasAttachment;
+
+ /**
+ * Info if message has image.
+ * true if message has image else false.
+ */
+ bool mHasImage;
+
+ /**
+ * Info if message has audio.
+ * true if message has audio else false.
+ */
+ bool mHasAudio;
+
+ /**
+ * Info if message has video.
+ * true if message has video else false.
+ */
+ bool mHasVideo;
+
+ /**
+ * Info if message is playable.
+ * true if message is playable else false.
+ */
+ bool mIsPlayable;
+
+ /**
+ * Info about received or outgoing message.
+ * true if received message else false.
+ */
+ bool mIncoming;
+
+ /**
+ * Info about message read/unread status.
+ * true if message is unread else false.
+ */
+ bool mUnread;
+
+ /**
+ * Holds info if this widget is MMS
+ */
+ bool mIsMMS;
+
+ /**
+ * Holds info if this widget is MMS Notification
+ */
+ bool mIsMMSNotification;
+
+ /**
+ * Info about message priority.
+ * @attention Stores high/low/normal priority.
+ * @see ConvergedMessage::Priority
+ */
+ int mPriority;
+
+ /**
+ * Holds sending state information.
+ */
+ MsgConversationWidget::SendingState mSendingState;
+
+ /**
+ * Holds Notification state information.
+ */
+ int mNotificationState;
+
+ /**
+ * Graphics Item to hold new message icon.
+ * Owned
+ */
+ HbFrameItem *mNewFrameItem;
+
+ /**
+ * Graphics Item to hold bubble frame.
+ * Owned
+ */
+ HbFrameItem *mBubbleFrameItem;
+
+ /**
+ * Graphics Item to hold subject content.
+ * Owned
+ */
+ HbTextItem *mSubjectTextItem;
+
+ /**
+ * Graphics Item to hold body text content.
+ * Owned
+ */
+ HbTextItem *mBodyTextItem;
+
+ /**
+ * Graphics Item to hold Time stamp.
+ * Owned
+ */
+ HbTextItem *mTimeStampTextItem;
+
+ /**
+ * Graphics Item to hold Icon.
+ * Owned
+ */
+ HbIconItem *mPriorityIconItem;
+
+ /**
+ * Graphics Item to hold Attachment Icon.
+ * Owned
+ */
+ HbIconItem *mAttachmentIconItem;
+
+ /**
+ * Graphics Item to hold Audio Icon.
+ * Owned
+ */
+ HbIconItem *mAudioIconItem;
+
+ /**
+ * Graphics Item to hold Video Icon.
+ * Owned
+ */
+ HbIconItem *mVideoIconItem;
+
+ /**
+ * Graphics Item to hold Play Icon.
+ * Owned
+ */
+ HbIconItem *mPlayIconItem;
+
+ /**
+ * Graphics Item to hold Preview thumbnail.
+ * Owned
+ */
+ HbIconItem *mPreviewIconItem;
+};
+
+#endif // MSG_CONVERSATIONWIDGET_H
+// EOF