Donner SVG Editor & Engine
SVG-native editor and embeddable SVG2 + CSS3 engine in C++20, with GPU (WebGPU) and compact CPU renderers, built for correctness, security, and performance.
Loading...
Searching...
No Matches
EditorShellLayout.h File Reference
This graph shows which files directly or indirectly include this file:

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...

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.
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.

Enumeration Type Documentation

◆ CompactPanelPlacement

Edge used for the compact Layers or Inspector sheet.

Enumerator
Right 

Landscape viewport: panel overlays the right edge.

Bottom 

Portrait or square viewport: panel overlays the bottom edge.

◆ EditorUiMode

enum class donner::editor::EditorUiMode
strong

Editor chrome profile selected from viewport constraints and input type.

Enumerator
Desktop 

Persistent desktop menus, source access, and docked panels.

CompactTouch 

Canvas-first chrome with touch-sized controls and one panel sheet.

Function Documentation

◆ ComputeEditorAdaptiveUiLayout()

EditorAdaptiveUiLayout donner::editor::ComputeEditorAdaptiveUiLayout ( const EditorAdaptiveUiInput & input)
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.

Parameters
inputWindow geometry and input preference.

◆ ComputeEditorMainPaneLayout()

EditorMainPaneLayout donner::editor::ComputeEditorMainPaneLayout ( const EditorMainPaneLayoutInput & input)
nodiscard

Compute horizontal pane geometry for the source pane, render pane, and right sidebar.

Parameters
inputHorizontal layout constraints and persisted sidebar width.

◆ ComputeRightSidebarLayout()

RightSidebarLayout donner::editor::ComputeRightSidebarLayout ( const RightSidebarLayoutInput & input)
nodiscard

Compute right sidebar pane geometry for a fixed tree view and resizable inspector/layer split.

Parameters
inputSidebar layout constraints and persisted layer split fraction.

◆ ResizeLayerPanelHeightFraction()

float donner::editor::ResizeLayerPanelHeightFraction ( float currentFraction,
float lowerPaneHeight,
float minLayerPanelHeight,
float maxLayerPanelHeight,
float splitterDeltaY )
nodiscard

Update the layer panel height fraction from a vertical splitter drag.

Parameters
currentFractionCurrent fraction of lowerPaneHeight assigned to the layer panel.
lowerPaneHeightHeight available to the inspector and layer panel.
minLayerPanelHeightMinimum allowed layer panel height.
maxLayerPanelHeightMaximum allowed layer panel height.
splitterDeltaYImGui mouse delta for the splitter; dragging down shrinks the layer panel.