5 #ifndef _SIGXMACROS_SIGNAL_WRAPPER_H_
6 #define _SIGXMACROS_SIGNAL_WRAPPER_H_
28 #include <sigc++/sigc++.h>
29 #include <glibmm/main.h>
54 template<
typename T_signal>
64 template<
typename T_return,
typename T_arg1,
typename T_arg2,
typename T_arg3,
typename T_arg4,
typename T_arg5,
typename T_arg6,
typename T_arg7>
76 template<
typename T_return,
typename T_accumulator>
86 template<
typename T_return,
typename T_arg1,
typename T_accumulator>
96 template<
typename T_return,
typename T_arg1,
typename T_arg2,
typename T_accumulator>
106 template<
typename T_return,
typename T_arg1,
typename T_arg2,
typename T_arg3,
typename T_accumulator>
116 template<
typename T_return,
typename T_arg1,
typename T_arg2,
typename T_arg3,
typename T_arg4,
typename T_accumulator>
126 template<
typename T_return,
typename T_arg1,
typename T_arg2,
typename T_arg3,
typename T_arg4,
typename T_arg5,
typename T_accumulator>
136 template<
typename T_return,
typename T_arg1,
typename T_arg2,
typename T_arg3,
typename T_arg4,
typename T_arg5,
typename T_arg6,
typename T_accumulator>
146 template<
typename T_return,
typename T_arg1,
typename T_arg2,
typename T_arg3,
typename T_arg4,
typename T_arg5,
typename T_arg6,
typename T_arg7,
typename T_accumulator>
147 struct count_signal_arguments<sigc::signal7<T_return, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5, T_arg6, T_arg7, T_accumulator> >
157 template<
typename T_return>
169 template<
typename T_return,
typename T_arg1>
181 template<
typename T_return,
typename T_arg1,
typename T_arg2>
193 template<
typename T_return,
typename T_arg1,
typename T_arg2,
typename T_arg3>
205 template<
typename T_return,
typename T_arg1,
typename T_arg2,
typename T_arg3,
typename T_arg4>
217 template<
typename T_return,
typename T_arg1,
typename T_arg2,
typename T_arg3,
typename T_arg4,
typename T_arg5>
229 template<
typename T_return,
typename T_arg1,
typename T_arg2,
typename T_arg3,
typename T_arg4,
typename T_arg5,
typename T_arg6>
296 template<
typename T_signal>
301 static const int argument_count = 0;
311 typedef sigc::bound_const_mem_functor0<signal_source_base::hook, signal_source_base>
make_slot_f1;
312 typedef sigc::retype_return_functor<fp_sig_getter_type, make_slot_f1>
make_slot_f2;
313 typedef sigc::const_mem_functor0<signal_source_ptr, std::tr1::shared_ptr<signal_source_base> >
make_slot_f3;
363 template<
typename T_functor>
374 template<sync_type I_sync>
377 return open_tunnel_with<I_sync>(
380 sigc::mem_fun(&signal_type::emit),
383 sigc::retype_return<fp_sig_getter_type>(
390 sigc::mem_fun(&std::tr1::shared_ptr<signal_source_base>::operator *),
403 return emit<ASYNC>();
417 return emit<ASYNC>();
423 template<sync_type I_sync>
427 return tunnel_funtor_type(
434 sigc::retype_return<fp_sig_getter_type>(
438 sigc::mem_fun(&std::tr1::shared_ptr<signal_source_base>::operator *),
452 return make_slot<ASYNC>();
460 return make_slot<SYNC>();
468 template<
typename T_signal>
473 static const int argument_count = 1;
484 typedef sigc::bound_const_mem_functor0<signal_source_base::hook, signal_source_base>
make_slot_f1;
485 typedef sigc::retype_return_functor<fp_sig_getter_type, make_slot_f1>
make_slot_f2;
486 typedef sigc::const_mem_functor0<signal_source_ptr, std::tr1::shared_ptr<signal_source_base> >
make_slot_f3;
536 template<
typename T_functor>
547 template<sync_type I_sync>
550 return open_tunnel_with<I_sync>(
553 sigc::mem_fun(&signal_type::emit),
556 sigc::retype_return<fp_sig_getter_type>(
563 sigc::mem_fun(&std::tr1::shared_ptr<signal_source_base>::operator *),
576 return emit<ASYNC>(_A_a1);
583 return emit<SYNC>(_A_a1);
590 return emit<ASYNC>(_A_a1);
596 template<sync_type I_sync>
600 return tunnel_funtor_type(
607 sigc::retype_return<fp_sig_getter_type>(
611 sigc::mem_fun(&std::tr1::shared_ptr<signal_source_base>::operator *),
625 return make_slot<ASYNC>();
633 return make_slot<SYNC>();
641 template<
typename T_signal>
646 static const int argument_count = 2;
658 typedef sigc::bound_const_mem_functor0<signal_source_base::hook, signal_source_base>
make_slot_f1;
659 typedef sigc::retype_return_functor<fp_sig_getter_type, make_slot_f1>
make_slot_f2;
660 typedef sigc::const_mem_functor0<signal_source_ptr, std::tr1::shared_ptr<signal_source_base> >
make_slot_f3;
710 template<
typename T_functor>
721 template<sync_type I_sync>
724 return open_tunnel_with<I_sync>(
727 sigc::mem_fun(&signal_type::emit),
730 sigc::retype_return<fp_sig_getter_type>(
737 sigc::mem_fun(&std::tr1::shared_ptr<signal_source_base>::operator *),
750 return emit<ASYNC>(_A_a1, _A_a2);
757 return emit<SYNC>(_A_a1, _A_a2);
764 return emit<ASYNC>(_A_a1, _A_a2);
770 template<sync_type I_sync>
774 return tunnel_funtor_type(
781 sigc::retype_return<fp_sig_getter_type>(
785 sigc::mem_fun(&std::tr1::shared_ptr<signal_source_base>::operator *),
799 return make_slot<ASYNC>();
807 return make_slot<SYNC>();
815 template<
typename T_signal>
820 static const int argument_count = 3;
833 typedef sigc::bound_const_mem_functor0<signal_source_base::hook, signal_source_base>
make_slot_f1;
834 typedef sigc::retype_return_functor<fp_sig_getter_type, make_slot_f1>
make_slot_f2;
835 typedef sigc::const_mem_functor0<signal_source_ptr, std::tr1::shared_ptr<signal_source_base> >
make_slot_f3;
885 template<
typename T_functor>
896 template<sync_type I_sync>
899 return open_tunnel_with<I_sync>(
902 sigc::mem_fun(&signal_type::emit),
905 sigc::retype_return<fp_sig_getter_type>(
912 sigc::mem_fun(&std::tr1::shared_ptr<signal_source_base>::operator *),
918 )(_A_a1, _A_a2, _A_a3);
925 return emit<ASYNC>(_A_a1, _A_a2, _A_a3);
932 return emit<SYNC>(_A_a1, _A_a2, _A_a3);
939 return emit<ASYNC>(_A_a1, _A_a2, _A_a3);
945 template<sync_type I_sync>
949 return tunnel_funtor_type(
956 sigc::retype_return<fp_sig_getter_type>(
960 sigc::mem_fun(&std::tr1::shared_ptr<signal_source_base>::operator *),
974 return make_slot<ASYNC>();
982 return make_slot<SYNC>();
990 template<
typename T_signal>
995 static const int argument_count = 4;
1009 typedef sigc::bound_const_mem_functor0<signal_source_base::hook, signal_source_base>
make_slot_f1;
1010 typedef sigc::retype_return_functor<fp_sig_getter_type, make_slot_f1>
make_slot_f2;
1011 typedef sigc::const_mem_functor0<signal_source_ptr, std::tr1::shared_ptr<signal_source_base> >
make_slot_f3;
1061 template<
typename T_functor>
1072 template<sync_type I_sync>
1075 return open_tunnel_with<I_sync>(
1078 sigc::mem_fun(&signal_type::emit),
1081 sigc::retype_return<fp_sig_getter_type>(
1088 sigc::mem_fun(&std::tr1::shared_ptr<signal_source_base>::operator *),
1094 )(_A_a1, _A_a2, _A_a3, _A_a4);
1101 return emit<ASYNC>(_A_a1, _A_a2, _A_a3, _A_a4);
1108 return emit<SYNC>(_A_a1, _A_a2, _A_a3, _A_a4);
1115 return emit<ASYNC>(_A_a1, _A_a2, _A_a3, _A_a4);
1121 template<sync_type I_sync>
1125 return tunnel_funtor_type(
1132 sigc::retype_return<fp_sig_getter_type>(
1136 sigc::mem_fun(&std::tr1::shared_ptr<signal_source_base>::operator *),
1150 return make_slot<ASYNC>();
1158 return make_slot<SYNC>();
1166 template<
typename T_signal>
1171 static const int argument_count = 5;
1186 typedef sigc::bound_const_mem_functor0<signal_source_base::hook, signal_source_base>
make_slot_f1;
1187 typedef sigc::retype_return_functor<fp_sig_getter_type, make_slot_f1>
make_slot_f2;
1188 typedef sigc::const_mem_functor0<signal_source_ptr, std::tr1::shared_ptr<signal_source_base> >
make_slot_f3;
1238 template<
typename T_functor>
1249 template<sync_type I_sync>
1252 return open_tunnel_with<I_sync>(
1255 sigc::mem_fun(&signal_type::emit),
1258 sigc::retype_return<fp_sig_getter_type>(
1265 sigc::mem_fun(&std::tr1::shared_ptr<signal_source_base>::operator *),
1271 )(_A_a1, _A_a2, _A_a3, _A_a4, _A_a5);
1278 return emit<ASYNC>(_A_a1, _A_a2, _A_a3, _A_a4, _A_a5);
1285 return emit<SYNC>(_A_a1, _A_a2, _A_a3, _A_a4, _A_a5);
1292 return emit<ASYNC>(_A_a1, _A_a2, _A_a3, _A_a4, _A_a5);
1298 template<sync_type I_sync>
1302 return tunnel_funtor_type(
1309 sigc::retype_return<fp_sig_getter_type>(
1313 sigc::mem_fun(&std::tr1::shared_ptr<signal_source_base>::operator *),
1327 return make_slot<ASYNC>();
1335 return make_slot<SYNC>();
1343 template<
typename T_signal>
1348 static const int argument_count = 6;
1364 typedef sigc::bound_const_mem_functor0<signal_source_base::hook, signal_source_base>
make_slot_f1;
1365 typedef sigc::retype_return_functor<fp_sig_getter_type, make_slot_f1>
make_slot_f2;
1366 typedef sigc::const_mem_functor0<signal_source_ptr, std::tr1::shared_ptr<signal_source_base> >
make_slot_f3;
1369 typedef sigc::const_mem_functor6<result_type, signal_type, arg1_type_, arg2_type_, arg3_type_, arg4_type_, arg5_type_, arg6_type_>
make_slot_emit_functor_type;
1416 template<
typename T_functor>
1427 template<sync_type I_sync>
1430 return open_tunnel_with<I_sync>(
1433 sigc::mem_fun(&signal_type::emit),
1436 sigc::retype_return<fp_sig_getter_type>(
1443 sigc::mem_fun(&std::tr1::shared_ptr<signal_source_base>::operator *),
1449 )(_A_a1, _A_a2, _A_a3, _A_a4, _A_a5, _A_a6);
1456 return emit<ASYNC>(_A_a1, _A_a2, _A_a3, _A_a4, _A_a5, _A_a6);
1463 return emit<SYNC>(_A_a1, _A_a2, _A_a3, _A_a4, _A_a5, _A_a6);
1470 return emit<ASYNC>(_A_a1, _A_a2, _A_a3, _A_a4, _A_a5, _A_a6);
1476 template<sync_type I_sync>
1480 return tunnel_funtor_type(
1487 sigc::retype_return<fp_sig_getter_type>(
1491 sigc::mem_fun(&std::tr1::shared_ptr<signal_source_base>::operator *),
1505 return make_slot<ASYNC>();
1513 return make_slot<SYNC>();
1521 template<
typename T_signal>
1526 static const int argument_count = 7;
1543 typedef sigc::bound_const_mem_functor0<signal_source_base::hook, signal_source_base>
make_slot_f1;
1544 typedef sigc::retype_return_functor<fp_sig_getter_type, make_slot_f1>
make_slot_f2;
1545 typedef sigc::const_mem_functor0<signal_source_ptr, std::tr1::shared_ptr<signal_source_base> >
make_slot_f3;
1548 typedef sigc::const_mem_functor7<result_type, signal_type, arg1_type_, arg2_type_, arg3_type_, arg4_type_, arg5_type_, arg6_type_, arg7_type_>
make_slot_emit_functor_type;
1595 template<
typename T_functor>
1606 template<sync_type I_sync>
1609 return open_tunnel_with<I_sync>(
1612 sigc::mem_fun(&signal_type::emit),
1615 sigc::retype_return<fp_sig_getter_type>(
1622 sigc::mem_fun(&std::tr1::shared_ptr<signal_source_base>::operator *),
1628 )(_A_a1, _A_a2, _A_a3, _A_a4, _A_a5, _A_a6, _A_a7);
1635 return emit<ASYNC>(_A_a1, _A_a2, _A_a3, _A_a4, _A_a5, _A_a6, _A_a7);
1642 return emit<SYNC>(_A_a1, _A_a2, _A_a3, _A_a4, _A_a5, _A_a6, _A_a7);
1649 return emit<ASYNC>(_A_a1, _A_a2, _A_a3, _A_a4, _A_a5, _A_a6, _A_a7);
1655 template<sync_type I_sync>
1659 return tunnel_funtor_type(
1666 sigc::retype_return<fp_sig_getter_type>(
1670 sigc::mem_fun(&std::tr1::shared_ptr<signal_source_base>::operator *),
1684 return make_slot<ASYNC>();
1692 return make_slot<SYNC>();
1702 template<
typename T_signal>
1759 template<
typename T_functor>
1775 template<
typename T_functor>
1846 template<
typename T_functor>
1917 template<
typename T_functor>
1919 int priority = Glib::PRIORITY_DEFAULT)
const
1989 template<
typename T_functor>
1991 int priority = Glib::PRIORITY_DEFAULT)
const
2061 template<
typename T_functor>
2063 int priority = Glib::PRIORITY_DEFAULT)
const