docs: the readouts dock, the cursors and measurement pages
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
1 parent
a2ce02db92
commit
ce3cc97b91
11 files changed
+205
-88
No files matched your search
@@ -101,8 +101,11 @@ touching the data path.
|
||||
a `slideover_add_page(app, id, title, widget)`: the widget is wrapped in a `GtkScrolledWindow` of its
|
||||
own and registered under its id (`trigger`, `source-<id>`, `signals` (the signal list) and
|
||||
`signal:<name>` (one signal's page, `src/ui_signal_page.cpp`, created on demand by `signal_page_ensure()`
|
||||
and pruned by `signal_pages_sync()`, which `rebuild_signal_panels()` ends with); `measure`, `cursors`
|
||||
and `events` are reserved for later steps). One page is open at a time and `App::slideover.page`
|
||||
and pruned by `signal_pages_sync()`, which `rebuild_signal_panels()` ends with), `cursors` (the cursors
|
||||
panel, unchanged) and `measure` (the measurements panel, unchanged; `m` toggles it); `events` is reserved
|
||||
for a later step). Both of those are registered whether or not they are open (a closed page's widgets
|
||||
exist, unmapped), and both are insensitive until the stream has signals, by the same
|
||||
`update_signal_availability()` call that sets the dock's sensitivity. One page is open at a time and `App::slideover.page`
|
||||
is its id, empty when closed. The open page is **not** a session value. Esc, *Close*, a second click on the
|
||||
badge and a click on the plot close it; the click-away is a capture-phase observer (see
|
||||
[invariants-gtk-and-chrome.md](invariants-gtk-and-chrome.md)). With two or more `source-*` pages, an
|
||||
@@ -116,9 +119,18 @@ touching the data path.
|
||||
file) leaves it **hidden** (the user asked for hide here, not the usual disable): `sync_badge_bar()` sets its visibility,
|
||||
pick and focus from `slideover.source_pages` being non-empty every tick, so anything that indexes the badge
|
||||
(the tour's `badges` step targets the whole bar, `[badges]`) must tolerate it being absent.
|
||||
- **The dock** is the `AdwOverlaySplitView` sidebar (`side_box` > `dock_scroller` > `dock_page`): the
|
||||
cursors and the measurements only, in one scroller (the signal list is the `signals` page). It holds no tab switcher and no
|
||||
revealer, and it does not hold a source kind's panels (those are slide-over pages).
|
||||
- **The dock** is the `AdwOverlaySplitView` sidebar (`side_box` > `dock_scroller` > `dock_page`), **280 px**
|
||||
and fixed. It holds one thing, the **Readouts** box (`src/ui_dock.cpp`, `build_readouts_dock()`): a
|
||||
**Cursors** block (heading, an **Edit** button that opens the `cursors` page, a `GtkGrid` of a header row
|
||||
`A B delta` and one line per page line) and a **Measurements** block (heading, **Edit** opening the
|
||||
`measure` page, one line per measurement: chip, type, value; a click on a line opens that measurement's
|
||||
dialog; no measurements shows one dim "no measurements" line). It is read-only and **owns no formatting**:
|
||||
`update_cursors_pane()` and `update_measures()` hand the string they wrote to the page's label to
|
||||
`dock_cursor_cell()` / `dock_measure_value()` as well, and `rebuild_cursors_pane()` /
|
||||
`rebuild_measures_pane()` end by rebuilding the dock's lines to match (`dock_rebuild_cursors()`,
|
||||
`dock_rebuild_measures()`). It holds no tab switcher, no revealer and none of the full panels, nor a source
|
||||
kind's panels (those are slide-over pages). The window's measurement editor is a dialog
|
||||
(`open_measure_dialog()`), not part of the `measure` page.
|
||||
|
||||
**When each is built and when it is read.** `build_slideover()` runs in `on_activate` right after the tour
|
||||
overlay is built (the tour's overlay wraps the whole window, so its dim rectangles cover the slide-over
|
||||
|
||||
Reference in new issue
Block a user