- template <typename EventType, typename Class, typename Derived>
- bool Disconnect( int winid,
- const EventType &eventType,
- void ( Class::*func )( typename EventType::CorrespondingEvent & ),
- wxObject *userData = NULL,
- Derived *eventSink = NULL )
- { return Disconnect( winid, wxID_ANY, eventType, func, userData, eventSink ); }
-
- template <typename EventType, typename Class, typename Derived>
- bool Disconnect( const EventType &eventType,
- void ( Class::*func )( typename EventType::CorrespondingEvent & ),
- wxObject *userData = NULL,
- Derived *eventSink = NULL )
- { return Disconnect( wxID_ANY, wxID_ANY, eventType, func, userData, eventSink ); }
-
- template <typename Sender, typename EventType, typename Class, typename Derived>
- static bool Disconnect( Sender *sender,
- int winid,
- int lastId,
- const EventType &eventType,
- void ( Class::*func )( typename EventType::CorrespondingEvent & ),
- wxObject *userData = NULL,
- Derived *eventSink = NULL )
+ // Static version of Connect() which allows to specify the event source and
+ // event handler in a more symmetric way
+ template <typename ObjSource, typename EventTag,
+ typename Class, typename EventArg, typename ObjClass>
+ static void Connect(ObjSource *eventSrc,
+ int winid,
+ int lastId,
+ const EventTag& eventType,
+ void (Class::*func)(EventArg&),
+ wxObject *userData = NULL,
+ ObjClass *eventSink = NULL)