Signal handling wrappers
[C++ helpers for GTK programming]


Detailed Description

Exception-catching wrappers for signal connections.

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)));
     // ...
 }

Note:
Unfortunately, it is necessary to explicitly cast a slot to the correct slot type for connect_signal. This restriction may be overcomable with clever template specialization, but I'm not sure how yet.


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.


Function Documentation

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 
) [inline]

Connect a slot to a GTK signal.

Definition at line 94 of file signals.h.

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 
) [inline]

Connect a slot to a GTK signal hiding its object.

This function is much like the corresponding connect_signal function, but hides the generating object (strips it off the front of the parameter list before invoking the callback).

Definition at line 111 of file signals.h.

template<typename Tr>
Tr GTKWrap::internal::generic_zero (  )  [inline]

Generic zero class (for produsing 0's for default ret vals).

Definition at line 77 of file signals.h.

sigc::connection GTKWrap::idle_add ( gint  priority,
sigc::slot< bool >  func 
)

Add an idle callback with priority.

Definition at line 44 of file idle.cpp.

sigc::connection GTKWrap::idle_add ( sigc::slot< bool >  func  ) 

Add a default idle callback.

Definition at line 37 of file idle.cpp.

void GTKWrap::internal::invoke_error_handler (  ) 

Invoke the registered exception handler.

Definition at line 133 of file signals.cpp.

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).

Definition at line 23 of file idle.cpp.

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 
)

Add a timeout callback with priority.

Definition at line 65 of file idle.cpp.

sigc::connection GTKWrap::timeout_add ( guint  interval,
sigc::slot< bool >  func 
)

Add a default timeout callback.

Definition at line 58 of file idle.cpp.


Generated on Fri Jul 20 09:44:42 2007 for Goanna by  doxygen 1.5.2