ui: the Measure pill is two cursors on a scale, not a boxed ruler beside them
The previous Measure glyph was two icons sharing a box: a heavy closed ruler frame on the right and two light caps on the left, with nothing relating them. It is now one instrument — two cursors *standing on* the scale they read against, each marker centred on one of the scale's marks, so the pair reads the way the pane works: bracket a window, read it against the axis. Three things the render said, each fixed: - **The closed frame was most of the ink.** Two lines and two end caps cost about a fifth of the glyph's ink and say nothing a ruler's marks do not, so the scale is now one band with alternating marks — long, short, long — hanging above it. - **The caps were dashes, not grips.** 5x2 at 32px read as a horizontal stroke; they are 5x3, like the caps on the toolbar's cursors icon. - **The ticks were finer than everything else.** At 1px they were thinner than the 2px weight every icon here uses, so they are 2px, and every mark alternates in height the way a ruler's do. The Markers' shafts are dashed and meet the band rather than hovering over it, and the whole glyph is inset two pixels like the others, so nothing is flush with an edge that a button's padding or a crop takes a pixel off. Ink: 27%, inside the range the icons above it set. Verified: `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`; the Preferences dialog opened in the same run with no "not present" (the plain ruler it uses is untouched); `make test-ui` 14 files; zero `Gtk-CRITICAL`. The icons' blob is 12624 bytes, still over the C99 limit, so the clean-build warning count stays four.
This commit is contained in:
1 parent
75aa62cc3c
commit
574f47f769
3 files changed
+26
-22
No files matched your search
@@ -65,8 +65,10 @@ Part of [CLAUDE.md](../../CLAUDE.md). These are rules that cost a defect to lear
|
||||
`udpscope-tab-measure-symbolic` is the cursors and the ruler they read against, and
|
||||
`udpscope-tab-signals-symbolic` is the trigger's edge above the channel list it acts on. They are not
|
||||
reuses because a glyph the toolbar already carries means two things the moment a tab shows it too. Both
|
||||
are **32x16** composites, one motif per half: the Measure pill is the two cursors beside the ruler, the
|
||||
Signals pill a sine with a dashed level through it beside the channel list. That picture is shared on
|
||||
are **32x16** composites: the Measure pill is two cursors *standing on* the scale they read against — the
|
||||
one band with alternating marks, each marker centred on one of them, which is one instrument rather
|
||||
than two icons in a box — and the Signals pill a sine with a dashed level through it beside the
|
||||
channel list. That picture is shared on
|
||||
purpose: the trigger's *own* toolbar icon (`udpscope-trigger-symbolic`) is the same sine and the same
|
||||
level, one period of one-pixel stairs, so the pill and the button that turns the trigger on are
|
||||
recognisably about the same thing. The trigger glyph used to be a rising edge, and one edge names only
|
||||
|
||||
@@ -16,7 +16,7 @@ xvfb-run -a env UDPSCOPE_EXIT_AFTER_MS=8000 UDPSCOPE_ENABLE_ALL_MS=1000 \
|
||||
Two baselines every run is read against. A clean build emits **four** warnings and no more: two
|
||||
`-Wmissing-field-initializers` on `MathNode::source` and `-Woverlength-strings` on **both**
|
||||
generated GResource `.c` files — the help pages' (**514660** bytes) and the icons', whose blob is
|
||||
**12408** against C99's 4095-byte string-literal limit with the seven action icons and the two app icons
|
||||
**12624** against C99's 4095-byte string-literal limit with the seven action icons and the two app icons
|
||||
that remain (a note about a generated file, which GCC itself supports) -- re-measured when
|
||||
the tab work changed the set (that icon left, the two tab glyphs arrived, and this file's
|
||||
help page was rewritten), which did not move the count; re-measure by touching each `*.gresource.xml`
|
||||
|
||||
@@ -1,24 +1,26 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- SPDX-License-Identifier: MIT -->
|
||||
<!-- SPDX-FileCopyrightText: 2026 Martino Ferrari -->
|
||||
<!-- The Measure tab: the cursors and the ruler they read against. The caps and the dashed shafts
|
||||
are the toolbar's cursors at the same 2px weight; the ruler's ticks hang inside its frame, which
|
||||
needs `fill-rule="evenodd"` — a tick inside the frame's hole is three crossings deep, so it fills
|
||||
rather than punching a second hole. Both halves are inset two pixels and centred on the same
|
||||
line, so the pair reads as one instrument rather than as two icons that share a box. -->
|
||||
<!-- The Measure tab: two cursors standing on the scale they read against. The scale is one band with
|
||||
alternating marks rather than the closed ruler body `udpscope-measure-symbolic` draws for the
|
||||
Preferences window: at 32x16 a frame costs a fifth of the ink on two lines that say nothing, and
|
||||
the cursors are what this tab is *for*. Each marker is centred on one of the marks — a cap over a
|
||||
dashed shaft that meets the scale instead of hovering over it — so the two read as one instrument
|
||||
rather than as two icons sharing a box. Both use the 2px weight of every other icon here, and
|
||||
everything is inset two pixels, because art flush with the cell edge is what a button or a crop
|
||||
clips. -->
|
||||
<svg height="16px" width="32px" viewBox="0 0 32 16" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill="#2e3436"
|
||||
fill-rule="evenodd" d="M2 2 H7 V4 H2 Z
|
||||
M10 2 H15 V4 H10 Z
|
||||
M3 5 H5 V7 H3 Z
|
||||
M3 9 H5 V11 H3 Z
|
||||
M3 13 H5 V15 H3 Z
|
||||
M10 5 H12 V7 H10 Z
|
||||
M10 9 H12 V11 H10 Z
|
||||
M10 13 H12 V15 H10 Z
|
||||
M17 5 H30 V12 H17 Z
|
||||
M19 7 H28 V10 H19 Z
|
||||
M20 7 H21 V9 H20 Z
|
||||
M23 7 H24 V9 H23 Z
|
||||
M26 7 H27 V9 H26 Z"/>
|
||||
<path fill="#2e3436" d="M2 12 H30 V14 H2 Z
|
||||
M5 9 H7 V12 H5 Z
|
||||
M9 10 H11 V12 H9 Z
|
||||
M13 9 H15 V12 H13 Z
|
||||
M17 10 H19 V12 H17 Z
|
||||
M21 9 H23 V12 H21 Z
|
||||
M25 10 H27 V12 H25 Z
|
||||
M7 3 H12 V6 H7 Z
|
||||
M8 7 H11 V10 H8 Z
|
||||
M8 10 H11 V12 H8 Z
|
||||
M19 3 H24 V6 H19 Z
|
||||
M20 7 H23 V10 H20 Z
|
||||
M20 10 H23 V12 H20 Z"/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.5 KiB |
Reference in new issue
Block a user