5 #ifndef _SIGXMACROS_INTERNAL_TYPES_H_
6 #define _SIGXMACROS_INTERNAL_TYPES_H_
27 #include <sigc++/type_traits.h>
28 #include <sigc++/functors/functor_trait.h>
29 #include <sigc++/adaptors/deduce_result_type.h>
30 #include <sigc++/adaptors/adaptor_trait.h>
31 #include <sigc++/adaptors/bind.h>
32 #include <sigc++/adaptors/hide.h>
33 #include <sigc++/functors/slot_base.h>
41 #define SIGX_DISPATCH_WITH_FUNCTOR(T_functor)\
42 sigc::bind_functor<-1, sigc::hide_functor<-1, T_functor>, shared_dispatchable>
55 template <
typename T_arg1 = sigc::nil,
typename T_arg2 = sigc::nil,
typename T_arg3 = sigc::nil,
typename T_arg4 = sigc::nil,
typename T_arg5 = sigc::nil,
typename T_arg6 = sigc::nil,
typename T_arg7 = sigc::nil>
57 {
static const int value = 7; };
61 {
static const int value = 0; };
62 template <
typename T_arg1>
64 {
static const int value = 1; };
65 template <
typename T_arg1,
typename T_arg2>
67 {
static const int value = 2; };
68 template <
typename T_arg1,
typename T_arg2,
typename T_arg3>
70 {
static const int value = 3; };
71 template <
typename T_arg1,
typename T_arg2,
typename T_arg3,
typename T_arg4>
73 {
static const int value = 4; };
74 template <
typename T_arg1,
typename T_arg2,
typename T_arg3,
typename T_arg4,
typename T_arg5>
76 {
static const int value = 5; };
77 template <
typename T_arg1,
typename T_arg2,
typename T_arg3,
typename T_arg4,
typename T_arg5,
typename T_arg6>
79 {
static const int value = 6; };
94 template<
typename T_functor,
96 sigc::is_base_and_derived<sigx::tunnel_base, T_functor>::value,
98 sigc::is_base_and_derived<sigc::adaptor_base, T_functor>::value>
105 template<
typename T_functor>
108 static const bool value =
true;
114 template<
typename T_functor>
117 static const bool value =
true;
124 template<
typename T_functor>
129 static const bool value =
false;
135 template<
typename T_functor>
152 template<
typename T_functor>
174 bool I_isslot = sigc::is_base_and_derived<sigc::slot_base, T_functor>::value,
175 bool I_isadaptor = sigc::is_base_and_derived<sigc::adaptor_base, T_functor>::value>
182 template<
typename T_functor>
185 static const bool value =
true;
192 template<
typename T_functor>
197 static const bool value =
false;
203 template<
typename T_functor>
220 template<
typename T_functor>
239 template<typename T_functor, bool I_isadapter = sigc::is_base_and_derived<sigc::adaptor_base, T_functor>::value>
243 template<
typename T_functor>
260 return _A_func.obj_.invoke();
265 template<
typename T_functor>
270 return is_adaptor_dispatchable(_A_func);
276 template<
typename T_adapted_functor>
277 static const dispatchable& is_adaptor_dispatchable(
const sigc::adaptor_functor<T_adapted_functor>& _A_func)
283 template<
typename T_adapted_functor>
287 return _A_func.bound1_.visit();
291 template<
typename T_adapted_functor>
292 static const dispatchable& is_adaptor_dispatchable(
const T_adapted_functor& _A_func)
295 typedef typename T_adapted_functor::adaptor_type adaptor_type;
297 return is_adaptor_dispatchable(_A_func.functor_);
Used to find a dispatchable out of the functor/adaptor chain, i.e. the dispatchable object of a mem_f...
Definition: internal_types.h:240
finds out whether T_functor is tunneled, i.e. whether the functor chain contains a functor derived fr...
Definition: internal_types.h:99
finds out whether T_functor is tunneled, i.e. whether the functor chain contains a functor derived fr...
Definition: internal_types.h:176
T_functor::adaptor_type adaptor_type
Definition: internal_types.h:210
static const dispatchable & find_dispatchable(typename sigc::type_trait< T_functor >::take _A_func)
Definition: internal_types.h:268
T_functor::adaptor_type adaptor_type
Definition: internal_types.h:142
Derived classes designate their ability to dispatch messages over a sigx::dispatcher.
Definition: dispatchable.h:51
Definition: auto_dispatchable.h:27
static const int value
Definition: internal_types.h:57
#define SIGX_DISPATCH_WITH_FUNCTOR(T_functor)
Definition: internal_types.h:41
counts the provided template arguments. There are specializations for 1 to (7-1) template arguments t...
Definition: internal_types.h:56
static const dispatchable & find_dispatchable(typename sigc::type_trait< T_functor >::take _A_func)
Definition: internal_types.h:246