EditorCommand is the discriminated union of every UI-thread→DOM mutation in the editor. New tools (path, node-edit, etc.) extend this variant as they land - one new case per logical operation, NOT one per ECS write. More...
#include <cstdint>#include <optional>#include <string>#include <vector>#include "donner/base/Transform.h"#include "donner/svg/SVGElement.h"Classes | |
| struct | donner::editor::EditorCommand |
| Discriminated union of queued editor DOM mutations. Coalescing rules in CommandQueue are keyed off kind plus the command's payload. Immediate structured source edits are not represented by this type. More... | |
| struct | donner::editor::EditorCommand::ElementReplacement |
| One source element and its fully detached replacement subtree. More... | |
| struct | donner::editor::EditorCommand::SourceRecoveryState |
| Source-pane recovery admission, rechecked before queue coalescing. More... | |
Namespaces | |
| namespace | donner |
| Top-level Donner namespace, which is split into different sub-namespaces such as donner::svg and donner::css. | |
EditorCommand is the discriminated union of every UI-thread→DOM mutation in the editor. New tools (path, node-edit, etc.) extend this variant as they land - one new case per logical operation, NOT one per ECS write.
Canvas, tool, and application writes flow through EditorApp::applyMutation(), which pushes an EditorCommand onto the per-frame CommandQueue. The queue drains and coalesces at frame boundaries. Incremental source-pane edits use the separate guarded AsyncSVGDocument::applySourceEdit() seam; see Editor Architecture.
| struct donner::editor::EditorCommand::ElementReplacement |
One source element and its fully detached replacement subtree.
| Class Members | ||
|---|---|---|
| SVGElement | original | |
| SVGElement | parent | |
| SVGElement | replacement | |