wok-6.x annotate visualboyadvance/stuff/1.7.2-deprecatedsigc++.patch @ rev 10991

Up: bison to 2.5.
author Christopher Rogers <slaxemulator@gmail.com>
date Thu Oct 13 02:13:42 2011 +0000 (2011-10-13)
parents
children
rev   line source
gokhlayeh@7031 1 --- src/gtk/sigccompat.h.old 2008-05-02 10:46:45.000000000 +0200
gokhlayeh@7031 2 +++ src/gtk/sigccompat.h 2008-05-02 10:47:08.000000000 +0200
gokhlayeh@7031 3 @@ -20,7 +20,7 @@
gokhlayeh@7031 4 #ifndef __VBA_SIGCCOMPAT_H__
gokhlayeh@7031 5 #define __VBA_SIGCCOMPAT_H__
gokhlayeh@7031 6
gokhlayeh@7031 7 -#undef LIBSIGC_DISABLE_DEPRECATED
gokhlayeh@7031 8 +#define LIBSIGC_DISABLE_DEPRECATED
gokhlayeh@7031 9 #include <sigc++/bind.h>
gokhlayeh@7031 10 #include <sigc++/connection.h>
gokhlayeh@7031 11
gokhlayeh@7031 12 @@ -28,9 +28,679 @@
gokhlayeh@7031 13 #include <sigc++/object.h>
gokhlayeh@7031 14 #include <sigc++/functors/mem_fun.h>
gokhlayeh@7031 15
gokhlayeh@7031 16 -namespace SigC
gokhlayeh@7031 17 +
gokhlayeh@7031 18 +// From sigc++/bind.h
gokhlayeh@7031 19 +namespace SigC {
gokhlayeh@7031 20 +
gokhlayeh@7031 21 +template <class T_bound1, class T_functor>
gokhlayeh@7031 22 +inline ::sigc::bind_functor<-1, T_functor,
gokhlayeh@7031 23 + typename ::sigc::unwrap_reference<T_bound1>::type>
gokhlayeh@7031 24 +bind(const T_functor& _A_functor, T_bound1 _A_b1)
gokhlayeh@7031 25 +{ return ::sigc::bind_functor<-1, T_functor,
gokhlayeh@7031 26 + typename ::sigc::unwrap_reference<T_bound1>::type>
gokhlayeh@7031 27 + (_A_functor, _A_b1);
gokhlayeh@7031 28 +}
gokhlayeh@7031 29 +
gokhlayeh@7031 30 +template <class T_bound1, class T_bound2, class T_functor>
gokhlayeh@7031 31 +inline ::sigc::bind_functor<-1, T_functor,
gokhlayeh@7031 32 + typename ::sigc::unwrap_reference<T_bound1>::type,
gokhlayeh@7031 33 + typename ::sigc::unwrap_reference<T_bound2>::type>
gokhlayeh@7031 34 +bind(const T_functor& _A_functor, T_bound1 _A_b1, T_bound2 _A_b2)
gokhlayeh@7031 35 +{ return ::sigc::bind_functor<-1, T_functor,
gokhlayeh@7031 36 + typename ::sigc::unwrap_reference<T_bound1>::type,
gokhlayeh@7031 37 + typename ::sigc::unwrap_reference<T_bound2>::type>
gokhlayeh@7031 38 + (_A_functor, _A_b1, _A_b2);
gokhlayeh@7031 39 +}
gokhlayeh@7031 40 +
gokhlayeh@7031 41 +template <class T_bound1, class T_bound2, class T_bound3, class T_functor>
gokhlayeh@7031 42 +inline ::sigc::bind_functor<-1, T_functor,
gokhlayeh@7031 43 + typename ::sigc::unwrap_reference<T_bound1>::type,
gokhlayeh@7031 44 + typename ::sigc::unwrap_reference<T_bound2>::type,
gokhlayeh@7031 45 + typename ::sigc::unwrap_reference<T_bound3>::type>
gokhlayeh@7031 46 +bind(const T_functor& _A_functor, T_bound1 _A_b1, T_bound2 _A_b2,T_bound3 _A_b3)
gokhlayeh@7031 47 +{ return ::sigc::bind_functor<-1, T_functor,
gokhlayeh@7031 48 + typename ::sigc::unwrap_reference<T_bound1>::type,
gokhlayeh@7031 49 + typename ::sigc::unwrap_reference<T_bound2>::type,
gokhlayeh@7031 50 + typename ::sigc::unwrap_reference<T_bound3>::type>
gokhlayeh@7031 51 + (_A_functor, _A_b1, _A_b2, _A_b3);
gokhlayeh@7031 52 +}
gokhlayeh@7031 53 +
gokhlayeh@7031 54 +}
gokhlayeh@7031 55 +
gokhlayeh@7031 56 +// From sigc++/connection.h
gokhlayeh@7031 57 +namespace SigC {
gokhlayeh@7031 58 +
gokhlayeh@7031 59 +/** Convinience class for safe disconnection.
gokhlayeh@7031 60 + * Iterators must not be used beyond the lifetime of the list
gokhlayeh@7031 61 + * they work on. A connection object can be created from a
gokhlayeh@7031 62 + * slot list iterator and may safely be used to disconnect
gokhlayeh@7031 63 + * the referred slot at any time (disconnect()). If the slot
gokhlayeh@7031 64 + * has already been destroyed, disconnect() does nothing. empty() or
gokhlayeh@7031 65 + * operator bool() can be used to test whether the connection is
gokhlayeh@7031 66 + * still active. The connection can be blocked (block(), unblock()).
gokhlayeh@7031 67 + *
gokhlayeh@7031 68 + * This is possible because the connection object gets notified
gokhlayeh@7031 69 + * when the referred slot dies (notify()).
gokhlayeh@7031 70 + *
gokhlayeh@7031 71 + * @deprecated Use sigc::connection instead.
gokhlayeh@7031 72 + * @ingroup compat
gokhlayeh@7031 73 + */
gokhlayeh@7031 74 +typedef ::sigc::connection Connection;
gokhlayeh@7031 75 +
gokhlayeh@7031 76 +}
gokhlayeh@7031 77 +
gokhlayeh@7031 78 +// From sigc++/slot.h
gokhlayeh@7031 79 +namespace SigC {
gokhlayeh@7031 80 +
gokhlayeh@7031 81 +// SlotN
gokhlayeh@7031 82 +/** Converts an arbitrary functor to a unified type which is opaque.
gokhlayeh@7031 83 + * Slot0 itself is a functor or to be more precise a closure. It contains
gokhlayeh@7031 84 + * a single, arbitrary functor (or closure) that is executed in operator()().
gokhlayeh@7031 85 + *
gokhlayeh@7031 86 + * The template arguments determine the function signature of operator()():
gokhlayeh@7031 87 + * - @e T_return The return type of operator()().
gokhlayeh@7031 88 + *
gokhlayeh@7031 89 + * To use simply assign the slot to the desired functor. If the functor
gokhlayeh@7031 90 + * is not compatible with the parameter list defined with the template
gokhlayeh@7031 91 + * arguments compiler errors are triggered. When called the slot
gokhlayeh@7031 92 + * will invoke the functor with minimal copies.
gokhlayeh@7031 93 + * block() and unblock() can be used to block the functor's invocation
gokhlayeh@7031 94 + * from operator()() temporarily.
gokhlayeh@7031 95 + *
gokhlayeh@7031 96 + * @par Example:
gokhlayeh@7031 97 + * @code
gokhlayeh@7031 98 + * #include <sigc++/slot.h>
gokhlayeh@7031 99 + * void foo(int) {}
gokhlayeh@7031 100 + * SigC::Slot1<void, long> s = SigC::slot(&foo);
gokhlayeh@7031 101 + * s(19);
gokhlayeh@7031 102 + * @endcode
gokhlayeh@7031 103 + *
gokhlayeh@7031 104 + * @deprecated Use the unnumbered template sigc::slot instead.
gokhlayeh@7031 105 + * @ingroup compat
gokhlayeh@7031 106 + */
gokhlayeh@7031 107 +template <class T_return>
gokhlayeh@7031 108 +class Slot0
gokhlayeh@7031 109 + : public ::sigc::slot<T_return>
gokhlayeh@7031 110 +{
gokhlayeh@7031 111 +public:
gokhlayeh@7031 112 + typedef ::sigc::slot<T_return> parent_type;
gokhlayeh@7031 113 +
gokhlayeh@7031 114 + /// Constructs an empty slot.
gokhlayeh@7031 115 + Slot0() {}
gokhlayeh@7031 116 +
gokhlayeh@7031 117 + /** Constructs a slot from an arbitrary functor.
gokhlayeh@7031 118 + * @param _A_func The desired functor the new slot should be assigned to.
gokhlayeh@7031 119 + */
gokhlayeh@7031 120 + template <class T_functor>
gokhlayeh@7031 121 + Slot0(const T_functor& _A_func)
gokhlayeh@7031 122 + : ::sigc::slot<T_return>(_A_func) {}
gokhlayeh@7031 123 +
gokhlayeh@7031 124 + /** Constructs a slot, copying an existing one.
gokhlayeh@7031 125 + * @param src The existing slot to copy.
gokhlayeh@7031 126 + */
gokhlayeh@7031 127 + Slot0(const parent_type& src)
gokhlayeh@7031 128 + : parent_type(src) {}
gokhlayeh@7031 129 +
gokhlayeh@7031 130 + /** Overrides this slot making a copy from another slot.
gokhlayeh@7031 131 + * @param src The slot from which to make a copy.
gokhlayeh@7031 132 + * @return @p this.
gokhlayeh@7031 133 + */
gokhlayeh@7031 134 + Slot0& operator=(const parent_type& src)
gokhlayeh@7031 135 + { parent_type::operator=(src); return *this; }
gokhlayeh@7031 136 +};
gokhlayeh@7031 137 +
gokhlayeh@7031 138 +/** Converts an arbitrary functor to a unified type which is opaque.
gokhlayeh@7031 139 + * Slot1 itself is a functor or to be more precise a closure. It contains
gokhlayeh@7031 140 + * a single, arbitrary functor (or closure) that is executed in operator()().
gokhlayeh@7031 141 + *
gokhlayeh@7031 142 + * The template arguments determine the function signature of operator()():
gokhlayeh@7031 143 + * - @e T_return The return type of operator()().
gokhlayeh@7031 144 + * - @e T_arg1 Argument type used in the definition of operator()().
gokhlayeh@7031 145 + *
gokhlayeh@7031 146 + * To use simply assign the slot to the desired functor. If the functor
gokhlayeh@7031 147 + * is not compatible with the parameter list defined with the template
gokhlayeh@7031 148 + * arguments compiler errors are triggered. When called the slot
gokhlayeh@7031 149 + * will invoke the functor with minimal copies.
gokhlayeh@7031 150 + * block() and unblock() can be used to block the functor's invocation
gokhlayeh@7031 151 + * from operator()() temporarily.
gokhlayeh@7031 152 + *
gokhlayeh@7031 153 + * @par Example:
gokhlayeh@7031 154 + * @code
gokhlayeh@7031 155 + * #include <sigc++/slot.h>
gokhlayeh@7031 156 + * void foo(int) {}
gokhlayeh@7031 157 + * SigC::Slot1<void, long> s = SigC::slot(&foo);
gokhlayeh@7031 158 + * s(19);
gokhlayeh@7031 159 + * @endcode
gokhlayeh@7031 160 + *
gokhlayeh@7031 161 + * @deprecated Use the unnumbered template sigc::slot instead.
gokhlayeh@7031 162 + * @ingroup compat
gokhlayeh@7031 163 + */
gokhlayeh@7031 164 +template <class T_return, class T_arg1>
gokhlayeh@7031 165 +class Slot1
gokhlayeh@7031 166 + : public ::sigc::slot<T_return, T_arg1>
gokhlayeh@7031 167 +{
gokhlayeh@7031 168 +public:
gokhlayeh@7031 169 + typedef ::sigc::slot<T_return, T_arg1> parent_type;
gokhlayeh@7031 170 +
gokhlayeh@7031 171 + /// Constructs an empty slot.
gokhlayeh@7031 172 + Slot1() {}
gokhlayeh@7031 173 +
gokhlayeh@7031 174 + /** Constructs a slot from an arbitrary functor.
gokhlayeh@7031 175 + * @param _A_func The desired functor the new slot should be assigned to.
gokhlayeh@7031 176 + */
gokhlayeh@7031 177 + template <class T_functor>
gokhlayeh@7031 178 + Slot1(const T_functor& _A_func)
gokhlayeh@7031 179 + : ::sigc::slot<T_return, T_arg1>(_A_func) {}
gokhlayeh@7031 180 +
gokhlayeh@7031 181 + /** Constructs a slot, copying an existing one.
gokhlayeh@7031 182 + * @param src The existing slot to copy.
gokhlayeh@7031 183 + */
gokhlayeh@7031 184 + Slot1(const parent_type& src)
gokhlayeh@7031 185 + : parent_type(src) {}
gokhlayeh@7031 186 +
gokhlayeh@7031 187 + /** Overrides this slot making a copy from another slot.
gokhlayeh@7031 188 + * @param src The slot from which to make a copy.
gokhlayeh@7031 189 + * @return @p this.
gokhlayeh@7031 190 + */
gokhlayeh@7031 191 + Slot1& operator=(const parent_type& src)
gokhlayeh@7031 192 + { parent_type::operator=(src); return *this; }
gokhlayeh@7031 193 +};
gokhlayeh@7031 194 +
gokhlayeh@7031 195 +/** Converts an arbitrary functor to a unified type which is opaque.
gokhlayeh@7031 196 + * Slot2 itself is a functor or to be more precise a closure. It contains
gokhlayeh@7031 197 + * a single, arbitrary functor (or closure) that is executed in operator()().
gokhlayeh@7031 198 + *
gokhlayeh@7031 199 + * The template arguments determine the function signature of operator()():
gokhlayeh@7031 200 + * - @e T_return The return type of operator()().
gokhlayeh@7031 201 + * - @e T_arg1 Argument type used in the definition of operator()().
gokhlayeh@7031 202 + * - @e T_arg2 Argument type used in the definition of operator()().
gokhlayeh@7031 203 + *
gokhlayeh@7031 204 + * To use simply assign the slot to the desired functor. If the functor
gokhlayeh@7031 205 + * is not compatible with the parameter list defined with the template
gokhlayeh@7031 206 + * arguments compiler errors are triggered. When called the slot
gokhlayeh@7031 207 + * will invoke the functor with minimal copies.
gokhlayeh@7031 208 + * block() and unblock() can be used to block the functor's invocation
gokhlayeh@7031 209 + * from operator()() temporarily.
gokhlayeh@7031 210 + *
gokhlayeh@7031 211 + * @par Example:
gokhlayeh@7031 212 + * @code
gokhlayeh@7031 213 + * #include <sigc++/slot.h>
gokhlayeh@7031 214 + * void foo(int) {}
gokhlayeh@7031 215 + * SigC::Slot1<void, long> s = SigC::slot(&foo);
gokhlayeh@7031 216 + * s(19);
gokhlayeh@7031 217 + * @endcode
gokhlayeh@7031 218 + *
gokhlayeh@7031 219 + * @deprecated Use the unnumbered template sigc::slot instead.
gokhlayeh@7031 220 + * @ingroup compat
gokhlayeh@7031 221 + */
gokhlayeh@7031 222 +template <class T_return, class T_arg1,class T_arg2>
gokhlayeh@7031 223 +class Slot2
gokhlayeh@7031 224 + : public ::sigc::slot<T_return, T_arg1,T_arg2>
gokhlayeh@7031 225 +{
gokhlayeh@7031 226 +public:
gokhlayeh@7031 227 + typedef ::sigc::slot<T_return, T_arg1,T_arg2> parent_type;
gokhlayeh@7031 228 +
gokhlayeh@7031 229 + /// Constructs an empty slot.
gokhlayeh@7031 230 + Slot2() {}
gokhlayeh@7031 231 +
gokhlayeh@7031 232 + /** Constructs a slot from an arbitrary functor.
gokhlayeh@7031 233 + * @param _A_func The desired functor the new slot should be assigned to.
gokhlayeh@7031 234 + */
gokhlayeh@7031 235 + template <class T_functor>
gokhlayeh@7031 236 + Slot2(const T_functor& _A_func)
gokhlayeh@7031 237 + : ::sigc::slot<T_return, T_arg1,T_arg2>(_A_func) {}
gokhlayeh@7031 238 +
gokhlayeh@7031 239 + /** Constructs a slot, copying an existing one.
gokhlayeh@7031 240 + * @param src The existing slot to copy.
gokhlayeh@7031 241 + */
gokhlayeh@7031 242 + Slot2(const parent_type& src)
gokhlayeh@7031 243 + : parent_type(src) {}
gokhlayeh@7031 244 +
gokhlayeh@7031 245 + /** Overrides this slot making a copy from another slot.
gokhlayeh@7031 246 + * @param src The slot from which to make a copy.
gokhlayeh@7031 247 + * @return @p this.
gokhlayeh@7031 248 + */
gokhlayeh@7031 249 + Slot2& operator=(const parent_type& src)
gokhlayeh@7031 250 + { parent_type::operator=(src); return *this; }
gokhlayeh@7031 251 +};
gokhlayeh@7031 252 +
gokhlayeh@7031 253 +/** Converts an arbitrary functor to a unified type which is opaque.
gokhlayeh@7031 254 + * Slot3 itself is a functor or to be more precise a closure. It contains
gokhlayeh@7031 255 + * a single, arbitrary functor (or closure) that is executed in operator()().
gokhlayeh@7031 256 + *
gokhlayeh@7031 257 + * The template arguments determine the function signature of operator()():
gokhlayeh@7031 258 + * - @e T_return The return type of operator()().
gokhlayeh@7031 259 + * - @e T_arg1 Argument type used in the definition of operator()().
gokhlayeh@7031 260 + * - @e T_arg2 Argument type used in the definition of operator()().
gokhlayeh@7031 261 + * - @e T_arg3 Argument type used in the definition of operator()().
gokhlayeh@7031 262 + *
gokhlayeh@7031 263 + * To use simply assign the slot to the desired functor. If the functor
gokhlayeh@7031 264 + * is not compatible with the parameter list defined with the template
gokhlayeh@7031 265 + * arguments compiler errors are triggered. When called the slot
gokhlayeh@7031 266 + * will invoke the functor with minimal copies.
gokhlayeh@7031 267 + * block() and unblock() can be used to block the functor's invocation
gokhlayeh@7031 268 + * from operator()() temporarily.
gokhlayeh@7031 269 + *
gokhlayeh@7031 270 + * @par Example:
gokhlayeh@7031 271 + * @code
gokhlayeh@7031 272 + * #include <sigc++/slot.h>
gokhlayeh@7031 273 + * void foo(int) {}
gokhlayeh@7031 274 + * SigC::Slot1<void, long> s = SigC::slot(&foo);
gokhlayeh@7031 275 + * s(19);
gokhlayeh@7031 276 + * @endcode
gokhlayeh@7031 277 + *
gokhlayeh@7031 278 + * @deprecated Use the unnumbered template sigc::slot instead.
gokhlayeh@7031 279 + * @ingroup compat
gokhlayeh@7031 280 + */
gokhlayeh@7031 281 +template <class T_return, class T_arg1,class T_arg2,class T_arg3>
gokhlayeh@7031 282 +class Slot3
gokhlayeh@7031 283 + : public ::sigc::slot<T_return, T_arg1,T_arg2,T_arg3>
gokhlayeh@7031 284 +{
gokhlayeh@7031 285 +public:
gokhlayeh@7031 286 + typedef ::sigc::slot<T_return, T_arg1,T_arg2,T_arg3> parent_type;
gokhlayeh@7031 287 +
gokhlayeh@7031 288 + /// Constructs an empty slot.
gokhlayeh@7031 289 + Slot3() {}
gokhlayeh@7031 290 +
gokhlayeh@7031 291 + /** Constructs a slot from an arbitrary functor.
gokhlayeh@7031 292 + * @param _A_func The desired functor the new slot should be assigned to.
gokhlayeh@7031 293 + */
gokhlayeh@7031 294 + template <class T_functor>
gokhlayeh@7031 295 + Slot3(const T_functor& _A_func)
gokhlayeh@7031 296 + : ::sigc::slot<T_return, T_arg1,T_arg2,T_arg3>(_A_func) {}
gokhlayeh@7031 297 +
gokhlayeh@7031 298 + /** Constructs a slot, copying an existing one.
gokhlayeh@7031 299 + * @param src The existing slot to copy.
gokhlayeh@7031 300 + */
gokhlayeh@7031 301 + Slot3(const parent_type& src)
gokhlayeh@7031 302 + : parent_type(src) {}
gokhlayeh@7031 303 +
gokhlayeh@7031 304 + /** Overrides this slot making a copy from another slot.
gokhlayeh@7031 305 + * @param src The slot from which to make a copy.
gokhlayeh@7031 306 + * @return @p this.
gokhlayeh@7031 307 + */
gokhlayeh@7031 308 + Slot3& operator=(const parent_type& src)
gokhlayeh@7031 309 + { parent_type::operator=(src); return *this; }
gokhlayeh@7031 310 +};
gokhlayeh@7031 311 +
gokhlayeh@7031 312 +/** Converts an arbitrary functor to a unified type which is opaque.
gokhlayeh@7031 313 + * Slot4 itself is a functor or to be more precise a closure. It contains
gokhlayeh@7031 314 + * a single, arbitrary functor (or closure) that is executed in operator()().
gokhlayeh@7031 315 + *
gokhlayeh@7031 316 + * The template arguments determine the function signature of operator()():
gokhlayeh@7031 317 + * - @e T_return The return type of operator()().
gokhlayeh@7031 318 + * - @e T_arg1 Argument type used in the definition of operator()().
gokhlayeh@7031 319 + * - @e T_arg2 Argument type used in the definition of operator()().
gokhlayeh@7031 320 + * - @e T_arg3 Argument type used in the definition of operator()().
gokhlayeh@7031 321 + * - @e T_arg4 Argument type used in the definition of operator()().
gokhlayeh@7031 322 + *
gokhlayeh@7031 323 + * To use simply assign the slot to the desired functor. If the functor
gokhlayeh@7031 324 + * is not compatible with the parameter list defined with the template
gokhlayeh@7031 325 + * arguments compiler errors are triggered. When called the slot
gokhlayeh@7031 326 + * will invoke the functor with minimal copies.
gokhlayeh@7031 327 + * block() and unblock() can be used to block the functor's invocation
gokhlayeh@7031 328 + * from operator()() temporarily.
gokhlayeh@7031 329 + *
gokhlayeh@7031 330 + * @par Example:
gokhlayeh@7031 331 + * @code
gokhlayeh@7031 332 + * #include <sigc++/slot.h>
gokhlayeh@7031 333 + * void foo(int) {}
gokhlayeh@7031 334 + * SigC::Slot1<void, long> s = SigC::slot(&foo);
gokhlayeh@7031 335 + * s(19);
gokhlayeh@7031 336 + * @endcode
gokhlayeh@7031 337 + *
gokhlayeh@7031 338 + * @deprecated Use the unnumbered template sigc::slot instead.
gokhlayeh@7031 339 + * @ingroup compat
gokhlayeh@7031 340 + */
gokhlayeh@7031 341 +template <class T_return, class T_arg1,class T_arg2,class T_arg3,class T_arg4>
gokhlayeh@7031 342 +class Slot4
gokhlayeh@7031 343 + : public ::sigc::slot<T_return, T_arg1,T_arg2,T_arg3,T_arg4>
gokhlayeh@7031 344 +{
gokhlayeh@7031 345 +public:
gokhlayeh@7031 346 + typedef ::sigc::slot<T_return, T_arg1,T_arg2,T_arg3,T_arg4> parent_type;
gokhlayeh@7031 347 +
gokhlayeh@7031 348 + /// Constructs an empty slot.
gokhlayeh@7031 349 + Slot4() {}
gokhlayeh@7031 350 +
gokhlayeh@7031 351 + /** Constructs a slot from an arbitrary functor.
gokhlayeh@7031 352 + * @param _A_func The desired functor the new slot should be assigned to.
gokhlayeh@7031 353 + */
gokhlayeh@7031 354 + template <class T_functor>
gokhlayeh@7031 355 + Slot4(const T_functor& _A_func)
gokhlayeh@7031 356 + : ::sigc::slot<T_return, T_arg1,T_arg2,T_arg3,T_arg4>(_A_func) {}
gokhlayeh@7031 357 +
gokhlayeh@7031 358 + /** Constructs a slot, copying an existing one.
gokhlayeh@7031 359 + * @param src The existing slot to copy.
gokhlayeh@7031 360 + */
gokhlayeh@7031 361 + Slot4(const parent_type& src)
gokhlayeh@7031 362 + : parent_type(src) {}
gokhlayeh@7031 363 +
gokhlayeh@7031 364 + /** Overrides this slot making a copy from another slot.
gokhlayeh@7031 365 + * @param src The slot from which to make a copy.
gokhlayeh@7031 366 + * @return @p this.
gokhlayeh@7031 367 + */
gokhlayeh@7031 368 + Slot4& operator=(const parent_type& src)
gokhlayeh@7031 369 + { parent_type::operator=(src); return *this; }
gokhlayeh@7031 370 +};
gokhlayeh@7031 371 +
gokhlayeh@7031 372 +/** Converts an arbitrary functor to a unified type which is opaque.
gokhlayeh@7031 373 + * Slot5 itself is a functor or to be more precise a closure. It contains
gokhlayeh@7031 374 + * a single, arbitrary functor (or closure) that is executed in operator()().
gokhlayeh@7031 375 + *
gokhlayeh@7031 376 + * The template arguments determine the function signature of operator()():
gokhlayeh@7031 377 + * - @e T_return The return type of operator()().
gokhlayeh@7031 378 + * - @e T_arg1 Argument type used in the definition of operator()().
gokhlayeh@7031 379 + * - @e T_arg2 Argument type used in the definition of operator()().
gokhlayeh@7031 380 + * - @e T_arg3 Argument type used in the definition of operator()().
gokhlayeh@7031 381 + * - @e T_arg4 Argument type used in the definition of operator()().
gokhlayeh@7031 382 + * - @e T_arg5 Argument type used in the definition of operator()().
gokhlayeh@7031 383 + *
gokhlayeh@7031 384 + * To use simply assign the slot to the desired functor. If the functor
gokhlayeh@7031 385 + * is not compatible with the parameter list defined with the template
gokhlayeh@7031 386 + * arguments compiler errors are triggered. When called the slot
gokhlayeh@7031 387 + * will invoke the functor with minimal copies.
gokhlayeh@7031 388 + * block() and unblock() can be used to block the functor's invocation
gokhlayeh@7031 389 + * from operator()() temporarily.
gokhlayeh@7031 390 + *
gokhlayeh@7031 391 + * @par Example:
gokhlayeh@7031 392 + * @code
gokhlayeh@7031 393 + * #include <sigc++/slot.h>
gokhlayeh@7031 394 + * void foo(int) {}
gokhlayeh@7031 395 + * SigC::Slot1<void, long> s = SigC::slot(&foo);
gokhlayeh@7031 396 + * s(19);
gokhlayeh@7031 397 + * @endcode
gokhlayeh@7031 398 + *
gokhlayeh@7031 399 + * @deprecated Use the unnumbered template sigc::slot instead.
gokhlayeh@7031 400 + * @ingroup compat
gokhlayeh@7031 401 + */
gokhlayeh@7031 402 +template <class T_return, class T_arg1,class T_arg2,class T_arg3,class T_arg4,class T_arg5>
gokhlayeh@7031 403 +class Slot5
gokhlayeh@7031 404 + : public ::sigc::slot<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5>
gokhlayeh@7031 405 +{
gokhlayeh@7031 406 +public:
gokhlayeh@7031 407 + typedef ::sigc::slot<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5> parent_type;
gokhlayeh@7031 408 +
gokhlayeh@7031 409 + /// Constructs an empty slot.
gokhlayeh@7031 410 + Slot5() {}
gokhlayeh@7031 411 +
gokhlayeh@7031 412 + /** Constructs a slot from an arbitrary functor.
gokhlayeh@7031 413 + * @param _A_func The desired functor the new slot should be assigned to.
gokhlayeh@7031 414 + */
gokhlayeh@7031 415 + template <class T_functor>
gokhlayeh@7031 416 + Slot5(const T_functor& _A_func)
gokhlayeh@7031 417 + : ::sigc::slot<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5>(_A_func) {}
gokhlayeh@7031 418 +
gokhlayeh@7031 419 + /** Constructs a slot, copying an existing one.
gokhlayeh@7031 420 + * @param src The existing slot to copy.
gokhlayeh@7031 421 + */
gokhlayeh@7031 422 + Slot5(const parent_type& src)
gokhlayeh@7031 423 + : parent_type(src) {}
gokhlayeh@7031 424 +
gokhlayeh@7031 425 + /** Overrides this slot making a copy from another slot.
gokhlayeh@7031 426 + * @param src The slot from which to make a copy.
gokhlayeh@7031 427 + * @return @p this.
gokhlayeh@7031 428 + */
gokhlayeh@7031 429 + Slot5& operator=(const parent_type& src)
gokhlayeh@7031 430 + { parent_type::operator=(src); return *this; }
gokhlayeh@7031 431 +};
gokhlayeh@7031 432 +
gokhlayeh@7031 433 +/** Converts an arbitrary functor to a unified type which is opaque.
gokhlayeh@7031 434 + * Slot6 itself is a functor or to be more precise a closure. It contains
gokhlayeh@7031 435 + * a single, arbitrary functor (or closure) that is executed in operator()().
gokhlayeh@7031 436 + *
gokhlayeh@7031 437 + * The template arguments determine the function signature of operator()():
gokhlayeh@7031 438 + * - @e T_return The return type of operator()().
gokhlayeh@7031 439 + * - @e T_arg1 Argument type used in the definition of operator()().
gokhlayeh@7031 440 + * - @e T_arg2 Argument type used in the definition of operator()().
gokhlayeh@7031 441 + * - @e T_arg3 Argument type used in the definition of operator()().
gokhlayeh@7031 442 + * - @e T_arg4 Argument type used in the definition of operator()().
gokhlayeh@7031 443 + * - @e T_arg5 Argument type used in the definition of operator()().
gokhlayeh@7031 444 + * - @e T_arg6 Argument type used in the definition of operator()().
gokhlayeh@7031 445 + *
gokhlayeh@7031 446 + * To use simply assign the slot to the desired functor. If the functor
gokhlayeh@7031 447 + * is not compatible with the parameter list defined with the template
gokhlayeh@7031 448 + * arguments compiler errors are triggered. When called the slot
gokhlayeh@7031 449 + * will invoke the functor with minimal copies.
gokhlayeh@7031 450 + * block() and unblock() can be used to block the functor's invocation
gokhlayeh@7031 451 + * from operator()() temporarily.
gokhlayeh@7031 452 + *
gokhlayeh@7031 453 + * @par Example:
gokhlayeh@7031 454 + * @code
gokhlayeh@7031 455 + * #include <sigc++/slot.h>
gokhlayeh@7031 456 + * void foo(int) {}
gokhlayeh@7031 457 + * SigC::Slot1<void, long> s = SigC::slot(&foo);
gokhlayeh@7031 458 + * s(19);
gokhlayeh@7031 459 + * @endcode
gokhlayeh@7031 460 + *
gokhlayeh@7031 461 + * @deprecated Use the unnumbered template sigc::slot instead.
gokhlayeh@7031 462 + * @ingroup compat
gokhlayeh@7031 463 + */
gokhlayeh@7031 464 +template <class T_return, class T_arg1,class T_arg2,class T_arg3,class T_arg4,class T_arg5,class T_arg6>
gokhlayeh@7031 465 +class Slot6
gokhlayeh@7031 466 + : public ::sigc::slot<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6>
gokhlayeh@7031 467 +{
gokhlayeh@7031 468 +public:
gokhlayeh@7031 469 + typedef ::sigc::slot<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6> parent_type;
gokhlayeh@7031 470 +
gokhlayeh@7031 471 + /// Constructs an empty slot.
gokhlayeh@7031 472 + Slot6() {}
gokhlayeh@7031 473 +
gokhlayeh@7031 474 + /** Constructs a slot from an arbitrary functor.
gokhlayeh@7031 475 + * @param _A_func The desired functor the new slot should be assigned to.
gokhlayeh@7031 476 + */
gokhlayeh@7031 477 + template <class T_functor>
gokhlayeh@7031 478 + Slot6(const T_functor& _A_func)
gokhlayeh@7031 479 + : ::sigc::slot<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6>(_A_func) {}
gokhlayeh@7031 480 +
gokhlayeh@7031 481 + /** Constructs a slot, copying an existing one.
gokhlayeh@7031 482 + * @param src The existing slot to copy.
gokhlayeh@7031 483 + */
gokhlayeh@7031 484 + Slot6(const parent_type& src)
gokhlayeh@7031 485 + : parent_type(src) {}
gokhlayeh@7031 486 +
gokhlayeh@7031 487 + /** Overrides this slot making a copy from another slot.
gokhlayeh@7031 488 + * @param src The slot from which to make a copy.
gokhlayeh@7031 489 + * @return @p this.
gokhlayeh@7031 490 + */
gokhlayeh@7031 491 + Slot6& operator=(const parent_type& src)
gokhlayeh@7031 492 + { parent_type::operator=(src); return *this; }
gokhlayeh@7031 493 +};
gokhlayeh@7031 494 +
gokhlayeh@7031 495 +/** Converts an arbitrary functor to a unified type which is opaque.
gokhlayeh@7031 496 + * Slot7 itself is a functor or to be more precise a closure. It contains
gokhlayeh@7031 497 + * a single, arbitrary functor (or closure) that is executed in operator()().
gokhlayeh@7031 498 + *
gokhlayeh@7031 499 + * The template arguments determine the function signature of operator()():
gokhlayeh@7031 500 + * - @e T_return The return type of operator()().
gokhlayeh@7031 501 + * - @e T_arg1 Argument type used in the definition of operator()().
gokhlayeh@7031 502 + * - @e T_arg2 Argument type used in the definition of operator()().
gokhlayeh@7031 503 + * - @e T_arg3 Argument type used in the definition of operator()().
gokhlayeh@7031 504 + * - @e T_arg4 Argument type used in the definition of operator()().
gokhlayeh@7031 505 + * - @e T_arg5 Argument type used in the definition of operator()().
gokhlayeh@7031 506 + * - @e T_arg6 Argument type used in the definition of operator()().
gokhlayeh@7031 507 + * - @e T_arg7 Argument type used in the definition of operator()().
gokhlayeh@7031 508 + *
gokhlayeh@7031 509 + * To use simply assign the slot to the desired functor. If the functor
gokhlayeh@7031 510 + * is not compatible with the parameter list defined with the template
gokhlayeh@7031 511 + * arguments compiler errors are triggered. When called the slot
gokhlayeh@7031 512 + * will invoke the functor with minimal copies.
gokhlayeh@7031 513 + * block() and unblock() can be used to block the functor's invocation
gokhlayeh@7031 514 + * from operator()() temporarily.
gokhlayeh@7031 515 + *
gokhlayeh@7031 516 + * @par Example:
gokhlayeh@7031 517 + * @code
gokhlayeh@7031 518 + * #include <sigc++/slot.h>
gokhlayeh@7031 519 + * void foo(int) {}
gokhlayeh@7031 520 + * SigC::Slot1<void, long> s = SigC::slot(&foo);
gokhlayeh@7031 521 + * s(19);
gokhlayeh@7031 522 + * @endcode
gokhlayeh@7031 523 + *
gokhlayeh@7031 524 + * @deprecated Use the unnumbered template sigc::slot instead.
gokhlayeh@7031 525 + * @ingroup compat
gokhlayeh@7031 526 + */
gokhlayeh@7031 527 +template <class T_return, class T_arg1,class T_arg2,class T_arg3,class T_arg4,class T_arg5,class T_arg6,class T_arg7>
gokhlayeh@7031 528 +class Slot7
gokhlayeh@7031 529 + : public ::sigc::slot<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7>
gokhlayeh@7031 530 {
gokhlayeh@7031 531 +public:
gokhlayeh@7031 532 + typedef ::sigc::slot<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7> parent_type;
gokhlayeh@7031 533 +
gokhlayeh@7031 534 + /// Constructs an empty slot.
gokhlayeh@7031 535 + Slot7() {}
gokhlayeh@7031 536 +
gokhlayeh@7031 537 + /** Constructs a slot from an arbitrary functor.
gokhlayeh@7031 538 + * @param _A_func The desired functor the new slot should be assigned to.
gokhlayeh@7031 539 + */
gokhlayeh@7031 540 + template <class T_functor>
gokhlayeh@7031 541 + Slot7(const T_functor& _A_func)
gokhlayeh@7031 542 + : ::sigc::slot<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7>(_A_func) {}
gokhlayeh@7031 543 +
gokhlayeh@7031 544 + /** Constructs a slot, copying an existing one.
gokhlayeh@7031 545 + * @param src The existing slot to copy.
gokhlayeh@7031 546 + */
gokhlayeh@7031 547 + Slot7(const parent_type& src)
gokhlayeh@7031 548 + : parent_type(src) {}
gokhlayeh@7031 549 +
gokhlayeh@7031 550 + /** Overrides this slot making a copy from another slot.
gokhlayeh@7031 551 + * @param src The slot from which to make a copy.
gokhlayeh@7031 552 + * @return @p this.
gokhlayeh@7031 553 + */
gokhlayeh@7031 554 + Slot7& operator=(const parent_type& src)
gokhlayeh@7031 555 + { parent_type::operator=(src); return *this; }
gokhlayeh@7031 556 +};
gokhlayeh@7031 557 +
gokhlayeh@7031 558 +
gokhlayeh@7031 559 +
gokhlayeh@7031 560 +#ifndef DOXYGEN_SHOULD_SKIP_THIS
gokhlayeh@7031 561 +/* gcc 3.2 reports a strange conflict between SigC::slot() and sigc::slot<>
gokhlayeh@7031 562 + * when "using namespace SigC" and later using a slot(obj,func) overload
gokhlayeh@7031 563 + * without the prefix "SigC::". Probably a compiler bug. I will investigate.
gokhlayeh@7031 564 + *
gokhlayeh@7031 565 + * This ugly hack avoids the error:
gokhlayeh@7031 566 + */
gokhlayeh@7031 567 +// #define slot(...) make_slot(__VA_ARGS__) /* only works for gcc */
gokhlayeh@7031 568 +#endif
gokhlayeh@7031 569
gokhlayeh@7031 570 +
gokhlayeh@7031 571 +// slot()
gokhlayeh@7031 572 +/** Creates a functor of type SigC::Slot0 that wraps an existing non-member function.
gokhlayeh@7031 573 + *
gokhlayeh@7031 574 + * @param _A_func Pointer to function that should be wrapped.
gokhlayeh@7031 575 + * @return Functor that executes _A_func on invokation.
gokhlayeh@7031 576 + *
gokhlayeh@7031 577 + * @deprecated Use sigc::ptr_fun() instead.
gokhlayeh@7031 578 + * @ingroup compat
gokhlayeh@7031 579 + */
gokhlayeh@7031 580 +template <class T_return>
gokhlayeh@7031 581 +inline Slot0<T_return>
gokhlayeh@7031 582 +slot(T_return (*_A_func)())
gokhlayeh@7031 583 +{ return Slot0<T_return>(_A_func); }
gokhlayeh@7031 584 +
gokhlayeh@7031 585 +/** Creates a functor of type SigC::Slot1 that wraps an existing non-member function.
gokhlayeh@7031 586 + *
gokhlayeh@7031 587 + * @param _A_func Pointer to function that should be wrapped.
gokhlayeh@7031 588 + * @return Functor that executes _A_func on invokation.
gokhlayeh@7031 589 + *
gokhlayeh@7031 590 + * @deprecated Use sigc::ptr_fun() instead.
gokhlayeh@7031 591 + * @ingroup compat
gokhlayeh@7031 592 + */
gokhlayeh@7031 593 +template <class T_return, class T_arg1>
gokhlayeh@7031 594 +inline Slot1<T_return, T_arg1>
gokhlayeh@7031 595 +slot(T_return (*_A_func)(T_arg1))
gokhlayeh@7031 596 +{ return Slot1<T_return, T_arg1>(_A_func); }
gokhlayeh@7031 597 +
gokhlayeh@7031 598 +/** Creates a functor of type SigC::Slot2 that wraps an existing non-member function.
gokhlayeh@7031 599 + *
gokhlayeh@7031 600 + * @param _A_func Pointer to function that should be wrapped.
gokhlayeh@7031 601 + * @return Functor that executes _A_func on invokation.
gokhlayeh@7031 602 + *
gokhlayeh@7031 603 + * @deprecated Use sigc::ptr_fun() instead.
gokhlayeh@7031 604 + * @ingroup compat
gokhlayeh@7031 605 + */
gokhlayeh@7031 606 +template <class T_return, class T_arg1,class T_arg2>
gokhlayeh@7031 607 +inline Slot2<T_return, T_arg1,T_arg2>
gokhlayeh@7031 608 +slot(T_return (*_A_func)(T_arg1,T_arg2))
gokhlayeh@7031 609 +{ return Slot2<T_return, T_arg1,T_arg2>(_A_func); }
gokhlayeh@7031 610 +
gokhlayeh@7031 611 +/** Creates a functor of type SigC::Slot3 that wraps an existing non-member function.
gokhlayeh@7031 612 + *
gokhlayeh@7031 613 + * @param _A_func Pointer to function that should be wrapped.
gokhlayeh@7031 614 + * @return Functor that executes _A_func on invokation.
gokhlayeh@7031 615 + *
gokhlayeh@7031 616 + * @deprecated Use sigc::ptr_fun() instead.
gokhlayeh@7031 617 + * @ingroup compat
gokhlayeh@7031 618 + */
gokhlayeh@7031 619 +template <class T_return, class T_arg1,class T_arg2,class T_arg3>
gokhlayeh@7031 620 +inline Slot3<T_return, T_arg1,T_arg2,T_arg3>
gokhlayeh@7031 621 +slot(T_return (*_A_func)(T_arg1,T_arg2,T_arg3))
gokhlayeh@7031 622 +{ return Slot3<T_return, T_arg1,T_arg2,T_arg3>(_A_func); }
gokhlayeh@7031 623 +
gokhlayeh@7031 624 +/** Creates a functor of type SigC::Slot4 that wraps an existing non-member function.
gokhlayeh@7031 625 + *
gokhlayeh@7031 626 + * @param _A_func Pointer to function that should be wrapped.
gokhlayeh@7031 627 + * @return Functor that executes _A_func on invokation.
gokhlayeh@7031 628 + *
gokhlayeh@7031 629 + * @deprecated Use sigc::ptr_fun() instead.
gokhlayeh@7031 630 + * @ingroup compat
gokhlayeh@7031 631 + */
gokhlayeh@7031 632 +template <class T_return, class T_arg1,class T_arg2,class T_arg3,class T_arg4>
gokhlayeh@7031 633 +inline Slot4<T_return, T_arg1,T_arg2,T_arg3,T_arg4>
gokhlayeh@7031 634 +slot(T_return (*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4))
gokhlayeh@7031 635 +{ return Slot4<T_return, T_arg1,T_arg2,T_arg3,T_arg4>(_A_func); }
gokhlayeh@7031 636 +
gokhlayeh@7031 637 +/** Creates a functor of type SigC::Slot5 that wraps an existing non-member function.
gokhlayeh@7031 638 + *
gokhlayeh@7031 639 + * @param _A_func Pointer to function that should be wrapped.
gokhlayeh@7031 640 + * @return Functor that executes _A_func on invokation.
gokhlayeh@7031 641 + *
gokhlayeh@7031 642 + * @deprecated Use sigc::ptr_fun() instead.
gokhlayeh@7031 643 + * @ingroup compat
gokhlayeh@7031 644 + */
gokhlayeh@7031 645 +template <class T_return, class T_arg1,class T_arg2,class T_arg3,class T_arg4,class T_arg5>
gokhlayeh@7031 646 +inline Slot5<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5>
gokhlayeh@7031 647 +slot(T_return (*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5))
gokhlayeh@7031 648 +{ return Slot5<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5>(_A_func); }
gokhlayeh@7031 649 +
gokhlayeh@7031 650 +/** Creates a functor of type SigC::Slot6 that wraps an existing non-member function.
gokhlayeh@7031 651 + *
gokhlayeh@7031 652 + * @param _A_func Pointer to function that should be wrapped.
gokhlayeh@7031 653 + * @return Functor that executes _A_func on invokation.
gokhlayeh@7031 654 + *
gokhlayeh@7031 655 + * @deprecated Use sigc::ptr_fun() instead.
gokhlayeh@7031 656 + * @ingroup compat
gokhlayeh@7031 657 + */
gokhlayeh@7031 658 +template <class T_return, class T_arg1,class T_arg2,class T_arg3,class T_arg4,class T_arg5,class T_arg6>
gokhlayeh@7031 659 +inline Slot6<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6>
gokhlayeh@7031 660 +slot(T_return (*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6))
gokhlayeh@7031 661 +{ return Slot6<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6>(_A_func); }
gokhlayeh@7031 662 +
gokhlayeh@7031 663 +/** Creates a functor of type SigC::Slot7 that wraps an existing non-member function.
gokhlayeh@7031 664 + *
gokhlayeh@7031 665 + * @param _A_func Pointer to function that should be wrapped.
gokhlayeh@7031 666 + * @return Functor that executes _A_func on invokation.
gokhlayeh@7031 667 + *
gokhlayeh@7031 668 + * @deprecated Use sigc::ptr_fun() instead.
gokhlayeh@7031 669 + * @ingroup compat
gokhlayeh@7031 670 + */
gokhlayeh@7031 671 +template <class T_return, class T_arg1,class T_arg2,class T_arg3,class T_arg4,class T_arg5,class T_arg6,class T_arg7>
gokhlayeh@7031 672 +inline Slot7<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7>
gokhlayeh@7031 673 +slot(T_return (*_A_func)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7))
gokhlayeh@7031 674 +{ return Slot7<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7>(_A_func); }
gokhlayeh@7031 675 +
gokhlayeh@7031 676 +
gokhlayeh@7031 677 +
gokhlayeh@7031 678 +}
gokhlayeh@7031 679 +
gokhlayeh@7031 680 +// From sigc++/object.h
gokhlayeh@7031 681 +namespace SigC {
gokhlayeh@7031 682 +
gokhlayeh@7031 683 +// Object
gokhlayeh@7031 684 +typedef ::sigc::trackable Object;
gokhlayeh@7031 685 +
gokhlayeh@7031 686 +}
gokhlayeh@7031 687 +
gokhlayeh@7031 688 +namespace SigC
gokhlayeh@7031 689 +{
gokhlayeh@7031 690 template <class T_return, class T_obj1, class T_obj2>
gokhlayeh@7031 691 inline Slot0<T_return>
gokhlayeh@7031 692 slot( T_obj1& _A_obj, T_return (T_obj2::*_A_func)() )