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

0001 #ifndef oxygenhook_h
0002 #define oxygenhook_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 <gtk/gtk.h>
0012 #include <string>
0013 
0014 namespace Oxygen
0015 {
0016     //! handles gtk signal hooks
0017     class Hook
0018     {
0019         public:
0020 
0021         //! constructor
0022         Hook( void ):
0023             _signalId(0),
0024             _hookId(0)
0025         {}
0026 
0027         //! destructor
0028         virtual ~Hook( void )
0029         {}
0030 
0031 
0032 
0033         //! connect
0034         bool connect( const std::string&, GType, GSignalEmissionHook, gpointer );
0035 
0036         bool connect( const std::string& signal, GSignalEmissionHook hook, gpointer data )
0037         { return connect( signal, GTK_TYPE_WIDGET, hook, data ); }
0038 
0039         //! disconnect
0040         void disconnect( void );
0041 
0042         private:
0043 
0044         //! signal id
0045         guint _signalId;
0046         gulong _hookId;
0047 
0048     };
0049 
0050 }
0051 
0052 #endif