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:76
The Point class is used to represent a point/coordinate/vector, for example (1.2mm; 5....
Definition point.h:78
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
std::unique_ptr< CmdZoneEdit > mEditCmd
Definition packageeditorstate_drawzone.h:98
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
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:76
Definition packageeditorfsm.h:90