diff --git a/common/tool/tool_dispatcher.cpp b/common/tool/tool_dispatcher.cpp index 9d2ad52482..9e32598854 100644 --- a/common/tool/tool_dispatcher.cpp +++ b/common/tool/tool_dispatcher.cpp @@ -117,21 +117,6 @@ KiGfx::VIEW* TOOL_DISPATCHER::getView() } -int TOOL_DISPATCHER::decodeModifiers( const wxKeyboardState* aState ) const -{ - int mods = 0; - - if( aState->ControlDown() ) - mods |= MD_ModCtrl; - if( aState->AltDown() ) - mods |= MD_ModAlt; - if( aState->ShiftDown() ) - mods |= MD_ModShift; - - return mods; -} - - bool TOOL_DISPATCHER::handleMouseButton( wxEvent& aEvent, int aIndex, bool aMotion ) { ButtonState* st = m_buttons[aIndex]; @@ -142,7 +127,7 @@ bool TOOL_DISPATCHER::handleMouseButton( wxEvent& aEvent, int aIndex, bool aMoti bool up = type == st->upEvent; bool down = type == st->downEvent; - int mods = decodeModifiers( static_cast( &aEvent ) ); + int mods = decodeModifiers( static_cast( &aEvent ) ); int args = st->button | mods; if( down ) // Handle mouse button press @@ -246,7 +231,7 @@ void TOOL_DISPATCHER::DispatchWxEvent( wxEvent& aEvent ) { wxKeyEvent* ke = static_cast( &aEvent ); int key = ke->GetKeyCode(); - int mods = decodeModifiers( ke ); + int mods = decodeModifiers( ke ); if( type == wxEVT_KEY_UP ) { diff --git a/include/tool/tool_dispatcher.h b/include/tool/tool_dispatcher.h index 15c0b73eb4..1c8c3fe579 100644 --- a/include/tool/tool_dispatcher.h +++ b/include/tool/tool_dispatcher.h @@ -29,8 +29,6 @@ #include -#include - class TOOL_MANAGER; class PCB_BASE_FRAME; @@ -98,7 +96,20 @@ private: bool handleMouseButton( wxEvent& aEvent, int aIndex, bool aMotion ); ///> Saves the state of key modifiers (Alt, Ctrl and so on). - int decodeModifiers( const wxKeyboardState* aState ) const; + template + static int decodeModifiers( const EventType* aState ) + { + int mods = 0; + + if( aState->ControlDown() ) + mods |= MD_ModCtrl; + if( aState->AltDown() ) + mods |= MD_ModAlt; + if( aState->ShiftDown() ) + mods |= MD_ModShift; + + return mods; + } ///> Stores all the informations regarding a mouse button state.