aboutsummaryrefslogtreecommitdiff
path: root/examples/GuiClient/chatMsgGraphicsItem.h
diff options
context:
space:
mode:
authorManjeet Dahiya <manjeetdahiya@gmail.com>2010-10-11 15:17:44 +0000
committerManjeet Dahiya <manjeetdahiya@gmail.com>2010-10-11 15:17:44 +0000
commitabc6cea5b1bc3018ee20c6a0dd6272059fc34169 (patch)
tree860519d73773e8c99feb1e2d3a906283279615e4 /examples/GuiClient/chatMsgGraphicsItem.h
parent3dbddad62fc6ad3d8a5181c5b66365aa14ef936b (diff)
downloadqxmpp-abc6cea5b1bc3018ee20c6a0dd6272059fc34169.tar.gz
align class name
Diffstat (limited to 'examples/GuiClient/chatMsgGraphicsItem.h')
-rw-r--r--examples/GuiClient/chatMsgGraphicsItem.h87
1 files changed, 87 insertions, 0 deletions
diff --git a/examples/GuiClient/chatMsgGraphicsItem.h b/examples/GuiClient/chatMsgGraphicsItem.h
new file mode 100644
index 00000000..b035ab4e
--- /dev/null
+++ b/examples/GuiClient/chatMsgGraphicsItem.h
@@ -0,0 +1,87 @@
+/*
+ * Copyright (C) 2008-2010 The QXmpp developers
+ *
+ * Author:
+ * Manjeet Dahiya
+ *
+ * Source:
+ * http://code.google.com/p/qxmpp
+ *
+ * This file is a part of QXmpp library.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ */
+
+
+#ifndef MESSAGEGRAPHICSITEM_H
+#define MESSAGEGRAPHICSITEM_H
+
+#include <QGraphicsPathItem>
+
+class chatMsgGraphicsItem : public QGraphicsPathItem
+{
+public:
+ enum Alignment
+ {
+ LEFT = 0,
+ RIGHT
+ };
+
+ chatMsgGraphicsItem(QGraphicsItem * parent = 0);
+ void setText(const QString& text);
+ void setName(const QString& name);
+ QString getName() const;
+ QString getText() const;
+
+ void setMaxWidth(int width);
+ int getMaxWidth() const;
+ void setViewWidth(int viewWidth);
+
+ void setAlignment(Alignment align);
+
+ void setBoxStartLength(int length);
+ int getBoxStartLength() const;
+
+ void setColor(const QColor&);
+
+ virtual QRectF boundingRect() const;
+
+private:
+ void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);
+ QPainterPath createPath();
+ int getTextWidth() const;
+ void calculateWidth();
+ QString getTime() const;
+
+ // max width of bubble including the spike
+ int m_maxWidth;
+
+ // actual width
+ int m_width;
+
+ // height of bubble
+ int m_height;
+ int m_spikeWidth;
+ int m_spikeHeight;
+ int m_cornerRadius;
+ int m_textSpacing;
+ int m_boxStartLength;
+ int m_timeStampWidth;
+ QColor m_color;
+
+ QString m_text;
+ QString m_name;
+ int m_length;
+ Alignment m_alignment;
+};
+
+#endif // MESSAGEGRAPHICSITEM_H