ui: the cursors and measurements panels are slide-over pages; the dock is the readouts

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Martino FerrariandClaude Sonnet 4.6 committed 2026-11-03 06:24:52 +01:00
1 parent a0fc0762d5
commit 3d307a0185
5 files changed
+91 -154

No files matched your search

+5 -8
View File
@@ -266,9 +266,9 @@ struct App {
GtkWidget* trigger_panel = nullptr;
GtkWidget* signal_panel = nullptr;
GtkWidget* side_box = nullptr;
/// The dock: the sidebar's one scroller and the box inside it, which holds the cursors and
/// the measurements (`dock_show_section()` scrolls it). A feature's own on/off never
/// removes a section (it sets its panel's sensitivity instead).
/// The dock: the sidebar's one scroller and the box inside it, which holds only the compact readouts
/// (`build_readouts_dock()`). The full cursors and measurements panels are the slide-over's `cursors`
/// and `measure` pages. A feature's own on/off never removes a panel (it sets its sensitivity instead).
GtkWidget* dock_page = nullptr;
GtkWidget* dock_scroller = nullptr;
GtkWidget* arm_button = nullptr;
@@ -1609,8 +1609,8 @@ constexpr int kEventThumbH = 46;
constexpr int kEventThumbMaxH = 104;
inline int g_stats_phase = 0;
inline std::vector<std::uint64_t> g_stats_n_before;
/// The same for the dock-section probe: the accumulator counts recorded while the Measure section was
/// still scrolled into view, so the report can say whether any of them advanced after it scrolled out.
/// The same for the dock-section probe: the accumulator counts recorded while the `measure` page was
/// still open, so the report can say whether any of them advanced after it was closed.
inline std::vector<std::uint64_t> g_dock_section_n_before;
inline double g_trigrenum_edge = 0.0;
inline std::uint64_t g_trigrenum_latches = 0;
@@ -1867,9 +1867,6 @@ void row_menu_fill(RowMenuState& st);
GtkWidget* open_row_menu(App& app, int row, double x, double y, GtkWidget* parent, bool autohide = true);
void on_right_click(GtkGestureClick* gesture, int, double x, double y, gpointer user);
gboolean on_drop_channel(GtkDropTarget*, const GValue* value, double x, double y, gpointer user);
/// Scrolls the dock to a section: "signals" (the top) or "measure" (the cursors panel, which the
/// measurements follow). An unknown name is a no-op.
void dock_show_section(App& app, const char* section);
/// Reads each pane's own switch back off the header bar's button, and the other way round: the two are
/// one control in two places, and `panel_switch_sync` keeps the write from looking like a click.
void sync_panel_switches(App& app);