File indexing completed on 2024-04-28 04:44:12

0001 /*
0002     SnoreNotify is a Notification Framework based on Qt
0003     Copyright (C) 2013-2015  Hannah von Reth <vonreth@kde.org>
0004 
0005     SnoreNotify is free software: you can redistribute it and/or modify
0006     it under the terms of the GNU Lesser General Public License as published by
0007     the Free Software Foundation, either version 3 of the License, or
0008     (at your option) any later version.
0009 
0010     SnoreNotify is distributed in the hope that it will be useful,
0011     but WITHOUT ANY WARRANTY; without even the implied warranty of
0012     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
0013     GNU Lesser General Public License for more details.
0014 
0015     You should have received a copy of the GNU Lesser General Public License
0016     along with SnoreNotify.  If not, see <http://www.gnu.org/licenses/>.
0017 */
0018 
0019 #ifndef TRAYICON_H
0020 #define TRAYICON_H
0021 
0022 #include <QAction>
0023 #include "libsnore/snore.h"
0024 
0025 namespace Snore
0026 {
0027 class SettingsDialog;
0028 }
0029 
0030 class TrayIcon: public QObject
0031 {
0032     Q_OBJECT
0033 public:
0034     TrayIcon();
0035     void initConextMenu();
0036     void hide();
0037     class QSystemTrayIcon *trayIcon();
0038 
0039 private:
0040     class QSystemTrayIcon *m_trayIcon;
0041     class QMenu *m_trayMenu;
0042     QActionGroup *m_backendActions;
0043     Snore::SettingsDialog *m_settings;
0044 
0045 public Q_SLOTS:
0046     void slotTestNotification();
0047     void slotSettings();
0048 };
0049 
0050 #endif // TRAYICON_H