From 6b5425ebd35c28e20680f5f28c887b705827ba1c Mon Sep 17 00:00:00 2001 From: salmonik Date: Tue, 27 Oct 2026 18:53:32 +0100 Subject: GUI: add on-screen toasts and atomic config writes - Toast queue drawn in the top-right by the overlay, independent of the GUI being open. Info/warn/error colors and 6/9/12 s lifetimes; timers start on the first painted frame so startup messages are not missed. - Queue a load toast after install_menu, plus warnings/errors for missing modules/interfaces/netvars, input hooks, fonts, ISurface, server datamap, and spread seed support. - Toast on config reload, reset, bind/unbind and config save failure. - Config saves now write `config.tmp`, flush, then rename it over the real file; failures leave the previous config intact. - config_load reports whether a file was found so Reload can distinguish a successful reload from a missing file. - Update CONTEXT and ISURFACE_STATUS for the single GUI, toasts and atomic config writes. --- CONTEXT.md | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'CONTEXT.md') diff --git a/CONTEXT.md b/CONTEXT.md index 5e0e4b2..78f7c75 100644 --- a/CONTEXT.md +++ b/CONTEXT.md @@ -116,6 +116,11 @@ vocabulary / decisions. and ESP/FOV circle/speed graph keep drawing. No invulnerability. - **Native cursor**: on open, leave SDL relative-mouse mode and show the OS cursor; restore on close. Absolute mouse coordinates are used. +- **Toast**: transient top-right notification drawn by the overlay even when + the GUI is closed. Info/warn/error colors; lifetimes 6/9/12 s. Toasts queued + before the first paint (load errors) start their timer when first drawn. + Used for the load message, config problems, missing interfaces/netvars, + bind changes, Reload and Reset. - **Bind capture**: click Bind, press a key or any mouse button; Esc cancels capture but does not close the GUI; the small x clears the bind (None = always-on). Insert is reserved for the GUI. @@ -134,6 +139,8 @@ vocabulary / decisions. `x`, `y`, `category` and an `expanded` bitmask (card index order). Every feature now persists an `active` and `bind` pair, including movement, melee and spread. +- Config writes are atomic: `config.tmp` is written and flushed, then + `rename()`d over the real file. A failed write raises an error toast. ## Bones / ESP -- cgit v1.2.3