File indexing completed on 2024-05-12 17:05:47
0001 #ifndef oxygenbaseengine_h 0002 #define oxygenbaseengine_h 0003 /* 0004 * this file is part of the oxygen gtk engine 0005 * SPDX-FileCopyrightText: 2010 Hugo Pereira Da Costa <hugo.pereira@free.fr> 0006 * 0007 * SPDX-License-Identifier: LGPL-2.0-or-later 0008 */ 0009 0010 #include <gtk/gtk.h> 0011 #include <vector> 0012 0013 namespace Oxygen 0014 { 0015 0016 //! forward declaration 0017 class Animations; 0018 0019 //! base class for all engines 0020 /*! engines map pointers to GtkWidget to some data, needed for animations */ 0021 class BaseEngine 0022 { 0023 public: 0024 0025 //! constructor 0026 BaseEngine( Animations* parent ): 0027 _parent( parent ), 0028 _enabled( true ) 0029 {} 0030 0031 virtual ~BaseEngine() 0032 {} 0033 0034 //! register widget 0035 virtual bool registerWidget( GtkWidget* widget ); 0036 0037 //! unregister widget 0038 virtual void unregisterWidget( GtkWidget* ) = 0; 0039 0040 //! engine list 0041 typedef std::vector< BaseEngine* > List; 0042 0043 //! enable state 0044 /*! returns true if changed */ 0045 virtual bool setEnabled( bool value ) 0046 { 0047 if( _enabled == value ) return false; 0048 _enabled = value; 0049 return true; 0050 } 0051 0052 //! enable state 0053 bool enabled( void ) const 0054 { return _enabled; } 0055 0056 protected: 0057 0058 //! returns parent 0059 virtual Animations& parent( void ) const 0060 { return *_parent; } 0061 0062 private: 0063 0064 //! parent 0065 Animations* _parent; 0066 0067 //! enable flag 0068 bool _enabled; 0069 0070 }; 0071 0072 } 0073 0074 #endif