The pages are Pango markup in a GResource, bundled for the same reason the icons are: udpscope runs straight out of the build tree with no install step, so a runtime search path's failure mode would be a silently empty help window. --c-name=udpscope_help keeps the two generated bundles from colliding. Every page is validated with pango_parse_markup() at load and falls back to a one-line stand-in rather than rendering raw markup or nothing. show_help() reuses help_window.cpp's existing close-request handler, and closes via gtk_window_close() so that handler runs and the pointer is nulled. UDPSCOPE_PROBE_HELP_MS loads and validates every page, opens the help and About windows, closes both and reports; parsed must equal pages.
33 lines
1.7 KiB
Plaintext
33 lines
1.7 KiB
Plaintext
<b>Rows, layout and drag & drop</b>
|
||
|
||
The figure is a stack of rows, 1 to 8 of them, each holding up to 4 traces. Rows share one
|
||
time axis and one left gutter, so their y labels line up and their windows cannot drift apart.
|
||
|
||
<b>How to reach it</b>
|
||
|
||
Drag a signal's chip out of the side panel (<tt>s</tt>) and drop it on a row to add a trace.
|
||
Press <tt>l</tt>, or pick <b>Layout editor</b> from the overflow menu, to add and remove rows:
|
||
a <tt>×</tt> appears at the top left of each row and a <tt>+</tt> on each boundary between
|
||
rows, including above the first and below the last. The editor's own button in the top-right
|
||
corner leaves it.
|
||
|
||
<b>Worth knowing</b>
|
||
|
||
• A drop <i>adds</i> a trace to the row's next free slot; it does not replace one. With four
|
||
traces already on a row the drop is refused.
|
||
• Inserting a row moves the rows below it <i>with their contents</i>. Inserting above row 1
|
||
puts what row 1 plotted onto row 2 and leaves the new row empty — the rows are not
|
||
renumbered under you.
|
||
• A trace is remembered by the signal's <i>name</i>, not by its channel number, because a new
|
||
CONFIG or an enable renumbers the channels and an index would silently re-point the trace.
|
||
• Adding or removing a row rebuilds the figure, which is cheap, but it also re-deals every
|
||
trace. A frozen trigger event survives the rebuild: the pinned window is restated rather
|
||
than re-framed on the live edge.
|
||
|
||
<b>Example</b>
|
||
|
||
With three traces on row 1, pressing <tt>l</tt> shows 3 buttons (one <tt>×</tt>, two
|
||
<tt>+</tt>). Clicking the <tt>+</tt> above row 1 gives 2 rows and 5 buttons, with the three
|
||
traces now on row 2 — the layout probe reports exactly this as
|
||
<tt>rows=2 buttons=5 traces=[0:-|1:sine,ramp,noise]</tt>.
|