summaryrefslogtreecommitdiff
path: root/src/lib/xdgstatusnotifierhost.h
blob: 20c36ed32bc859049989d39d9a0e22172822e3b2 (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
#ifndef XDGSTATUSNOTIFIERHOST_H
#define XDGSTATUSNOTIFIERHOST_H

#include <QAbstractListModel>
#include <QObject>
#include <QScopedPointer>

namespace xdg {
    class StatusNotifierHostPrivate;

    class StatusNotifierHost : public QAbstractListModel
    {
        Q_OBJECT
    public:
        explicit StatusNotifierHost(QObject *parent = nullptr);
        virtual ~StatusNotifierHost();

        enum XdgDesktopEntriesRoles {
            CategoryRole = Qt::UserRole + 1,
            IdRole,
            TitleRole,
            StatusRole,
            WindowIdRole,
            IconNameRole,
            OverlayIconNameRole,
            AttentionIconNameRole,
            AttentionMovieNameRole
        };

        int rowCount(const QModelIndex &parent = QModelIndex()) const override;
        QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
        QHash<int, QByteArray> roleNames() const override;

    public slots:
        void activate(int x, int y, QString id, int mode);

    private:
        Q_DISABLE_COPY(StatusNotifierHost)
        Q_DECLARE_PRIVATE(StatusNotifierHost)
        QScopedPointer<StatusNotifierHostPrivate> const d_ptr;
    };
};

#endif // XDGSTATUSNOTIFIERHOST_H