File indexing completed on 2023-11-26 04:55:45
0001 /* 0002 Circular countdown widget 0003 Copyright (C) 2011 Martin Klapetek <martin.klapetek@gmail.com> 0004 0005 This library is free software; you can redistribute it and/or 0006 modify it under the terms of the GNU Lesser General Public 0007 License as published by the Free Software Foundation; either 0008 version 2.1 of the License, or (at your option) any later version. 0009 0010 This library 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 GNU 0013 Lesser General Public License for more details. 0014 0015 You should have received a copy of the GNU Lesser General Public 0016 License along with this library; if not, write to the Free Software 0017 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 0018 */ 0019 0020 #ifndef CIRCULARCOUNTDOWN_H 0021 #define CIRCULARCOUNTDOWN_H 0022 0023 #include <QWidget> 0024 0025 #include <KTp/ktpcommoninternals_export.h> 0026 0027 namespace KTp 0028 { 0029 0030 class KTPCOMMONINTERNALS_EXPORT CircularCountdown : public QWidget 0031 { 0032 Q_OBJECT 0033 0034 public: 0035 explicit CircularCountdown(int msec = 5000, QWidget *parent = nullptr); 0036 ~CircularCountdown() override; 0037 0038 void setDuration(int msec); 0039 int duration() const; 0040 0041 public Q_SLOTS: 0042 void start(); 0043 void stop(); 0044 void pause(); 0045 void resume(); 0046 0047 Q_SIGNALS: 0048 void timeout(); 0049 0050 0051 protected: 0052 void paintEvent(QPaintEvent *event) override; 0053 QSize sizeHint() const override; 0054 0055 private: 0056 class Private; 0057 Private * const d; 0058 }; 0059 0060 } 0061 0062 #endif // CIRCULARCOUNTDOWN_H