|
|
Donner SVG 0.8.0-pre
SVG editor and embeddable C++20 engine.
|
#include <optional>Classes | |
| struct | donner::editor::EditorAdaptiveUiInput |
| Inputs used to select and size the adaptive editor chrome. More... | |
| struct | donner::editor::EditorAdaptiveUiLayout |
| Adaptive editor chrome geometry and feature subset for one frame. More... | |
| struct | donner::editor::EditorMainPaneLayoutInput |
| Inputs used to compute the editor's horizontal source/render/sidebar layout. More... | |
| struct | donner::editor::EditorMainPaneLayout |
| Computed geometry for the editor's horizontal source/render/sidebar layout. More... | |
| struct | donner::editor::RightSidebarLayoutInput |
| Inputs used to compute the editor's right sidebar pane layout. More... | |
| struct | donner::editor::RightSidebarLayout |
| Computed geometry for the editor's right sidebar panes. More... | |
| struct | donner::editor::LayoutRect |
| A screen-space rectangle in logical pixels. More... | |
| struct | donner::editor::RenderPaneLatchInput |
| Geometry the render pane's first-fit latch inspects to decide whether this frame's pane rectangle is the settled one. See RenderPaneViewportLatchReady. More... | |
Namespaces | |
| namespace | donner |
| Top-level Donner namespace, which is split into different sub-namespaces such as donner::svg and donner::css. | |
Enumerations | |
| enum class | donner::editor::EditorUiMode { Desktop , CompactTouch } |
| Editor chrome profile selected from viewport constraints and input type. More... | |
| enum class | donner::editor::CompactPanelPlacement { Right , Bottom } |
| Edge used for the compact Layers or Inspector sheet. More... | |
Functions | |
| EditorAdaptiveUiLayout | donner::editor::ComputeEditorAdaptiveUiLayout (const EditorAdaptiveUiInput &input) |
| Select and size the editor's desktop or compact-touch chrome. | |
| EditorMainPaneLayout | donner::editor::ComputeEditorMainPaneLayout (const EditorMainPaneLayoutInput &input) |
| Compute horizontal pane geometry for the source pane, render pane, and right sidebar. | |
| float | donner::editor::AdvanceSourcePaneRevealProgress (float currentProgress, bool targetVisible, float deltaSeconds) |
| Advance the source-pane reveal toward its target at the fixed UI animation rate. | |
| RightSidebarLayout | donner::editor::ComputeRightSidebarLayout (const RightSidebarLayoutInput &input) |
| Compute right sidebar pane geometry for a fixed tree view and resizable inspector/layer split. | |
| float | donner::editor::ResizeLayerPanelHeightFraction (float currentFraction, float lowerPaneHeight, float minLayerPanelHeight, float maxLayerPanelHeight, float splitterDeltaY) |
| Update the layer panel height fraction from a vertical splitter drag. | |
| bool | donner::editor::RenderPaneViewportLatchReady (const RenderPaneLatchInput &input) |
| Decide whether the render pane's rectangle may be latched as the document's initial fit. | |
|
strong |
|
strong |
|
nodiscard |
Advance the source-pane reveal toward its target at the fixed UI animation rate.
| currentProgress | Current linear progress in [0, 1]. |
| targetVisible | True to advance toward fully visible. |
| deltaSeconds | Elapsed frame time in seconds. |
|
nodiscard |
Select and size the editor's desktop or compact-touch chrome.
Constrained native windows use the compact profile even before a touch event. Touch-preferred platforms use it at every size so controls never shrink after the first gesture.
| input | Window geometry and input preference. |
|
nodiscard |
Compute horizontal pane geometry for the source pane, render pane, and right sidebar.
| input | Horizontal layout constraints and persisted sidebar width. |
|
nodiscard |
Compute right sidebar pane geometry for a fixed tree view and resizable inspector/layer split.
| input | Sidebar layout constraints and persisted layer split fraction. |
|
nodiscard |
Decide whether the render pane's rectangle may be latched as the document's initial fit.
The canvas is docked into the DockSpace central node, so ImGui owns the pane rectangle and reports transient values while a layout change propagates. Fitting the document to a transient rectangle and rendering against it presents the document at the wrong fit (the placeholder viewport) and then jumps once the pane settles, so the latch must reject every pre-settle rectangle regardless of how many frames the transient survives.
The policy is two-sided and grounded in geometry the shell computes itself:
A dock tree this policy cannot recognize, a customized layout restored from the persisted .ini say, falls back to the pre-existing rule: the same content region on two consecutive frames, still gated on a stationary host.
| input | This frame's pane, central-node, and host geometry plus the previous frame's. |
|
nodiscard |
Update the layer panel height fraction from a vertical splitter drag.
| currentFraction | Current fraction of lowerPaneHeight assigned to the layer panel. |
| lowerPaneHeight | Height available to the inspector and layer panel. |
| minLayerPanelHeight | Minimum allowed layer panel height. |
| maxLayerPanelHeight | Maximum allowed layer panel height. |
| splitterDeltaY | ImGui mouse delta for the splitter; dragging down shrinks the layer panel. |