ui: the trigger glyph is a sine crossing its level, and every glyph is inset

The trigger's toolbar icon was a rising edge, which names only one of the four shape triggers the panel
offers. It is now a sine with a dashed level through it — the trigger's actual job, find the signal where
it crosses this — and the Signals tab's pill carries the *same* picture beside the channel list, so the
pill and the button that turns the trigger on read as the same idea. Both are one period of one-pixel
stairs, the way the plot rasterises its own traces.

Everything is inset two pixels now. The previous drafts ran their level and their bars flush to the cell
edge, which is what makes art look shaved wherever a button's padding or a crop takes a pixel: nothing in
either tab glyph, or in the trigger's, touches an edge.

Each shape was drawn and then read back as an ink map rather than trusted — the first sine came out as a
thin antialiased diagonal (a polygon through whole-pixel vertices has diagonal *edges*), which is why the
band is now per-column stairs; the level-through-the-centre arrangement was chosen over level-above-the-
centre after rendering both, since at these sizes a level nearer the crest merges with it into a blob. The
four glyphs measure 18%, 22%, 25% and 25% ink, inside the range the icons above them set.

Verified: `toolbar icons: trigger=udpscope-trigger-symbolic(ok)` and
`page icons: measure=udpscope-tab-measure-symbolic(ok) signals=udpscope-tab-signals-symbolic(ok)`;
`switcher: policy=narrow pills=2 labels=0 names=2 icon=32x32 size=308x36`;
`[side-tab-probe] … advanced=4`; `make test-ui` 14 files; zero `Gtk-CRITICAL` and no missing icon. The
icons' GResource blob is 12408 bytes — the SVG sources are embedded, comments included — still over the
C99 limit, so the clean-build warning count stays four.
This commit is contained in:
Martino Ferrari committed 2026-10-14 13:45:57 +02:00
1 parent dbe6377415
commit 75aa62cc3c
6 files changed
+70 -49

No files matched your search

@@ -1,16 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- SPDX-License-Identifier: MIT -->
<!-- SPDX-FileCopyrightText: 2026 Martino Ferrari -->
<!-- A rising edge crossing a dashed trigger level: what the trigger *is*. The dash
rhythm is 2 on, 1 off (tight enough to read as one line rather than as a row of
dots), with the one wide gap at x 5..9 that the edge rises through. Every
coordinate is a whole pixel of the 16px cell so nothing blurs at 1x. -->
<!-- The trigger: a sine and the dashed level it is looked for at, which is what a trigger *is* on a
waveform that is not a step. It used to be a rising edge, and one edge names only one of the four
shape triggers the panel offers — a wave crossing a level names the trigger's job instead. One
period, one-pixel stairs, the way the plot rasterises its own traces, with the level through the
centre so the crest and the trough stand clear and the crossings fall on the steep parts. Inset
two pixels, like the tabs' glyphs, so no art is flush with an edge a button might clip. -->
<svg height="16px" width="16px" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
<path fill="#2e3436" d="M0 11 H8 V13 H0 Z
M6 3 H8 V13 H6 Z
M6 3 H16 V5 H6 Z
M0 7 H2 V9 H0 Z
M3 7 H5 V9 H3 Z
M9 7 H11 V9 H9 Z
M12 7 H14 V9 H12 Z"/>
<path fill="#2e3436" d="M2 7 H3 V10 H2 Z
M3 5 H4 V8 H3 Z
M4 3 H5 V6 H4 Z
M5 3 H6 V6 H5 Z
M6 4 H7 V7 H6 Z
M7 6 H8 V9 H7 Z
M8 8 H9 V11 H8 Z
M9 10 H10 V13 H9 Z
M10 11 H11 V14 H10 Z
M11 11 H12 V14 H11 Z
M12 9 H13 V12 H12 Z
M13 7 H14 V10 H13 Z
M2 7 H5 V9 H2 Z
M7 7 H10 V9 H7 Z
M11 7 H14 V9 H11 Z"/>
</svg>

Before

Width:  |  Height:  |  Size: 857 B

After

Width:  |  Height:  |  Size: 1.5 KiB