pub enum Command {
Show 51 variants
NextSlide,
PreviousSlide,
NextOverlay,
PreviousOverlay,
FirstSlide,
LastSlide,
GoToSlide(usize),
ToggleFreeze,
ToggleBlackout,
ToggleWhiteboard,
ToggleScreenShareMode,
TogglePresentationMode,
ToggleLaser,
CycleLaserStyle,
SetPointerPosition(f32, f32),
ToggleInk,
AddInkPoint(f32, f32),
FinishInkStroke,
ClearInk,
SetInkColor([u8; 4]),
SetInkWidth(f32),
CycleInkColor,
CycleInkWidth,
ToggleSpotlight,
SetSpotlightPosition(f32, f32),
ToggleZoom,
SetZoomRegion {
center: (f32, f32),
factor: f32,
},
StartTimer,
PauseTimer,
ToggleTimer,
ResetTimer,
ToggleSlideOverview,
ToggleNotesPanel,
ToggleNotesEdit,
SetCurrentSlideNotes(String),
IncrementNotesFontSize,
DecrementNotesFontSize,
ToggleTextBoxMode,
PlaceTextBox {
x: f32,
y: f32,
w: f32,
h: f32,
},
EditTextBoxContent {
id: u64,
content: String,
},
MoveTextBox {
id: u64,
x: f32,
y: f32,
},
ResizeTextBox {
id: u64,
w: f32,
h: f32,
},
DeleteTextBox {
id: u64,
},
SelectTextBox(u64),
DeselectTextBox,
BeginTextBoxEdit {
id: u64,
},
SetTextBoxFontSize {
id: u64,
size: f32,
},
SetTextBoxColor {
id: u64,
color: [u8; 4],
},
SetTextBoxBackground {
id: u64,
color: Option<[u8; 4]>,
},
Quit,
SaveSidecar,
}Expand description
Every user action in Dais is represented as a discrete typed command.
Commands are dispatched through the CommandBus and processed
by the presentation engine. The UI never mutates state directly — all mutations flow
through commands.
This design enables future external control surfaces (REST API, WebSocket, mobile remote) to be added as new command sources without modifying the engine.
Variants§
NextSlide
Advance to the first page of the next logical slide group.
PreviousSlide
Go back to the first page of the previous logical slide group.
NextOverlay
Advance one PDF page (next overlay/build step within a group).
PreviousOverlay
Go back one PDF page (previous overlay/build step).
FirstSlide
Jump to the first slide.
LastSlide
Jump to the last slide.
GoToSlide(usize)
Jump to a specific logical slide by index (0-based).
ToggleFreeze
Freeze/unfreeze the audience display.
ToggleBlackout
Black out/restore the audience display.
ToggleWhiteboard
Toggle the whiteboard (blank white drawing canvas on audience).
Toggle screen-share mode (audience window as normal window).
TogglePresentationMode
Toggle presentation mode (single-monitor: console ↔ fullscreen HUD).
ToggleLaser
Toggle the laser pointer on/off.
CycleLaserStyle
Cycle the laser pointer visual style.
SetPointerPosition(f32, f32)
Update the pointer position (normalized 0..1 coordinates relative to slide).
ToggleInk
Toggle freehand ink drawing mode.
AddInkPoint(f32, f32)
Add a point to the current ink stroke (normalized coordinates).
FinishInkStroke
Finish the current ink stroke (pen lifted).
ClearInk
Clear all ink on the current page.
SetInkColor([u8; 4])
Set the active pen color (RGBA). Affects only future strokes.
SetInkWidth(f32)
Set the active pen width in logical pixels. Affects only future strokes.
CycleInkColor
Cycle the active pen color through the built-in preset list.
CycleInkWidth
Cycle the active pen width through the built-in preset list.
ToggleSpotlight
Toggle the spotlight overlay.
SetSpotlightPosition(f32, f32)
Update the spotlight center position (normalized coordinates).
ToggleZoom
Toggle zoom mode on the audience display.
SetZoomRegion
Set the zoom region center and magnification factor.
StartTimer
Start the timer (or resume if paused).
PauseTimer
Pause the timer.
ToggleTimer
Toggle the timer between running and paused.
ResetTimer
Reset the timer to its initial state.
ToggleSlideOverview
Toggle the slide overview grid.
ToggleNotesPanel
Toggle the notes panel visibility.
ToggleNotesEdit
Toggle inline markdown editing for the current slide’s notes.
SetCurrentSlideNotes(String)
Replace the current slide’s notes markdown.
IncrementNotesFontSize
Increase notes font size by one step.
DecrementNotesFontSize
Decrease notes font size by one step.
ToggleTextBoxMode
Toggle text box placement mode.
PlaceTextBox
Place a new text box on the current slide (normalized coordinates).
EditTextBoxContent
Update the content of a text box.
MoveTextBox
Move a text box to a new position (normalized coordinates).
ResizeTextBox
Resize a text box (normalized size).
DeleteTextBox
Delete a text box by ID.
SelectTextBox(u64)
Select a text box by ID.
DeselectTextBox
Deselect the currently selected text box.
BeginTextBoxEdit
Enter inline edit mode for the selected text box.
SetTextBoxFontSize
Set the font size of a text box.
SetTextBoxColor
Set the text color of a text box (RGBA).
SetTextBoxBackground
Set the background fill of a text box (RGBA, or None to clear).
Quit
Quit the application.
SaveSidecar
Save the current sidecar data to disk.