X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fcolumnhandleitem.h;h=2947bba58e0c0332bec5f232746b7c0401e11f41;hp=dc1251201ef2958def88c7021cc4540661daefdb;hb=1b8b7589f2fb30e1b3583a8914dabced8a190655;hpb=9806418efa4c59dae71fd628ea9c57453ca81434 diff --git a/src/qtui/columnhandleitem.h b/src/qtui/columnhandleitem.h index dc125120..2947bba5 100644 --- a/src/qtui/columnhandleitem.h +++ b/src/qtui/columnhandleitem.h @@ -1,5 +1,5 @@ /*************************************************************************** -* Copyright (C) 2005-08 by the Quassel IRC Team * +* Copyright (C) 2005-09 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -26,34 +26,54 @@ #include #include +#include "chatscene.h" + class ColumnHandleItem : public QObject, public QGraphicsItem { Q_OBJECT +#if QT_VERSION >= 0x040600 + Q_INTERFACES(QGraphicsItem) +#endif public: ColumnHandleItem(qreal width, QGraphicsItem *parent = 0); - + virtual inline int type() const { return ChatScene::ColumnHandleType; } + inline qreal width() const { return _width; } - inline QRectF boundingRect() const { return QRectF(0, 0, _width, scene()->height()); } + inline QRectF boundingRect() const { return _boundingRect; } + inline qreal sceneLeft() const { return _sceneLeft; } + inline qreal sceneRight() const { return _sceneRight; } + void setXPos(qreal xpos); - + void setXLimits(qreal min, qreal max); + void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0); - void mouseMoveEvent(QGraphicsSceneMouseEvent *event); - void mousePressEvent(QGraphicsSceneMouseEvent *event); - void mouseReleaseEvent(QGraphicsSceneMouseEvent *event); - + +public slots: void sceneRectChanged(const QRectF &); + inline void setColor(const QColor &color) { _rulerColor = color; } protected: void hoverEnterEvent(QGraphicsSceneHoverEvent *event); void hoverLeaveEvent(QGraphicsSceneHoverEvent *event); + void mouseMoveEvent(QGraphicsSceneMouseEvent *event); + void mousePressEvent(QGraphicsSceneMouseEvent *event); + void mouseReleaseEvent(QGraphicsSceneMouseEvent *event); + +signals: + void positionChanged(qreal x); private slots: void hoverChanged(qreal value); private: qreal _width; + qreal _sceneLeft, _sceneRight; + QRectF _boundingRect; qreal _hover; + bool _moving; + qreal _minXPos, _maxXPos; QTimeLine _timeLine; + QColor _rulerColor; }; #endif