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 }