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(Signal0_r<rettype>& signal, T* receiver, rettype (T::*method)());

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

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

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

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

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

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

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

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

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

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

template<class E, class M>
Connection connect(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(Signal_proxy0<rettype, widgettype> &signal, T* receiver, rettype (T::*method)());

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

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

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

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

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

Some obsolete connect()'s that are not anymore supported

(do not use these)

template <class T>
void connect(Gtk_Object* sender, const char *name, T staticfunction);

template<class rettype, class T> 
rettype connect(Gtk_Object* sender, const char *name, T* receiver, rettype (T::*method)());

template<class rettype, class T, class E> 
void connect(Gtk_Object* sender, const char* name, T* receiver, rettype (T::*method)(), E e);


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