Donner SVG 0.8.0-pre
SVG editor and embeddable C⁠+⁠+⁠20 engine.
Loading...
Searching...
No Matches
donner::editor::EditorShell Class Reference

Stateful advanced editor frontend shell. Owns all long-lived GUI/editor orchestration state. More...

#include "donner/editor/EditorShell.h"

Public Member Functions

 EditorShell (gui::EditorWindow &window, EditorShellOptions options)
bool valid () const
void prepareFrame ()
 Perform bounded work that may yield and must run before ImGui::NewFrame().
void runFrame ()
svg::FontCatalogfontCatalog ()
 Font catalog (embedded Google Fonts + macOS system fonts) backing document font resolution and the font picker (Design 0013 W2 consumes this).
std::optional< float > nextIdleWakeSeconds () const
 Return the next idle-loop wake interval needed for throttled UI work.
const ViewportStateviewportForReadback () const
 Current render-pane viewport. Exposed for replay/readback harnesses that need to crop the presented framebuffer to the canvas region.
void overrideViewportForReplay (const ViewportState &viewport)
 Override the viewport from a recorded replay frame before rendering.
void queueDocumentSpaceReplayInputForTesting (EditorShellDocumentReplayInput input)
 Queue document-space pointer input for the next replay frame.
void queueScrollEventForReplayForTesting (RenderPaneScrollEvent event)
 Queue one scroll event for the next replay frame.
void applyReplayActionForTesting (const repro::ReproAction &action)
 Apply one semantic .rnr replay action before the next frame.
void setSourcePaneVisibleForReplay (bool visible)
 Set the source-pane target visibility before deterministic replay frames.
repro::ReplaySemanticActionCost estimateReplayActionCostForTesting (const repro::ReproAction &action) const
 Estimate source and selection work before applying one semantic replay action.
repro::ReplayInputFrameCost estimateReplayInputCostForTesting (const repro::ReproFrame &frame, std::size_t heldRepeatSourceRewriteUnits=0) const
 Estimate source-mutation work reachable through raw replay input for one frame.
std::optional< std::string > selectedElementLabelForReadback () const
 Current selection label for replay/readback harnesses.
std::optional< std::string > documentSourceForReadback () const
 Current document source text, for replay/readback harness assertions about gesture writebacks (nullopt without a document/source store).
LayerInspectorStatusReadback layerInspectorStatusForReadback () const
 Current layer-inspector freshness status for replay/readback harnesses.
AsyncRendererasyncRendererForReplay ()
 Async renderer access for replay harnesses.
void setContentOnlyCaptureForNextFrameForReplay (bool enabled)
 Suppress non-document render-pane presentation on the next frame.

Friends

class EditorShellTestAccess

Detailed Description

Stateful advanced editor frontend shell. Owns all long-lived GUI/editor orchestration state.

Member Function Documentation

◆ applyReplayActionForTesting()

void donner::editor::EditorShell::applyReplayActionForTesting ( const repro::ReproAction & action)

Apply one semantic .rnr replay action before the next frame.

Parameters
actionTool or paint action decoded from a replay frame.

◆ overrideViewportForReplay()

void donner::editor::EditorShell::overrideViewportForReplay ( const ViewportState & viewport)

Override the viewport from a recorded replay frame before rendering.

Parameters
viewportRecorded viewport snapshot to install for the next frame.

◆ queueDocumentSpaceReplayInputForTesting()

void donner::editor::EditorShell::queueDocumentSpaceReplayInputForTesting ( EditorShellDocumentReplayInput input)

Queue document-space pointer input for the next replay frame.

This bypasses GUI-coordinate hit testing while keeping the frame rendered through the real editor shell and presentation stack.

Parameters
inputReplay pointer input for the next frame.

◆ queueScrollEventForReplayForTesting()

void donner::editor::EditorShell::queueScrollEventForReplayForTesting ( RenderPaneScrollEvent event)

Queue one scroll event for the next replay frame.

Parameters
eventRecorded scroll event to feed through the render-pane gesture bridge.

◆ setContentOnlyCaptureForNextFrameForReplay()

void donner::editor::EditorShell::setContentOnlyCaptureForNextFrameForReplay ( bool enabled)
inline

Suppress non-document render-pane presentation on the next frame.

Parameters
enabledTrue to make the next frame's readback content-only.

◆ setSourcePaneVisibleForReplay()

void donner::editor::EditorShell::setSourcePaneVisibleForReplay ( bool visible)
inline

Set the source-pane target visibility before deterministic replay frames.

Parameters
visibleTrue to open the source pane.

The documentation for this class was generated from the following file: