File indexing completed on 2024-05-19 05:35:21
0001 #ifndef oxygenprogressbarengine_h 0002 #define oxygenprogressbarengine_h 0003 0004 ////////////////////////////////////////////////////////////////////////////// 0005 // oxygenprogressbarengine.h 0006 // handle progress bar animations 0007 // ------------------- 0008 // 0009 // SPDX-FileCopyrightText: 2009 Hugo Pereira Da Costa <hugo.pereira@free.fr> 0010 // 0011 // SPDX-License-Identifier: MIT 0012 ////////////////////////////////////////////////////////////////////////////// 0013 0014 #include "oxygenbaseengine.h" 0015 #include "oxygendatamap.h" 0016 #include "oxygenprogressbardata.h" 0017 0018 #include <QWidget> 0019 0020 namespace Oxygen 0021 { 0022 //* handles progress bar animations 0023 class ProgressBarEngine : public BaseEngine 0024 { 0025 Q_OBJECT 0026 0027 public: 0028 //* constructor 0029 explicit ProgressBarEngine(QObject *object) 0030 : BaseEngine(object) 0031 { 0032 } 0033 0034 //* register progressbar 0035 bool registerWidget(QWidget *); 0036 0037 //* true if widget is animated 0038 bool isAnimated(const QObject *); 0039 0040 //* animation opacity 0041 int value(const QObject *object) 0042 { 0043 return isAnimated(object) ? data(object).data()->value() : 0; 0044 } 0045 0046 //* enable state 0047 void setEnabled(bool value) override 0048 { 0049 BaseEngine::setEnabled(value); 0050 _data.setEnabled(value); 0051 } 0052 0053 //* duration 0054 void setDuration(int value) override 0055 { 0056 BaseEngine::setDuration(value); 0057 _data.setDuration(value); 0058 } 0059 0060 public Q_SLOTS: 0061 0062 //* remove widget from map 0063 bool unregisterWidget(QObject *object) override 0064 { 0065 return _data.unregisterWidget(object); 0066 } 0067 0068 private: 0069 //* returns data associated to widget 0070 DataMap<ProgressBarData>::Value data(const QObject *); 0071 0072 //* map widgets to progressbar data 0073 DataMap<ProgressBarData> _data; 0074 }; 0075 } 0076 0077 #endif