X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fsystemtray.h;h=7192b3fe38c88d76260063a19c161a45c748f3ce;hp=b2b0afba7bc3e957faddb05b480242bbeb3ea7fc;hb=2e9492d9ef198bde37da1f858602ab9624c0a12a;hpb=e7d1bc1fa02e1233f140e4b04d99ab8f4685bce5 diff --git a/src/qtui/systemtray.h b/src/qtui/systemtray.h index b2b0afba..7192b3fe 100644 --- a/src/qtui/systemtray.h +++ b/src/qtui/systemtray.h @@ -27,6 +27,7 @@ class QMenu; class SystemTray : public QObject { Q_OBJECT + Q_ENUMS(State Mode MessageIcon ActivationReason) public: enum State { @@ -58,7 +59,7 @@ public: MiddleClick }; - SystemTray(QObject *parent = 0); + explicit SystemTray(QWidget *parent); virtual ~SystemTray(); virtual void init() {} @@ -67,9 +68,12 @@ public: virtual inline bool isSystemTrayAvailable() const; void setAlert(bool alerted); - inline void setInhibitActivation(); + virtual inline void setInhibitActivation(); + virtual inline bool isVisible() const { return false; } inline bool isActivationInhibited() const; + QWidget *associatedWidget() const; + public slots: virtual void setState(State); virtual void setVisible(bool visible = true); @@ -82,6 +86,9 @@ signals: void toolTipChanged(const QString &title, const QString &subtitle); void messageClicked(); +protected slots: + virtual void activate(SystemTray::ActivationReason = Trigger); + protected: virtual void setMode(Mode mode); inline Mode mode() const; @@ -107,6 +114,7 @@ private: Icon _passiveIcon, _activeIcon, _needsAttentionIcon; QMenu *_trayMenu; + QWidget *_associatedWidget; }; // inlines