File indexing completed on 2024-05-19 05:21:55
0001 /* 0002 * Copyright (C) 2003 by Scott Monachello <smonach@cox.net> 0003 * Copyright (C) 2019 Alexander Potashev <aspotashev@gmail.com> 0004 * 0005 * This program is free software; you can redistribute it and/or modify 0006 * it under the terms of the GNU General Public License as published by 0007 * the Free Software Foundation; either version 2 of the License, or 0008 * (at your option) any later version. 0009 * 0010 * This program 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 General Public License for more details. 0014 * 0015 * You should have received a copy of the GNU General Public License along 0016 * with this program; if not, write to the 0017 * Free Software Foundation, Inc. 0018 * 51 Franklin Street, Fifth Floor 0019 * Boston, MA 02110-1301 USA. 0020 * 0021 */ 0022 0023 #ifndef TRAY_ICON_H 0024 #define TRAY_ICON_H 0025 0026 #include <QList> 0027 0028 #include <KStatusNotifierItem> 0029 0030 QT_BEGIN_NAMESPACE 0031 class QMovie; 0032 QT_END_NAMESPACE 0033 0034 class MainWindow; 0035 class Task; 0036 0037 class TrayIcon : public KStatusNotifierItem 0038 { 0039 Q_OBJECT 0040 0041 public: 0042 explicit TrayIcon(MainWindow *parent); 0043 ~TrayIcon() override = default; 0044 0045 private: 0046 QMovie *m_animation; 0047 0048 public Q_SLOTS: 0049 void startClock(); 0050 void stopClock(); 0051 void updateToolTip(const QList<Task *> &activeTasks); 0052 0053 protected Q_SLOTS: 0054 void setActiveIcon(int frame); 0055 }; 0056 0057 #endif // TRAY_ICON_H