Loading common/view/wx_view_controls.cpp +23 −20 Original line number Diff line number Diff line Loading @@ -28,7 +28,6 @@ #include <view/view.h> #include <view/wx_view_controls.h> #include <gal/graphics_abstraction_layer.h> #include <tool/tool_dispatcher.h> using namespace KiGfx; Loading Loading @@ -59,13 +58,19 @@ WX_VIEW_CONTROLS::WX_VIEW_CONTROLS( VIEW* aView, wxWindow* aParentPanel ) : WX_VIEW_CONTROLS::onTimer ), NULL, this ); } void VIEW_CONTROLS::ShowCursor ( bool aEnabled ) { m_view->GetGAL()->SetCursorEnabled( aEnabled ); } void WX_VIEW_CONTROLS::onMotion( wxMouseEvent& aEvent ) { m_mousePosition.x = aEvent.GetX(); m_mousePosition.y = aEvent.GetY(); if( m_snappingEnabled ) if( m_forceCursorPosition ) m_cursorPosition = m_view->ToScreen (m_forcedPosition); else if( m_snappingEnabled ) m_cursorPosition = m_view->GetGAL()->GetGridPoint( m_mousePosition ); else m_cursorPosition = m_mousePosition; Loading Loading @@ -197,10 +202,8 @@ void WX_VIEW_CONTROLS::onTimer( wxTimerEvent& aEvent ) dir = m_view->ToWorld( dir, false ); m_view->SetCenter( m_view->GetCenter() + dir * m_autoPanSpeed ); m_parentPanel->Refresh(); // Notify tools that the cursor position has changed in the world coordinates wxCommandEvent moveEvent( TOOL_DISPATCHER::EVT_REFRESH_MOUSE ); wxPostEvent( m_parentPanel, moveEvent ); } break; Loading include/view/view_controls.h +16 −7 Original line number Diff line number Diff line Loading @@ -127,17 +127,21 @@ public: return m_cursorPosition; } /** * Function SetCursorPosition() * Allows to move the cursor to a different location. * * @param aPosition is the new location expressed in screen coordinates. * Function ForceCursorPosition() * Places the cursor immediately at a given point. Mouse movement is ignored. * @param aEnabled enable forced cursor position * @param aPosition the position */ virtual void SetCursorPosition( const VECTOR2D& aPosition ) virtual void ForceCursorPosition( bool aEnabled, const VECTOR2D& aPosition = VECTOR2D(0, 0) ) { m_cursorPosition = aPosition; m_forcedPosition = aPosition; m_forceCursorPosition = aEnabled; } virtual void ShowCursor ( bool aEnabled ); protected: /// Pointer to controlled VIEW. VIEW* m_view; Loading @@ -148,6 +152,9 @@ protected: /// Current cursor position VECTOR2D m_cursorPosition; /// Forced cursor position VECTOR2D m_forcedPosition; /// Should the cursor snap to grid or move freely bool m_snappingEnabled; Loading @@ -157,6 +164,8 @@ protected: /// Flag for turning on autopanning bool m_autoPanEnabled; bool m_forceCursorPosition; /// Distance from cursor to VIEW edge when panning is active float m_autoPanMargin; Loading Loading
common/view/wx_view_controls.cpp +23 −20 Original line number Diff line number Diff line Loading @@ -28,7 +28,6 @@ #include <view/view.h> #include <view/wx_view_controls.h> #include <gal/graphics_abstraction_layer.h> #include <tool/tool_dispatcher.h> using namespace KiGfx; Loading Loading @@ -59,13 +58,19 @@ WX_VIEW_CONTROLS::WX_VIEW_CONTROLS( VIEW* aView, wxWindow* aParentPanel ) : WX_VIEW_CONTROLS::onTimer ), NULL, this ); } void VIEW_CONTROLS::ShowCursor ( bool aEnabled ) { m_view->GetGAL()->SetCursorEnabled( aEnabled ); } void WX_VIEW_CONTROLS::onMotion( wxMouseEvent& aEvent ) { m_mousePosition.x = aEvent.GetX(); m_mousePosition.y = aEvent.GetY(); if( m_snappingEnabled ) if( m_forceCursorPosition ) m_cursorPosition = m_view->ToScreen (m_forcedPosition); else if( m_snappingEnabled ) m_cursorPosition = m_view->GetGAL()->GetGridPoint( m_mousePosition ); else m_cursorPosition = m_mousePosition; Loading Loading @@ -197,10 +202,8 @@ void WX_VIEW_CONTROLS::onTimer( wxTimerEvent& aEvent ) dir = m_view->ToWorld( dir, false ); m_view->SetCenter( m_view->GetCenter() + dir * m_autoPanSpeed ); m_parentPanel->Refresh(); // Notify tools that the cursor position has changed in the world coordinates wxCommandEvent moveEvent( TOOL_DISPATCHER::EVT_REFRESH_MOUSE ); wxPostEvent( m_parentPanel, moveEvent ); } break; Loading
include/view/view_controls.h +16 −7 Original line number Diff line number Diff line Loading @@ -127,17 +127,21 @@ public: return m_cursorPosition; } /** * Function SetCursorPosition() * Allows to move the cursor to a different location. * * @param aPosition is the new location expressed in screen coordinates. * Function ForceCursorPosition() * Places the cursor immediately at a given point. Mouse movement is ignored. * @param aEnabled enable forced cursor position * @param aPosition the position */ virtual void SetCursorPosition( const VECTOR2D& aPosition ) virtual void ForceCursorPosition( bool aEnabled, const VECTOR2D& aPosition = VECTOR2D(0, 0) ) { m_cursorPosition = aPosition; m_forcedPosition = aPosition; m_forceCursorPosition = aEnabled; } virtual void ShowCursor ( bool aEnabled ); protected: /// Pointer to controlled VIEW. VIEW* m_view; Loading @@ -148,6 +152,9 @@ protected: /// Current cursor position VECTOR2D m_cursorPosition; /// Forced cursor position VECTOR2D m_forcedPosition; /// Should the cursor snap to grid or move freely bool m_snappingEnabled; Loading @@ -157,6 +164,8 @@ protected: /// Flag for turning on autopanning bool m_autoPanEnabled; bool m_forceCursorPosition; /// Distance from cursor to VIEW edge when panning is active float m_autoPanMargin; Loading