GTKWrap provides a mechanism for connecting libsigc++ slots to GObject/GTK+ signals. This allows for any slot to be used, so sigc::bind
and friends can be used when connecting to GObject signals. It also catches exceptions thrown by signal handlers and reports them to a user-specified error handling function.
The basic function is connect_signal
; connect_signal_hide_obj
is also available and hides the initial object parameter passed to the callback.
As an example, the following connects a handler to the expose event of some widget:
void handler(GtkWidget *w, GdkEventExpose *evt) { // draw some stuff } void something() { // ... GTKWrap::connect_signal(widget, "expose-event", sigc::slot<void,GtkWidget*,GdkEventExpose*>( sigc::ptr_fun(&handler))); // ... }
Classes | |
class | GTKWrap::internal::sig_handler< Tr, Ta1, Ta2, Ta3, Ta4, Ta5, Ta6, Ta7 > |
Specialized signal handler class. More... | |
class | GTKWrap::internal::sig_handler< Tr, Ta1, Ta2, Ta3, Ta4, Ta5, Ta6, sigc::nil > |
Specialized signal handler class. More... | |
class | GTKWrap::internal::sig_handler< Tr, Ta1, Ta2, Ta3, Ta4, Ta5, sigc::nil, sigc::nil > |
Specialized signal handler class. More... | |
class | GTKWrap::internal::sig_handler< Tr, Ta1, Ta2, Ta3, Ta4, sigc::nil, sigc::nil, sigc::nil > |
Specialized signal handler class. More... | |
class | GTKWrap::internal::sig_handler< Tr, Ta1, Ta2, Ta3, sigc::nil, sigc::nil, sigc::nil, sigc::nil > |
Specialized signal handler class. More... | |
class | GTKWrap::internal::sig_handler< Tr, Ta1, Ta2, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil > |
Specialized signal handler class. More... | |
class | GTKWrap::internal::sig_handler< Tr, Ta1, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil > |
Specialized signal handler class. More... | |
class | GTKWrap::internal::sig_handler< Tr, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil > |
Specialized signal handler class. More... | |
class | GTKWrap::internal::sig_handler_base |
Base signal handler class. More... | |
Functions | |
void | GTKWrap::loop_dispatch (sigc::slot< void > func) |
Dispatch a function in the event loop. | |
sigc::connection | GTKWrap::idle_add (sigc::slot< bool > func) |
Add a default idle callback. | |
sigc::connection | GTKWrap::idle_add (gint priority, sigc::slot< bool > func) |
Add an idle callback with priority. | |
sigc::connection | GTKWrap::timeout_add (guint interval, sigc::slot< bool > func) |
Add a default timeout callback. | |
sigc::connection | GTKWrap::timeout_add (gint priority, guint interval, sigc::slot< bool > func) |
Add a timeout callback with priority. | |
void | GTKWrap::internal::invoke_error_handler () |
Invoke the registered exception handler. | |
void | GTKWrap::internal::sig_handler_destroy (gpointer handler) |
template<typename Tr> | |
Tr | GTKWrap::internal::generic_zero () |
Generic zero class (for produsing 0's for default ret vals). | |
template<typename Tr, typename Ta1, typename Ta2, typename Ta3, typename Ta4, typename Ta5, typename Ta6, typename Ta7> | |
sigc::connection | GTKWrap::connect_signal (gpointer instance, const gchar *signal, sigc::slot< Tr, Ta1, Ta2, Ta3, Ta4, Ta5, Ta6, Ta7 > handler) |
Connect a slot to a GTK signal. | |
template<typename Tr, typename Ta1, typename Ta2, typename Ta3, typename Ta4, typename Ta5, typename Ta6, typename Ta7> | |
sigc::connection | GTKWrap::connect_signal_hide_obj (gpointer instance, const gchar *signal, sigc::slot< Tr, Ta1, Ta2, Ta3, Ta4, Ta5, Ta6, Ta7 > handler) |
Connect a slot to a GTK signal hiding its object. |
sigc::connection GTKWrap::connect_signal | ( | gpointer | instance, | |
const gchar * | signal, | |||
sigc::slot< Tr, Ta1, Ta2, Ta3, Ta4, Ta5, Ta6, Ta7 > | handler | |||
) | [inline] |
sigc::connection GTKWrap::connect_signal_hide_obj | ( | gpointer | instance, | |
const gchar * | signal, | |||
sigc::slot< Tr, Ta1, Ta2, Ta3, Ta4, Ta5, Ta6, Ta7 > | handler | |||
) | [inline] |
Tr GTKWrap::internal::generic_zero | ( | ) | [inline] |
sigc::connection GTKWrap::idle_add | ( | gint | priority, | |
sigc::slot< bool > | func | |||
) |
sigc::connection GTKWrap::idle_add | ( | sigc::slot< bool > | func | ) |
void GTKWrap::internal::invoke_error_handler | ( | ) |
void GTKWrap::loop_dispatch | ( | sigc::slot< void > | func | ) |
Dispatch a function in the event loop.
This function is identical to idle_add(), except that it performs no connection tracking and thus can be used from worker threads. It uses a priority of G_PRIORITY_HIGH_IDLE. The function is invoked once (FALSE is bound to its return type).
void GTKWrap::internal::sig_handler_destroy | ( | gpointer | handler | ) |
Definition at line 176 of file signals.cpp.
sigc::connection GTKWrap::timeout_add | ( | gint | priority, | |
guint | interval, | |||
sigc::slot< bool > | func | |||
) |
sigc::connection GTKWrap::timeout_add | ( | guint | interval, | |
sigc::slot< bool > | func | |||
) |