VIEW_CONTROLS: added ForceCursorPosition() and ShowCursor() methods
This commit is contained in:
parent
dea793209d
commit
88ee288465
|
@ -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;
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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…
Reference in New Issue