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

0001 
0002 /*
0003 * this file is part of the oxygen gtk engine
0004 * SPDX-FileCopyrightText: 2010 Hugo Pereira Da Costa <hugo.pereira@free.fr>
0005 *
0006 * SPDX-License-Identifier: LGPL-2.0-or-later
0007 */
0008 
0009 #include "oxygensignal.h"
0010 
0011 namespace Oxygen
0012 {
0013 
0014     //____________________________________________________________________
0015     void Signal::connect( GObject* object, const std::string& signal, GCallback callback, gpointer data )
0016     {
0017         // make sure that signal is not already connected
0018         assert( _object == 0L && _id == 0 );
0019 
0020         // store attributes and create connection
0021         _object = object;
0022         _id = g_signal_connect( object, signal.c_str(), callback, data );
0023     }
0024 
0025     //____________________________________________________________________
0026     void Signal::disconnect( void )
0027     {
0028 
0029         // disconnect signal
0030         if( _object && _id > 0 ) g_signal_handler_disconnect( _object, _id );
0031 
0032         // reset members
0033         _object = 0L;
0034         _id = 0;
0035 
0036     }
0037 
0038 }