blob: de1e87b713d8f969a762b75d3c953dcc6720edeb (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
|
#ifndef XDGSTATUSNOTIFIERITEM_H
#define XDGSTATUSNOTIFIERITEM_H
#include <QObject>
#define XDG_CATEGORY_APPLICATIONSTATUS "ApplicationStatus"
#define XDG_CATEGORY_COMMUNICATIONS "Communications"
#define XDG_CATEGORY_SYSTEMSERVICE "SystemServices"
#define XDG_CATEGORY_HARDWARE "Hardware"
#define XDG_STATUS_PASSIVE "Passive"
#define XDG_STATUS_ACTIVE "Active"
#define XDG_STATUS_NEEDSATTENTION "NeedsAttention"
namespace KaZoe {
class StatusNotifierItem : public QObject
{
Q_OBJECT
/* This properties are used for DBus object connection */
Q_PROPERTY(QString Category READ Category WRITE setCategory NOTIFY CategoryChanged)
Q_PROPERTY(QString Id READ Id WRITE setId NOTIFY IdChanged)
Q_PROPERTY(QString Title READ Title WRITE setTitle NOTIFY TitleChanged)
Q_PROPERTY(QString Status READ Status WRITE setStatus NOTIFY StatusChanged)
Q_PROPERTY(QString WindowId READ WindowId WRITE setWindowId NOTIFY WindowIdChanged)
Q_PROPERTY(QString IconName READ IconName WRITE setIconName NOTIFY IconNameChanged)
Q_PROPERTY(QString OverlayIconName READ OverlayIconName WRITE setOverlayIconName NOTIFY overlayIconNameChanged)
Q_PROPERTY(QString AttentionIconName READ AttentionIconName WRITE setAttentionIconName NOTIFY AttentionIconNameChanged)
Q_PROPERTY(QString AttentionMovieName READ AttentionMovieName WRITE setAttentionMovieName NOTIFY AttentionMovieNameChanged)
/* This properties are used for QML */
Q_PROPERTY(QString category READ Category WRITE setCategory NOTIFY CategoryChanged)
Q_PROPERTY(QString idItem READ Id WRITE setId NOTIFY IdChanged)
Q_PROPERTY(QString title READ Title WRITE setTitle NOTIFY TitleChanged)
Q_PROPERTY(QString status READ Status WRITE setStatus NOTIFY StatusChanged)
Q_PROPERTY(QString windowId READ WindowId WRITE setWindowId NOTIFY WindowIdChanged)
Q_PROPERTY(QString iconName READ IconName WRITE setIconName NOTIFY IconNameChanged)
Q_PROPERTY(QString overlayIconName READ OverlayIconName WRITE setOverlayIconName NOTIFY overlayIconNameChanged)
Q_PROPERTY(QString attentionIconName READ AttentionIconName WRITE setAttentionIconName NOTIFY AttentionIconNameChanged)
Q_PROPERTY(QString attentionMovieName READ AttentionMovieName WRITE setAttentionMovieName NOTIFY AttentionMovieNameChanged)
public:
const QStringList xdgCategories {XDG_CATEGORY_APPLICATIONSTATUS, XDG_CATEGORY_COMMUNICATIONS, XDG_CATEGORY_SYSTEMSERVICE, XDG_CATEGORY_HARDWARE};
const QStringList xdgStatus {XDG_STATUS_PASSIVE, XDG_STATUS_ACTIVE, XDG_STATUS_NEEDSATTENTION};
explicit StatusNotifierItem(QObject *parent = nullptr);
QString Title() const;
void setTitle(const QString &newTitle);
QString IconName() const;
void setIconName(const QString &newIconName);
QString Status() const;
void setStatus(const QString &newStatus);
QString OverlayIconName() const;
void setOverlayIconName(const QString &newOverlayIconName);
QString Category() const;
void setCategory(const QString &newCategory);
QString Id() const;
void setId(const QString &newId);
QString WindowId() const;
void setWindowId(const QString &newWindowId);
QString AttentionIconName() const;
void setAttentionIconName(const QString &newAttentionIconName);
QString AttentionMovieName() const;
void setAttentionMovieName(const QString &newAttentionMovieName);
public slots:
/* DBus API */
virtual void Activate(uint x, uint y);
virtual void SecondaryActivate(uint x, uint y);
signals:
void NewTitle();
void NewIcon();
void NewAttentionIcon();
void NewOverlayIcon();
void NewToolTip();
void NewStatus(QString status);
void TitleChanged();
void IconNameChanged();
void StatusChanged();
void overlayIconNameChanged();
void CategoryChanged();
void IdChanged();
void WindowIdChanged();
void activated(uint x, uint y);
void secondaryActivated(uint x, uint y);
void AttentionIconNameChanged();
void AttentionMovieNameChanged();
private:
QString m_Title;
QString m_IconName;
QString m_Status {XDG_STATUS_ACTIVE};
QString m_OverlayIconName;
QString m_Category {XDG_CATEGORY_APPLICATIONSTATUS};
QString m_Id;
QString m_WindowId;
QString m_AttentionIconName;
QString m_AttentionMovieName;
};
};
#endif // XDGSTATUSNOTIFIERITEM_H
|