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