The Gtk--'s signal system function and object prototypes

All these are with no arguments and a return type and they scale directly to many arguments. These might be useful in finding compile time errors coming from the compiler. If there's any situations that these cannot handle, let me know.

What kind of Signal -objects are there available?

(gtk-- provides signals up to 5 parameters)
Signal0 mysignal;
Signal1<int> mysignal_with_one_parameter;

Signal0_r<rettype> signal_with_return_type;
Signal1_r<rettype,int> signal_with_return_type_and_one_parameter;

Signals used for interfacing with C widget hierarchy

Signal_proxy0<rettype, widgettype> signal0;
Signal_proxy1<rettype, widgettype,P1> signal1;

What kind of connect function signatures does gtk-- provide?

template<class rettype, class T> 
Connection connect_to_method(Signal0_r<rettype>& signal, T* receiver, rettype (T::*method)());

template<class T> 
Connection connect_to_method(Signal0 &signal, T* receiver, void (T::*method()));

template<class rettype, class T, class E> 
Connection connect_to_method(Signal0_r<rettype>& signal, T* receiver, rettype (T::*method)(E), E cbd);

template<class T, class E> 
Connection connect_to_method(Signal0 &signal, T* receiver, void (T::*method)(E), E cbd);

template<class rettype>
Connection connect_to_function(Signal0_r<rettype> &signal, rettype(*func)());

template<class rettype, class M>
Connection connect_to_signal(Signal0_r<rettype> &signal, M& functionobject);

Connection connect_to_function(Signal0 &signal, void (*func)());

template<class M>
Connection connect_to_signal(Signal0 &signal, M& functionobject);

template<class rettype, class E>
Connection connect_to_function(Signal0_r<rettype> &signal, rettype (*func)(E),E cbd);

template<class rettype, class M, class E>
Connection connect_to_signal(Signal0_r<rettype> &signal, M& functionobject, E cbd);

template<class E>
Connection connect_to_function(Signal0 &signal, void (*func)(E), E cbd);

template<class E, class M>
Connection connect_to_signal(Signal0 &signal, M& functionobject, E cbd);

The next ones are for interfacing with C language widget hierarchy

template<class rettype, class widgettype, class T>
Connection connect_to_method(Signal_proxy0<rettype, widgettype> &signal, T* receiver, rettype (T::*method)());

template<class rettype,class widgettype, class T, class E>
Connection connect_to_method(Signal_proxy0<rettype,widgettype> &signal, T *receiver, rettype (T::*method)(E), E arg );

template<class rettype,class widgettype>
Connection connect_to_function(Signal_proxy0<rettype,widgettype> &signal, rettype (*method)() );

template<class rettype,class widgettype, class M>
Connection connect_to_signal(Signal_proxy0<rettype,widgettype> &signal, M &functionobject );

template<class rettype, class widgettype, class E>
Connection connect_to_function(Signal_proxy0<rettype,widgettype> &signal, rettype (*method)(E), E arg );

template<class rettype, class widgettype, class M, class E>
Connection connect_to_signal(Signal_proxy0<rettype,widgettype> &signal, M &functionobject, E arg );


Tero Pulkkinen (terop@modeemi.cs.tut.fi)