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

0001 #ifndef oxygengroupboxengine_h
0002 #define oxygengroupboxengine_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 GroupBoxEngine: public BaseEngine
0022     {
0023 
0024         public:
0025 
0026         //! constructor
0027         GroupBoxEngine( Animations* widget ):
0028             BaseEngine( widget )
0029             {}
0030 
0031         //! destructor
0032         virtual ~GroupBoxEngine( void )
0033         {}
0034 
0035         //! register widget
0036         virtual bool registerWidget( GtkWidget* widget )
0037         { return( _data.insert( widget ).second ); }
0038 
0039         //! unregister widget
0040         virtual void unregisterWidget( GtkWidget* widget )
0041         { _data.erase( widget ); }
0042 
0043         //! true if widget is included
0044         virtual bool contains( GtkWidget* widget )
0045         { return _data.find( widget ) != _data.end(); }
0046 
0047         private:
0048 
0049         //! store registered widgets
0050         std::set<GtkWidget*> _data;
0051 
0052     };
0053 
0054 }
0055 
0056 #endif