Appearance
Slideshow
Run the Present-mode slideshow programmatically — the scriptable counterpart of the Present toolbar's slideshow button. The slideshow plays all layout sheets in sheet order (hidden sheets are excluded); start options only pick the slide it opens on. Accessed via snaptrude.presentation.slideshow.
All methods are host API calls that return Promises. Slide navigation stays with the user (arrow keys / the on-screen controls); there is intentionally no next/prev/goTo — the active slide is view-local state with no scriptable seam.
At a glance
| Method | What it does | Mutates? |
|---|---|---|
start(options?) | Launch the slideshow over all sheets | ✓ |
stop() | Close the running slideshow (no-op if not running) | ✓ |
getState() | Whether it is running + the current slide index | — |
Fullscreen needs a user gesture
Browsers only grant fullscreen on a user gesture. A plugin-triggered start usually fails that check, in which case the slideshow catches the rejection and runs non-fullscreen — same slides, same keyboard/on-screen controls, windowed. stop still exits fullscreen when it was entered.
Present mode required
start and stop require Present mode (the documentation editor) to be open and throw otherwise. getState is a never-throw read that reports not-running when Present mode is closed.
Types
PluginPresentationSlideshowState
Result of start, stop, and getState.
| Property | Type | Description |
|---|---|---|
running | boolean | Whether a slideshow is currently running |
index | number | null | Current 0-based slide index (null when not running) |
Functions
start(options?)
Start the slideshow over all layout sheets in sheet order. options.startIndex opens on that slide (clamped into range); otherwise options.sheetIds naming exactly one sheet opens on that sheet (the same semantics as launching with one sheet selected on the panel — more than one id is ignored, the slideshow always plays all sheets); otherwise it opens on the first slide. Idempotent — returns the current state when a slideshow is already running.
- Parameters:
options.sheetIds:string[] | undefined— open on this sheet when exactly one id is givenoptions.startIndex:number | undefined— 0-based slide to open on (wins oversheetIds; clamped into range)
- Returns:
PluginPresentationSlideshowState—running: trueand the openingindex. - Throws: If Present mode is not open or there are no sheets to present.
ts
const state = await snaptrude.presentation.slideshow.start({ startIndex: 2 });
console.log(state.running, state.index); // true, 2stop()
Stop the slideshow — closes the running overlay (exiting fullscreen if it entered it) and returns to the Present canvas. A no-op when no slideshow is running.
- Parameters: none
- Returns:
PluginPresentationSlideshowState—running: false. - Throws: If Present mode is not open.
ts
await snaptrude.presentation.slideshow.stop();getState()
Read the slideshow state — a never-throw read: whether a slideshow is running and, when it is, the current 0-based slide index (index is null when not running, including when Present mode is closed).
- Parameters: none
- Returns:
PluginPresentationSlideshowState
ts
const { running, index } = await snaptrude.presentation.slideshow.getState();Errors
Failed calls reject with a typed PluginError — see Error Handling. Conditions specific to this namespace:
| Code | Thrown by | When | details |
|---|---|---|---|
PRECONDITION_FAILED | start, stop | Present mode is not open | — |
PRECONDITION_FAILED | start | The presentation has no sheets to present | — |
HANDLE_INVALID | start | A single sheetIds entry is not a visible sheet | — |
OPERATION_FAILED | start, stop | The slideshow overlay failed to appear / disappear within 5s | — |