← Blog
VIDEO · APPS · 0.6.0

LCARS Tooltip, Dialog Frame + Panic Screen + LCARS App Chrome — Lumen UI Kit Ships 25 Functions

June 22, 2026 · sigil-video · sigil-apps · Sigil-Docs
video apps lumen lcars 0.6.0

Three final LCARS UI primitives complete the Lumen toolkit: lcars_tooltip (hover popup, black+tan border, 8-char AA label, 6 oracles), lcars_dialog_frame (modal shell: tan border + orange title bar + black body + tan button row + purple sep, 5 oracles), lcars_panic_screen (inverted gold palette fatal display, 4 oracles). sigil-apps wires LCARS chrome into all three main apps (colbrowser, files, termwin) via lcars_scene.sg — the DEMO_LCARS=1 compositor that replaces scene.sg with no Video module dependency. The Lumen LCARS UI kit now ships 25+ functions covering every desktop surface. (sigil-video c294606, f65095e, 1d48281; sigil-apps 2e42f31)

lcars_tooltip: hover tooltip popup with tan border and AA label
lcars_tooltip: hover tooltip popup with tan border + AA label. LCARS-TOOLTIP-PASS.
lcars_dialog_frame: modal dialog chrome
lcars_dialog_frame: modal dialog chrome — tan border, orange title pill, black body, tan button row. LCARS-DIALOG-PASS.
lcars_panic_screen: inverted gold LCARS palette fatal display
lcars_panic_screen: inverted gold LCARS palette fatal display. LCARS-PANIC-PASS.

lcars_tooltip (c294606)

Hover tooltip popup — the last interactive UI surface needed for a complete Lumen WM. The OS positions the tooltip near the mouse cursor whenever a UI element is hovered.

Signature: lcars_tooltip(fb, pitch, fbw, fbh, tx, ty, nchars, c0..c7) — position + 8-char label.

Test: tooltip at (10, 10), nchars=4. 6 oracles: 4 border edges, body black, glyph tan. LCARS-TOOLTIP-PASS.


lcars_dialog_frame (f65095e)

Modal dialog chrome — the standard container for file pickers, confirm dialogs, and settings panels in the Lumen WM. The caller renders title text and button labels inside the body and button-row areas; the frame function draws only the chrome.

Signature: lcars_dialog_frame(fb, pitch, fbw, fbh, dx, dy, dw, dh, bh, btn_h) — position + dialog dims + title-bar height + button-row height.

Test: 140×90 dialog, bh=14, btn_h=14. 5 oracles: border, title pill, body, btn row, separator. LCARS-DIALOG-PASS.


lcars_panic_screen (1d48281)

Fatal-error GOP display — the full-framebuffer fault indicator shown by the kernel before Lumen starts, or when a fatal fault occurs after Lumen is running. Designed specifically for sigil-os#18 x86 real-hardware debugging.

Signature: lcars_panic_screen(fb, pitch, fbw, fbh, bh) — full framebuffer + band height.

Test: 4 oracles — top black band, center gold, bottom orange, black glyph on gold. LCARS-PANIC-PASS.

Boot display trilogy: lcars_boot_banner (initial splash, orange+gold+tan) → lcars_boot_progress (gold fill bar per init step) → lcars_panic_screen (gold fault display, only if a fatal error occurs before Lumen starts).


lcars_scene.sg — LCARS chrome in all apps (2e42f31 — sigil-apps)

lcars_scene.sg is the DEMO_LCARS=1 compositor that replaces scene.sg for LCARS-chrome builds. The scene draws window chrome using aa_round_rect (orange pill title, black title area, tan accent bar) — identical rendering chain to scene.sg but without the SIGIL_VIDEO module dependency. Pure gfxraster calls.

Three apps now built with DEMO_LCARS=1:

colbrowser
3-column file manager. Gets full LCARS window chrome: orange pill title bar, black title area, tan accent bar. Verified pixel at (40,40) = [255, 119, 34] (orange).
files
Places sidebar + Smart Folders layout. LCARS chrome wired at build time via lcars_scene.sg dependency chain.
termwin
AA terminal. LCARS chrome applied identically — the terminal surface sits inside the LCARS-chromed window shell.

Verified on QEMU raspi3b: colbrowser pixel at (40,40) = [255, 119, 34] (orange title bar). PASS. build.sh: secs=6.0 run budget (5s boot + render), lean lcars_scene.sg dependency chain.


The complete Lumen LCARS UI Kit — 25+ functions

Every visible desktop surface — from GOP boot splash to hover tooltip to modal dialog — now has a matching LCARS primitive.

CategoryFunctions
Primitives fill_rect, fill_circle, fill_qcircle_br, hbar, elbow, border_rect, resize_handle
Boot UI boot_banner, boot_progress, panic_screen
Window chrome wchrome, wchrome_title, focus_chrome
WM surfaces resize_feedback, snap_zones, statusbar
App UI taskbar_item, scrollbar, menu_item, tooltip, dialog_frame
Label rendering lcars_label, lcars_gch_cov (AA glyph via cov_blend)