7#ifndef DIGITIZE_STATE_ABSTRACT_BASE_H
8#define DIGITIZE_STATE_ABSTRACT_BASE_H
10#include "PointStyle.h"
25 DIGITIZE_STATE_COLOR_PICKER,
28 DIGITIZE_STATE_POINT_MATCH,
29 DIGITIZE_STATE_SEGMENT,
30 DIGITIZE_STATE_SELECT,
48 DigitizeState previousState) = 0;
57 virtual void end() = 0;
61 const QString &pointIdentifier);
69 bool atLeastOneSelectedItem) = 0;
76 QPointF posScreen) = 0;
97 virtual QString
state()
const = 0;
115 bool m_isOverrideCursor;
Base class for all digitizing states. This serves as an interface to DigitizeStateContext.
void handleSetOverrideCursor(CmdMediator *cmdMediator, const QCursor &cursor)
Handle the command to set the override cursor.
virtual void end()=0
Method that is called at the exact moment a state is exited. Typically called just before begin for t...
virtual void updateModelSegments(const DocumentModelSegments &modelSegments)=0
Update the segments given the new settings.
void removeOverrideCursor()
Remove the override cursor if it is in use. This is called after a leave event, and prior to displayi...
virtual void handleCurveChange(CmdMediator *cmdMediator)=0
Handle the selection of a new curve. At a minimum, DigitizeStateSegment will generate a new set of Se...
virtual QString activeCurve() const =0
Name of the active Curve. This can include AXIS_CURVE_NAME.
virtual void handleMousePress(CmdMediator *cmdMediator, QPointF pos)=0
Handle a mouse press that was intercepted earlier.
void handleContextMenuEvent(CmdMediator *cmdMediator, const QString &pointIdentifier)
Handle a right click that was intercepted earlier. This is done in the superclass since it works the ...
virtual void begin(CmdMediator *cmdMediator, DigitizeState previousState)=0
Method that is called at the exact moment a state is entered.
virtual void handleMouseMove(CmdMediator *cmdMediator, QPointF posScreen)=0
Handle a mouse move. This is part of an experiment to see if augmenting the cursor in Point Match mod...
virtual QCursor cursor(CmdMediator *cmdMediator) const =0
Returns the state-specific cursor shape.
virtual void handleLeave(CmdMediator *cmdMediator)
Handle leave in case an override cursor is in effect from last QDialog, by resetting the override cur...
DigitizeStateContext & context()
Reference to the DigitizeStateContext that contains all the DigitizeStateAbstractBase subclasses,...
virtual void updateModelDigitizeCurve(CmdMediator *cmdMediator, const DocumentModelDigitizeCurve &modelDigitizeCurve)=0
Update the digitize curve settings.
virtual void handleKeyPress(CmdMediator *cmdMediator, Qt::Key key, bool atLeastOneSelectedItem)=0
Handle a key press that was intercepted earlier.
void setCursor(CmdMediator *cmdMediator)
Update the cursor according to the current state.
virtual void handleMouseRelease(CmdMediator *cmdMediator, QPointF pos)=0
Handle a mouse release that was intercepted earlier.
virtual QString state() const =0
State name for debugging.
Container for all DigitizeStateAbstractBase subclasses. This functions as the context class in a stan...
Model for DlgSettingsDigitizeCurve and CmdSettingsDigitizeCurve.
Model for DlgSettingsSegments and CmdSettingsSegments.