summaryrefslogtreecommitdiffstats
path: root/desktop-widgets/profile/divetooltipitem.h
diff options
context:
space:
mode:
Diffstat (limited to 'desktop-widgets/profile/divetooltipitem.h')
-rw-r--r--desktop-widgets/profile/divetooltipitem.h67
1 files changed, 67 insertions, 0 deletions
diff --git a/desktop-widgets/profile/divetooltipitem.h b/desktop-widgets/profile/divetooltipitem.h
new file mode 100644
index 000000000..4fa7ec2d7
--- /dev/null
+++ b/desktop-widgets/profile/divetooltipitem.h
@@ -0,0 +1,67 @@
+#ifndef DIVETOOLTIPITEM_H
+#define DIVETOOLTIPITEM_H
+
+#include <QGraphicsRectItem>
+#include <QVector>
+#include <QPair>
+#include <QRectF>
+#include <QIcon>
+#include <QTime>
+#include "display.h"
+
+class DiveCartesianAxis;
+class QGraphicsLineItem;
+class QGraphicsSimpleTextItem;
+class QGraphicsPixmapItem;
+struct graphics_context;
+
+/* To use a tooltip, simply ->setToolTip on the QGraphicsItem that you want
+ * or, if it's a "global" tooltip, set it on the mouseMoveEvent of the ProfileGraphicsView.
+ */
+class ToolTipItem : public QObject, public QGraphicsRectItem {
+ Q_OBJECT
+ void updateTitlePosition();
+ Q_PROPERTY(QRectF rect READ rect WRITE setRect)
+
+public:
+ enum Status {
+ COLLAPSED,
+ EXPANDED
+ };
+
+ explicit ToolTipItem(QGraphicsItem *parent = 0);
+ virtual ~ToolTipItem();
+
+ void collapse();
+ void expand();
+ void clear();
+ void addToolTip(const QString &toolTip, const QIcon &icon = QIcon(), const QPixmap &pixmap = QPixmap());
+ void refresh(const QPointF &pos);
+ bool isExpanded() const;
+ void persistPos();
+ void readPos();
+ void mousePressEvent(QGraphicsSceneMouseEvent *event);
+ void mouseReleaseEvent(QGraphicsSceneMouseEvent *event);
+ void setTimeAxis(DiveCartesianAxis *axis);
+ void setPlotInfo(const plot_info &plot);
+ void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);
+public
+slots:
+ void setRect(const QRectF &rect);
+
+private:
+ typedef QPair<QGraphicsPixmapItem *, QGraphicsSimpleTextItem *> ToolTip;
+ QVector<ToolTip> toolTips;
+ ToolTip entryToolTip;
+ QGraphicsSimpleTextItem *title;
+ Status status;
+ QRectF rectangle;
+ QRectF nextRectangle;
+ DiveCartesianAxis *timeAxis;
+ plot_info pInfo;
+ int lastTime;
+ QTime refreshTime;
+ QList<QGraphicsItem*> oldSelection;
+};
+
+#endif // DIVETOOLTIPITEM_H