|
From: andrew7 <bd...@us...> - 2006-11-19 17:55:23
|
Update of /cvsroot/smartwin/SmartWin/include/smartwin/aspects In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv3349/include/smartwin/aspects Modified Files: AspectMouseClicks.h Log Message: Add onLeftMouseDblClick and onRightMouseDblClick functions. Index: AspectMouseClicks.h =================================================================== RCS file: /cvsroot/smartwin/SmartWin/include/smartwin/aspects/AspectMouseClicks.h,v retrieving revision 1.13 retrieving revision 1.14 diff -u -d -r1.13 -r1.14 --- AspectMouseClicks.h 5 May 2006 17:14:38 -0000 1.13 +++ AspectMouseClicks.h 19 Nov 2006 17:55:16 -0000 1.14 @@ -186,6 +186,28 @@ void onMiddleMouseDown( typename MessageMapType::voidFunctionTakingMouseEventResult eventHandler ); void onMiddleMouseDown( typename MessageMapType::itsVoidFunctionTakingMouseEventResult eventHandler ); + + + /// Left mouse button double-clicked event handler setter + /** If supplied, function will be called when user double clicks the Left mouse button + * in the client area of the widget. <br> + * The parameter passed is const MouseEventResult & which contains the state of + * the mouse. + */ + void onLeftMouseDblClick( typename MessageMapType::itsVoidFunctionTakingMouseEventResult eventHandler ); + void onLeftMouseDblClick( typename MessageMapType::voidFunctionTakingMouseEventResult eventHandler ); + + /// Right mouse button double-clicked event handler setter + /** If supplied, function will be called when user double clicks the Right mouse button + * in the client area of the widget. <br> + * The parameter passed is const MouseEventResult & which contains the state of + * the mouse. + */ + void onRightMouseDblClick( typename MessageMapType::itsVoidFunctionTakingMouseEventResult eventHandler ); + void onRightMouseDblClick( typename MessageMapType::voidFunctionTakingMouseEventResult eventHandler ); + + + /// \ingroup EventHandlersAspectMouseClicks /// Mouse moved event handler setter /** If supplied, function will be called when user moves the mouse. <br> @@ -219,6 +241,7 @@ ); } + template< class EventHandlerClass, class WidgetType, class MessageMapType > void AspectMouseClicks< EventHandlerClass, WidgetType, MessageMapType >::onLeftMouseUp( typename MessageMapType::voidFunctionTakingMouseEventResult eventHandler ) { @@ -409,6 +432,80 @@ ); } + + + +template< class EventHandlerClass, class WidgetType, class MessageMapType > +void AspectMouseClicks< EventHandlerClass, WidgetType, MessageMapType >::onLeftMouseDblClick( typename MessageMapType::itsVoidFunctionTakingMouseEventResult eventHandler ) +{ + MessageMapType * ptrThis = boost::polymorphic_cast< MessageMapType * >( this ); + ptrThis->addNewSignal( + typename MessageMapType::SignalTupleType( + private_::SignalContent( + Message( WM_LBUTTONDBLCLK ), + reinterpret_cast< itsVoidFunction >( eventHandler ), + ptrThis + ), + typename MessageMapType::SignalType( typename MessageMapType::SignalType::SlotType( & Dispatcher::dispatchThis ) ) + ) + ); +} + +template< class EventHandlerClass, class WidgetType, class MessageMapType > +void AspectMouseClicks< EventHandlerClass, WidgetType, MessageMapType >::onLeftMouseDblClick( typename MessageMapType::voidFunctionTakingMouseEventResult eventHandler ) +{ + MessageMapType * ptrThis = boost::polymorphic_cast< MessageMapType * >( this ); + ptrThis->addNewSignal( + typename MessageMapType::SignalTupleType( + private_::SignalContent( + Message( WM_LBUTTONDBLCLK ), + reinterpret_cast< private_::SignalContent::voidFunctionTakingVoid >( eventHandler ), + ptrThis + ), + typename MessageMapType::SignalType( + MessageMapType::SignalType::SlotType( & Dispatcher::dispatch ) + ) + ) + ); +} + + +template< class EventHandlerClass, class WidgetType, class MessageMapType > +void AspectMouseClicks< EventHandlerClass, WidgetType, MessageMapType >::onRightMouseDblClick( typename MessageMapType::itsVoidFunctionTakingMouseEventResult eventHandler ) +{ + MessageMapType * ptrThis = boost::polymorphic_cast< MessageMapType * >( this ); + ptrThis->addNewSignal( + typename MessageMapType::SignalTupleType( + private_::SignalContent( + Message( WM_RBUTTONDBLCLK ), + reinterpret_cast< itsVoidFunction >( eventHandler ), + ptrThis + ), + typename MessageMapType::SignalType( typename MessageMapType::SignalType::SlotType( & Dispatcher::dispatchThis ) ) + ) + ); +} + +template< class EventHandlerClass, class WidgetType, class MessageMapType > +void AspectMouseClicks< EventHandlerClass, WidgetType, MessageMapType >::onRightMouseDblClick( typename MessageMapType::voidFunctionTakingMouseEventResult eventHandler ) +{ + MessageMapType * ptrThis = boost::polymorphic_cast< MessageMapType * >( this ); + ptrThis->addNewSignal( + typename MessageMapType::SignalTupleType( + private_::SignalContent( + Message( WM_RBUTTONDBLCLK ), + reinterpret_cast< private_::SignalContent::voidFunctionTakingVoid >( eventHandler ), + ptrThis + ), + typename MessageMapType::SignalType( + MessageMapType::SignalType::SlotType( & Dispatcher::dispatch ) + ) + ) + ); +} + + + // Mouse Movement template< class EventHandlerClass, class WidgetType, class MessageMapType > void AspectMouseClicks< EventHandlerClass, WidgetType, MessageMapType >::onMouseMove( typename MessageMapType::itsVoidFunctionTakingMouseEventResult eventHandler ) |