File indexing completed on 2024-05-12 05:34:33

0001 #ifndef oxygendialogengine_h
0002 #define oxygendialogengine_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 <set>
0014 
0015 namespace Oxygen
0016 {
0017     //! forward declaration
0018     class Animations;
0019 
0020     //! associates widgets with some type of data
0021     class DialogEngine: public BaseEngine
0022     {
0023 
0024         public:
0025 
0026         //! constructor
0027         DialogEngine( Animations* widget ):
0028             BaseEngine( widget )
0029             {}
0030 
0031         //! destructor
0032         virtual ~DialogEngine( void )
0033         {}
0034 
0035         //! register widget
0036         virtual bool registerWidget( GtkWidget* );
0037 
0038         //! unregister widget
0039         virtual void unregisterWidget( GtkWidget* widget )
0040         { _data.erase( widget ); }
0041 
0042         //! true if widget is included
0043         virtual bool contains( GtkWidget* widget )
0044         { return _data.find( widget ) != _data.end(); }
0045 
0046         private:
0047 
0048         //! store registered widgets
0049         std::set<GtkWidget*> _data;
0050 
0051     };
0052 
0053 }
0054 
0055 #endif