File indexing completed on 2024-05-12 05:34:33
0001 #ifndef oxygenflatwidgetengine_h 0002 #define oxygenflatwidgetengine_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 "oxygenbaseengine.h" 0011 0012 #include <gtk/gtk.h> 0013 #include <cassert> 0014 #include <set> 0015 0016 namespace Oxygen 0017 { 0018 //! forward declaration 0019 class Animations; 0020 0021 //! associates widgets with some type of data 0022 class FlatWidgetEngine: public BaseEngine 0023 { 0024 0025 public: 0026 0027 //! constructor 0028 FlatWidgetEngine( Animations* widget ): 0029 BaseEngine( widget ) 0030 {} 0031 0032 //! destructor 0033 virtual ~FlatWidgetEngine( void ) 0034 {} 0035 0036 //! register widget 0037 virtual bool registerWidget( GtkWidget* widget ) 0038 { return registerFlatWidget( widget ); } 0039 0040 //! register widget 0041 virtual bool registerFlatWidget( GtkWidget* ); 0042 0043 //! register widget 0044 virtual bool registerPaintWidget( GtkWidget* ); 0045 0046 //! unregister widget 0047 virtual void unregisterWidget( GtkWidget* widget ) 0048 { 0049 _flatData.erase( widget ); 0050 _paintData.erase( widget ); 0051 } 0052 0053 //! true if one of widgets parent is included 0054 virtual GtkWidget* flatParent( GtkWidget* ); 0055 0056 protected: 0057 0058 bool containsFlat( GtkWidget* widget ) const 0059 { return _flatData.find( widget ) != _flatData.end(); } 0060 0061 bool containsPaint( GtkWidget* widget ) const 0062 { return _paintData.find( widget ) != _paintData.end(); } 0063 0064 private: 0065 0066 //! store registered widgets 0067 std::set<GtkWidget*> _flatData; 0068 std::set<GtkWidget*> _paintData; 0069 0070 }; 0071 0072 } 0073 0074 #endif