#include "icon.h"
+class Action;
class QMenu;
class SystemTray : public QObject {
explicit SystemTray(QWidget *parent);
virtual ~SystemTray();
- virtual void init() {}
+ virtual void init();
+ inline Mode mode() const;
inline State state() const;
inline bool isAlerted() const;
virtual inline bool isSystemTrayAvailable() const;
void setAlert(bool alerted);
- virtual inline void setInhibitActivation();
virtual inline bool isVisible() const { return false; }
- inline bool isActivationInhibited() const;
QWidget *associatedWidget() const;
virtual void setState(State);
virtual void setVisible(bool visible = true);
virtual void setToolTip(const QString &title, const QString &subtitle);
- virtual void showMessage(const QString &title, const QString &message, MessageIcon icon = Information, int millisecondsTimeoutHint = 10000);
+ virtual void showMessage(const QString &title, const QString &message, MessageIcon icon = Information, int msTimeout = 10000, uint notificationId = 0);
+ virtual void closeMessage(uint notificationId) { Q_UNUSED(notificationId) }
signals:
void activated(SystemTray::ActivationReason);
void iconChanged(const Icon &);
+ void animationEnabledChanged(bool);
void toolTipChanged(const QString &title, const QString &subtitle);
- void messageClicked();
+ void messageClicked(uint notificationId);
+ void messageClosed(uint notificationId);
protected slots:
virtual void activate(SystemTray::ActivationReason = Trigger);
protected:
virtual void setMode(Mode mode);
- inline Mode mode() const;
+ inline bool shouldBeVisible() const;
virtual Icon stateIcon() const;
Icon stateIcon(State state) const;
inline QString toolTipTitle() const;
inline QString toolTipSubTitle() const;
inline QMenu *trayMenu() const;
- void setTrayMenu(QMenu *);
- virtual bool eventFilter(QObject *obj, QEvent *event);
+ inline bool animationEnabled() const;
private slots:
+ void minimizeRestore();
+ void trayMenuAboutToShow();
+ void enableAnimationChanged(const QVariant &);
private:
Mode _mode;
State _state;
-
- bool _inhibitActivation;
+ bool _shouldBeVisible;
QString _toolTipTitle, _toolTipSubTitle;
Icon _passiveIcon, _activeIcon, _needsAttentionIcon;
+ bool _animationEnabled;
QMenu *_trayMenu;
QWidget *_associatedWidget;
+ Action *_minimizeRestoreAction;
};
// inlines
bool SystemTray::isSystemTrayAvailable() const { return false; }
bool SystemTray::isAlerted() const { return state() == NeedsAttention; }
-void SystemTray::setInhibitActivation() { _inhibitActivation = true; }
-bool SystemTray::isActivationInhibited() const { return _inhibitActivation; }
SystemTray::Mode SystemTray::mode() const { return _mode; }
SystemTray::State SystemTray::state() const { return _state; }
+bool SystemTray::shouldBeVisible() const { return _shouldBeVisible; }
QMenu *SystemTray::trayMenu() const { return _trayMenu; }
QString SystemTray::toolTipTitle() const { return _toolTipTitle; }
QString SystemTray::toolTipSubTitle() const { return _toolTipSubTitle; }
-
+bool SystemTray::animationEnabled() const { return _animationEnabled; }
#endif