X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fuisupport%2Fstyledlabel.h;h=de412a871c24ea86f9a06bd7eac6203e128196b2;hp=4eefb6a0c146eb0b48a3fe89674b768f844d6ebe;hb=6ce1966d5d3070ad461a976a2bee7cc28e8b9149;hpb=f662db526c93bd3411509317d665b4f69c6832a0 diff --git a/src/uisupport/styledlabel.h b/src/uisupport/styledlabel.h index 4eefb6a0..de412a87 100644 --- a/src/uisupport/styledlabel.h +++ b/src/uisupport/styledlabel.h @@ -23,6 +23,7 @@ #include +#include "clickable.h" #include "uistyle.h" class StyledLabel : public QFrame { @@ -45,27 +46,35 @@ public: inline bool toolTipEnabled() const { return _toolTipEnabled; } void setToolTipEnabled(bool); +signals: + void clickableActivated(const Clickable &click); + protected: virtual void paintEvent(QPaintEvent *event); virtual void resizeEvent(QResizeEvent *event); + virtual void leaveEvent(QEvent *); + virtual void mouseMoveEvent(QMouseEvent *event); + virtual void mousePressEvent(QMouseEvent *event); - //void mouseMoveEvent(QMouseEvent *event); - //void mousePressEvent(QMouseEvent *event); - //void mouseReleaseEvent(QMouseEvent *event); - //void mouseDoubleClickEvent(QMouseEvent *event); + int posToCursor(const QPointF &pos); private: QSize _sizeHint; QTextOption::WrapMode _wrapMode; Qt::Alignment _alignment; QTextLayout _layout; + ClickableList _clickables; bool _toolTipEnabled; QList _layoutList; + QVector _extraLayoutList; void layout(); void updateSizeHint(); void updateToolTip(); + + void setHoverMode(int start, int length); + void endHoverMode(); }; #endif