File indexing completed on 2024-05-19 05:35:25

0001 #ifndef oxygentransitions_h
0002 #define oxygentransitions_h
0003 
0004 //////////////////////////////////////////////////////////////////////////////
0005 // oxygentransitions.h
0006 // container for all transition engines
0007 // -------------------
0008 //
0009 // SPDX-FileCopyrightText: 2009 Hugo Pereira Da Costa <hugo.pereira@free.fr>
0010 //
0011 // SPDX-License-Identifier: MIT
0012 //////////////////////////////////////////////////////////////////////////////
0013 
0014 #include "oxygencomboboxengine.h"
0015 #include "oxygenlabelengine.h"
0016 #include "oxygenlineeditengine.h"
0017 #include "oxygenstackedwidgetengine.h"
0018 
0019 namespace Oxygen
0020 {
0021 //* stores engines
0022 class Transitions : public QObject
0023 {
0024     Q_OBJECT
0025 
0026 public:
0027     //* constructor
0028     explicit Transitions(QObject *);
0029 
0030     //* register animations corresponding to given widget, depending on its type.
0031     void registerWidget(QWidget *widget) const;
0032 
0033     /** unregister all animations associated to a widget */
0034     void unregisterWidget(QWidget *widget) const;
0035 
0036     //* qlabel engine
0037     ComboBoxEngine &comboBoxEngine(void) const
0038     {
0039         return *_comboBoxEngine;
0040     }
0041 
0042     //* qlabel engine
0043     LabelEngine &labelEngine(void) const
0044     {
0045         return *_labelEngine;
0046     }
0047 
0048     //* qlineedit engine
0049     LineEditEngine &lineEditEngine(void) const
0050     {
0051         return *_lineEditEngine;
0052     }
0053 
0054     //* stacked widget engine
0055     StackedWidgetEngine &stackedWidgetEngine(void) const
0056     {
0057         return *_stackedWidgetEngine;
0058     }
0059 
0060 public Q_SLOTS:
0061 
0062     //* setup engines
0063     void setupEngines(void);
0064 
0065 private:
0066     //* register new engine
0067     void registerEngine(BaseEngine *engine)
0068     {
0069         _engines.push_back(engine);
0070     }
0071 
0072     //* qcombobox engine
0073     ComboBoxEngine *_comboBoxEngine;
0074 
0075     //* qlabel engine
0076     LabelEngine *_labelEngine;
0077 
0078     //* qlineedit engine
0079     LineEditEngine *_lineEditEngine;
0080 
0081     //* stacked widget engine
0082     StackedWidgetEngine *_stackedWidgetEngine;
0083 
0084     //* keep list of existing engines
0085     QList<BaseEngine::Pointer> _engines;
0086 };
0087 }
0088 
0089 #endif