Line data Source code
1 : // SPDX-FileCopyrightText: 2016 Anne Jan Brouwer
2 : // SPDX-License-Identifier: GPL-3.0-or-later
3 : #ifndef SRC_TRAYICON_H_
4 : #define SRC_TRAYICON_H_
5 :
6 : #include <QSystemTrayIcon>
7 : #include <QWidget>
8 :
9 : /*!
10 : \class TrayIcon
11 : \brief Handles the systemtray icon and menu.
12 : */
13 : class QAction;
14 : class QMainWindow;
15 : class QMenu;
16 : class TrayIcon : public QWidget {
17 0 : Q_OBJECT
18 :
19 : public:
20 : explicit TrayIcon(QMainWindow *parent);
21 : void showMessage(const QString &title, const QString &msg, int time);
22 : void setVisible(bool visible);
23 : auto getIsAllocated() -> bool;
24 :
25 : signals:
26 :
27 : public slots:
28 : void showHideParent();
29 : void iconActivated(QSystemTrayIcon::ActivationReason reason);
30 :
31 : private:
32 : void createActions();
33 : void createTrayIcon();
34 :
35 : QAction *showAction;
36 : QAction *hideAction;
37 : QAction *minimizeAction;
38 : QAction *maximizeAction;
39 : QAction *restoreAction;
40 : QAction *quitAction;
41 :
42 : QSystemTrayIcon *sysTrayIcon;
43 : QMenu *trayIconMenu;
44 : QMainWindow *parentwin;
45 :
46 : bool isAllocated;
47 : };
48 :
49 : #endif // SRC_TRAYICON_H_
|