|
|
Donner 0.8.0-pre
Embeddable browser-grade SVG2 engine
|
SelectTool is the editor's first and (in this milestone) only tool. It dispatches three different gestures off onMouseDown: More...
#include <cstdint>#include <optional>#include <span>#include <vector>#include "donner/base/Box.h"#include "donner/base/EcsRegistry.h"#include "donner/base/Transform.h"#include "donner/base/Vector2.h"#include "donner/editor/AttributeWriteback.h"#include "donner/editor/SelectionTransformHandles.h"#include "donner/editor/Tool.h"#include "donner/svg/SVGElement.h"Classes | |
| class | donner::editor::SelectTool |
| struct | donner::editor::SelectTool::ActiveDragPreview |
| Preview state for an in-progress drag, consumed by the async renderer. More... | |
| struct | donner::editor::SelectTool::ActiveTransformBoundsPreview |
| Active transform chrome state for selection bounds presentation. More... | |
| struct | donner::editor::SelectTool::ActiveGesturePreview |
| Active selection gesture state for editor UI chrome. More... | |
| struct | donner::editor::SelectTool::CompletedDragWriteback |
| Payload needed to write a completed drag back into the source pane. For multi-element drags this is the primary; additional writeback entries are latched in extras. More... | |
Namespaces | |
| namespace | donner |
| Top-level Donner namespace, which is split into different sub-namespaces such as donner::svg and donner::css. | |
SelectTool is the editor's first and (in this milestone) only tool. It dispatches three different gestures off onMouseDown:
All DOM mutations flow through EditorApp::applyMutation() as EditorCommand::SetTransform — never directly.
| struct donner::editor::SelectTool::ActiveDragPreview |
Preview state for an in-progress drag, consumed by the async renderer.
| Class Members | ||
|---|---|---|
| Transform2d | documentFromCachedDocument = Transform2d() | Current affine transform from the cached document placement to the active preview placement. |
| uint64_t | dragGeneration = 0 | Monotonic id for one mouse-down/move/up drag gesture. |
| Entity | entity = entt::null | Entity being dragged. |
| vector< Entity > | extraEntities | Additional selected entities moving with entity in the same gesture. |
| Vector2d | translation = Vector2d::Zero() | Current drag translation in document coordinates. |
| struct donner::editor::SelectTool::ActiveTransformBoundsPreview |
Active transform chrome state for selection bounds presentation.
| Class Members | ||
|---|---|---|
| Transform2d | documentFromStartDocument = Transform2d() | Current transform from gesture-start document space to active document space. |
| Box2d | startBoundsDoc | Selection AABB captured when the transform gesture started. |
| struct donner::editor::SelectTool::ActiveGesturePreview |
Active selection gesture state for editor UI chrome.
| Class Members | ||
|---|---|---|
| SelectionTransformCorner | corner = SelectionTransformCorner::TopLeft | Transform handle corner that started the gesture. |
| Vector2d | currentDocumentDelta = Vector2d::Zero() | Current drag delta in document coordinates. |
| Transform2d | documentFromStartDocument = Transform2d() | Current transform from gesture-start document space to active document space. |
| bool | hasMoved = false | Whether the gesture has moved past the drag threshold. |
| ActiveGestureKind | kind = ActiveGestureKind::Move | Gesture kind currently being performed. |
| Box2d | startBoundsDoc | Selection bounds captured at gesture start. |
| struct donner::editor::SelectTool::CompletedDragWriteback |
Payload needed to write a completed drag back into the source pane. For multi-element drags this is the primary; additional writeback entries are latched in extras.
| Class Members | ||
|---|---|---|
| vector< CompletedDragWriteback > | extras | Additional writeback entries for extra elements in a multi-element drag. One per non-primary element that had a capturable writeback target. Empty for single-element drags. |
| AttributeWritebackTarget | target | |
| Transform2d | transform | |