33 #ifndef __WX_VIEW_CONTROLS_H 34 #define __WX_VIEW_CONTROLS_H 45 class ZOOM_CONTROLLER;
57 void onWheel( wxMouseEvent& aEvent );
58 void onMotion( wxMouseEvent& aEvent );
59 #if wxCHECK_VERSION( 3, 1, 0 ) || defined( USE_OSX_MAGNIFY_EVENT ) 60 void onMagnify( wxMouseEvent& aEvent );
62 void onButton( wxMouseEvent& aEvent );
63 void onEnter( wxMouseEvent& WXUNUSED( aEvent ) );
64 void onLeave( wxMouseEvent& WXUNUSED( aEvent ) );
65 void onTimer( wxTimerEvent& WXUNUSED( aEvent ) );
66 void onScroll( wxScrollWinEvent& aEvent );
90 bool aTriggeredByArrows,
long aArrowCommand )
override;
97 bool aWarpView =
false )
override;
190 long int m_lastTimestamp;
VECTOR2D m_lookStartPoint
Current direction of panning (only autopanning mode).
virtual ~WX_VIEW_CONTROLS()
void LoadSettings() override
Event that forces mouse move event in the dispatcher (eg.
The Cairo implementation of the graphics abstraction layer.
Panning with mouse button pressed.
static const wxEventType EVT_REFRESH_MOUSE
An implementation of class VIEW_CONTROLS for wxWidgets library.
wxPoint getMouseScreenPosition() const
Get the cursor position in the screen coordinates.
VECTOR2D GetMousePosition(bool aWorldCoordinates=true) const override
Return the current mouse pointer position.
std::unique_ptr< ZOOM_CONTROLLER > m_zoomController
void onButton(wxMouseEvent &aEvent)
VECTOR2D m_scrollScale
Current scrollbar position.
void UpdateScrollbars()
End any mouse drag action still in progress.
void onCaptureLost(wxMouseEvent &WXUNUSED(aEvent))
Zooming with mouse button pressed.
VECTOR2D GetRawCursorPosition(bool aSnappingEnabled=true) const override
Return the current cursor position in world coordinates ignoring the cursorUp position force mode.
void onWheel(wxMouseEvent &aEvent)
Handler functions.
Panning on approaching borders of the frame.
VECTOR2< double > VECTOR2D
void SetCrossHairCursorPosition(const VECTOR2D &aPosition, bool aWarpView) override
void CaptureCursor(bool aEnabled) override
Force the cursor to stay within the drawing panel area.
An interface for classes handling user events controlling the view behavior such as zooming,...
STATE
< Possible states for WX_VIEW_CONTROLS.
void refreshMouse()
Send an event to refresh mouse position.
void handleCursorCapture(int x, int y)
Limit the cursor position to within the canvas by warping it.
void onMotion(wxMouseEvent &aEvent)
void WarpCursor(const VECTOR2D &aPosition, bool aWorldCoordinates=false, bool aWarpView=false) override
Set the viewport center to the current cursor position and warps the cursor to the screen center.
void ForceCursorPosition(bool aEnabled, const VECTOR2D &aPosition=VECTOR2D(0, 0)) override
Applies VIEW_CONTROLS settings from the program COMMON_SETTINGS.
VECTOR2D m_zoomStartPoint
Current cursor position (world coordinates).
wxScrolledCanvas * m_parentPanel
Store information about point where dragging has started.
void onTimer(wxTimerEvent &WXUNUSED(aEvent))
VECTOR2D m_panDirection
Timer responsible for handling autopanning.
bool m_updateCursor
A #ZOOM_CONTROLLER that determines zoom steps. This is platform-specific.
double m_initialZoomScale
The mouse position when a drag zoom started.
VECTOR2I m_scrollPos
The zoom scale when a drag zoom started.
WX_VIEW_CONTROLS(VIEW *aView, wxScrolledCanvas *aParentPanel)
bool handleAutoPanning(const wxMouseEvent &aEvent)
Compute new viewport settings while in autopanning mode.
void onEnter(wxMouseEvent &WXUNUSED(aEvent))
VECTOR2D m_dragStartPoint
Stores information about the center of viewport when dragging has started.
void SetCursorPosition(const VECTOR2D &aPosition, bool warpView, bool aTriggeredByArrows, long aArrowCommand) override
Move the graphic crosshair cursor to the requested position expressed in world coordinates.
STATE m_state
Panel that is affected by VIEW_CONTROLS.
Hold a (potentially large) number of VIEW_ITEMs and renders them on a graphics device provided by the...
void CenterOnCursor() const override
Adjusts the scrollbars position to match the current viewport.
void onScroll(wxScrollWinEvent &aEvent)
VECTOR2D GetCursorPosition() const
Return the current cursor position in world coordinates.
void onLeave(wxMouseEvent &WXUNUSED(aEvent))
VECTOR2D m_cursorPos
Flag deciding whether the cursor position should be calculated using the mouse position.
wxTimer m_panTimer
Ratio used for scaling world coordinates to scrollbar position.