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

0001 #ifndef oxygenmenuitemdata_h
0002 #define oxygenmenuitemdata_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 * SPDX-FileCopyrightText: 2010 Ruslan Kabatsayev <b7.10110111@gmail.com>
0007 *
0008 * SPDX-License-Identifier: LGPL-2.0-or-later
0009 */
0010 
0011 #include "oxygensignal.h"
0012 #include "oxygentimer.h"
0013 
0014 #include <gtk/gtk.h>
0015 
0016 namespace Oxygen
0017 {
0018     // track main window resize events
0019     class MenuItemData
0020     {
0021 
0022         public:
0023 
0024         //! constructor
0025         MenuItemData( void ):
0026             _target(0)
0027         {}
0028 
0029         //! destructor
0030         virtual ~MenuItemData( void )
0031         { disconnect( _target ); }
0032 
0033         //! setup connections
0034         void connect( GtkWidget* );
0035 
0036         //! disconnect
0037         void disconnect( GtkWidget* );
0038 
0039         protected:
0040 
0041         //! attach style of widget to passed window [recursive]
0042         void attachStyle( GtkWidget*, GdkWindow* ) const;
0043 
0044         //! parent set callback
0045         static void parentSet( GtkWidget*, GtkWidget*, gpointer );
0046 
0047         private:
0048 
0049         //! target
0050         GtkWidget* _target;
0051 
0052         //! reparent signal id
0053         Signal _parentSetId;
0054 
0055     };
0056 
0057 }
0058 
0059 #endif