20#ifndef LIBREPCB_EDITOR_PACKAGEEDITORSTATE_DRAWZONE_H
21#define LIBREPCB_EDITOR_PACKAGEEDITORSTATE_DRAWZONE_H
45class ZoneGraphicsItem;
66 bool entry() noexcept override;
67 bool exit() noexcept override;
69 const noexcept override;
75 QGraphicsSceneMouseEvent& e) noexcept override;
77 QGraphicsSceneMouseEvent& e) noexcept override;
79 QGraphicsSceneMouseEvent& e) noexcept override;
87 bool start() noexcept;
88 bool abort(
bool showErrMsgBox = true) noexcept;
The Angle class is used to represent an angle (for example 12.75 degrees)
Definition: angle.h:78
The Point class is used to represent a point/coordinate/vector, for example (1.2mm; 5....
Definition: point.h:79
The Zone class.
Definition: zone.h:43
The CmdZoneEdit class.
Definition: cmdzoneedit.h:48
The PackageEditorState_DrawZone class.
Definition: packageeditorstate_drawzone.h:54
bool processGraphicsSceneMouseMoved(QGraphicsSceneMouseEvent &e) noexcept override
Definition: packageeditorstate_drawzone.cpp:202
bool abort(bool showErrMsgBox=true) noexcept
Definition: packageeditorstate_drawzone.cpp:268
PackageEditorState_DrawZone()=delete
bool addNextSegment() noexcept
Definition: packageeditorstate_drawzone.cpp:291
void updateOutline() noexcept
Definition: packageeditorstate_drawzone.cpp:350
void updateCursorPosition(Qt::KeyboardModifiers modifiers) noexcept
Definition: packageeditorstate_drawzone.cpp:334
std::shared_ptr< Zone > mCurrentZone
Definition: packageeditorstate_drawzone.h:99
Angle mLastAngle
Definition: packageeditorstate_drawzone.h:107
bool processAbortCommand() noexcept override
Definition: packageeditorstate_drawzone.cpp:226
bool processKeyPressed(const QKeyEvent &e) noexcept override
Definition: packageeditorstate_drawzone.cpp:182
void updateOverlayText() noexcept
Definition: packageeditorstate_drawzone.cpp:357
PackageEditorState_DrawZone(const PackageEditorState_DrawZone &other)=delete
bool mIsUndoCmdActive
Definition: packageeditorstate_drawzone.h:97
bool start() noexcept
Definition: packageeditorstate_drawzone.cpp:238
void angleEditValueChanged(const Angle &value) noexcept
Definition: packageeditorstate_drawzone.cpp:408
bool exit() noexcept override
Definition: packageeditorstate_drawzone.cpp:156
std::shared_ptr< ZoneGraphicsItem > mCurrentGraphicsItem
Definition: packageeditorstate_drawzone.h:100
virtual ~PackageEditorState_DrawZone() noexcept
Definition: packageeditorstate_drawzone.cpp:58
Zone::Rules mLastRules
Definition: packageeditorstate_drawzone.h:106
void updateStatusBarMessage() noexcept
Definition: packageeditorstate_drawzone.cpp:395
QSet< EditorWidgetBase::Feature > getAvailableFeatures() const noexcept override
Definition: packageeditorstate_drawzone.cpp:172
Zone::Layers mLastLayers
Definition: packageeditorstate_drawzone.h:105
bool processKeyReleased(const QKeyEvent &e) noexcept override
Definition: packageeditorstate_drawzone.cpp:192
bool processGraphicsSceneLeftMouseButtonPressed(QGraphicsSceneMouseEvent &e) noexcept override
Definition: packageeditorstate_drawzone.cpp:209
QScopedPointer< CmdZoneEdit > mEditCmd
Definition: packageeditorstate_drawzone.h:98
Point mLastScenePos
Definition: packageeditorstate_drawzone.h:101
Point mCursorPos
Definition: packageeditorstate_drawzone.h:102
bool entry() noexcept override
Definition: packageeditorstate_drawzone.cpp:65
bool processGraphicsSceneLeftMouseButtonDoubleClicked(QGraphicsSceneMouseEvent &e) noexcept override
Definition: packageeditorstate_drawzone.cpp:220
The PackageEditorState class is the base class of all package editor FSM states.
Definition: packageeditorstate.h:52
The ZoneGraphicsItem class.
Definition: zonegraphicsitem.h:48
Definition: occmodel.cpp:77
Definition: packageeditorfsm.h:90