docs: the signal badges, the signal pages and the six-badge overflow (step 2 of the redesign)

Also wrap the signals page's hint line, which at 375 px minimum widened the whole slide-over panel to 376.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Martino FerrariandClaude Opus 4.6 committed 2026-11-03 01:48:43 +01:00
1 parent f315c677f3
commit 5242babf99
8 files changed
+55 -21

No files matched your search

+18 -8
View File
@@ -98,11 +98,20 @@ src/layout_store.* the per-source session layout file (TOML), written and read b
src/event_series.hpp an immutable captured event as a plot::data::Series
src/ui.* the GTK4 window: toolbar, trigger form, signal list, plot box, the dock
src/ui_slideover.cpp the slide-over panel over the plot's right edge, one page at a time
src/ui_badges.cpp the badge bar under the plot: the Trigger and Source badges
src/ui_badges.cpp the badge bar under the plot: the signal badges, the + badge, Trigger and Source
src/ui_signal_page.cpp the per-signal slide-over pages (`signal:<name>`)
```
**The window.** The plot is the window. Under it sits a fixed-height **badge bar** (36 px) whose
right-hand end carries two words-only badges: **Trigger** (`off`, `armed`, `capturing`, `triggered`
**The window.** The plot is the window. Under it sits a fixed-height **badge bar** (36 px). Its left
part is the **signals**: one badge per *enabled* signal (a dot in the signal's colour, filled while the
signal is plotted, and its name), then a `+` badge that opens the full signal list (`g` does the same).
A signal badge opens that signal's own page in the slide-over -- colour, calibration and the *Plot on N*
buttons -- and is also the drag handle: drag it onto a plot to draw the signal there, or onto another
badge to reorder them. Past **six** signal badges the bar shows a single **"N signals"** badge in their
place (it opens the list, and `+` is hidden): the E-1608's 8 analog inputs and counter would not fit
otherwise. The signal badges sit in a scroller, so the bar's minimum width, and with it the window's,
never depends on how many signals there are. The badge order is kept **for the session only**; it is not
written to the session file. The right-hand end carries two words-only badges: **Trigger** (`off`, `armed`, `capturing`, `triggered`
or `disarmed`) and **Source** (the kind's name and `connected`/`disconnected`; a read-out, not a button,
for a source with no controls of its own, and for a file). A badge opens the **slide-over**: a 360 px
panel laid over the plot's right edge, opaque, with its own title, a *Close* button and one scroller per
@@ -110,9 +119,9 @@ page. The Trigger badge opens the trigger form; the Source badge opens the sourc
(the E-1608's *Analog out* and *Digital I/O*, behind a segmented switch at the top of the panel). It
closes with a second click on its badge, with `Esc`, with *Close*, or with a click on the plot; it never
resizes the plot. The right-hand **dock** (the existing sidebar, 320 px) holds what is left of the old
tabs in one scroller: the signal list, the cursors and the measurements, shown from the start and
insensitive until the stream has signals. It is temporary -- see "Review findings not (yet)
implemented" for what the redesign still has to do with it.
tabs in one scroller: the cursors and the measurements, shown from the start and insensitive until
the stream has signals (the signal list moved to the `signals` slide-over page). It is temporary -- see
"Review findings not (yet) implemented" for what the redesign still has to do with it.
Threading: one producer thread owns the data source (the UDPStreamer client is the built-in
one) and calls `poll()`; the GTK main thread owns every widget and the GL contexts.
@@ -2950,8 +2959,9 @@ now — they are listed so they are not mistaken for anything else:
dock's *shown* state only, not a width -- the dock's width is fixed, so there is nothing to persist
-- and does not store the open slide-over page. (3) The **Trigger badge** shows `off`, `armed` and
`triggered` as the spec says, and two more words, `capturing` (a post-trigger window is filling) and
`disarmed` (trigger on, not armed), so the label never claims a state the engine is not in. Still to
come, in the spec's order: the signal badges and drag (2), the compact readouts (3), the events
`disarmed` (trigger on, not armed), so the label never claims a state the engine is not in. The signal badges, the
signal pages and the drag (step 2) are done. Still to
come, in the spec's order: the compact readouts (3), the events
section in the dock, the deletion of the left pane and the Events toggle, and `USER-GUIDE.md` and the
manual's figures (4). Until then the events pane, the header's Events toggle and the manual still
describe the previous layout.