1 #ifndef oxygenprogressbarengine_h 2 #define oxygenprogressbarengine_h 3 4 ////////////////////////////////////////////////////////////////////////////// 5 // oxygenprogressbarengine.h 6 // handle progress bar animations 7 // ------------------- 8 // 9 // SPDX-FileCopyrightText: 2009 Hugo Pereira Da Costa <hugo.pereira@free.fr> 10 // 11 // SPDX-License-Identifier: MIT 12 ////////////////////////////////////////////////////////////////////////////// 13 14 #include "oxygenbaseengine.h" 15 #include "oxygenprogressbardata.h" 16 #include "oxygendatamap.h" 17 18 #include <QWidget> 19 20 namespace Oxygen 21 { 22 23 //* handles progress bar animations 24 class ProgressBarEngine: public BaseEngine 25 { 26 27 Q_OBJECT 28 29 public: 30 31 //* constructor ProgressBarEngine(QObject * object)32 explicit ProgressBarEngine( QObject* object ): 33 BaseEngine( object ) 34 {} 35 36 //* register progressbar 37 bool registerWidget( QWidget* ); 38 39 //* true if widget is animated 40 bool isAnimated( const QObject* ); 41 42 //* animation opacity value(const QObject * object)43 int value( const QObject* object ) 44 { return isAnimated( object ) ? data( object ).data()->value():0 ; } 45 46 //* enable state setEnabled(bool value)47 void setEnabled( bool value ) override 48 { 49 BaseEngine::setEnabled( value ); 50 _data.setEnabled( value ); 51 } 52 53 //* duration setDuration(int value)54 void setDuration( int value ) override 55 { 56 BaseEngine::setDuration( value ); 57 _data.setDuration( value ); 58 } 59 60 public Q_SLOTS: 61 62 //* remove widget from map unregisterWidget(QObject * object)63 bool unregisterWidget( QObject* object ) override 64 { return _data.unregisterWidget( object ); } 65 66 private: 67 68 //* returns data associated to widget 69 DataMap<ProgressBarData>::Value data( const QObject* ); 70 71 //* map widgets to progressbar data 72 DataMap<ProgressBarData> _data; 73 74 }; 75 76 } 77 78 #endif 79