The whole-branch review found README describing a toolbar "?" button that does not exist, Ctrl+? for an overview bound to Ctrl+/, bare `e` for an export bound to Ctrl+E, and a help window that opens "on the page nearest to what the user was doing" when it unconditionally selects Overview. All four would send a reader looking for something that is not there. The key table also claimed to be full while omitting F1, Ctrl+/ and Ctrl+Q, and did not say that `f` is the plot's own key rather than an app accelerator. format_rate() is %.3g, so it prints "10 kS/s"; the two doc comments in status_text.hpp and the example in help page 01 still said "10.0 kS/s" — the same error already corrected in 14-status.txt and CLAUDE.md, left in the header that declares the function and in a second user-facing page. close_help_windows()'s comment described only gtk_window_close(), and show_shortcuts()'s called the overview "hand-rolled"; the Adwaita rework made one half-true and the other false. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
43 lines
1.6 KiB
C++
43 lines
1.6 KiB
C++
// SPDX-License-Identifier: MIT
|
|
#pragma once
|
|
|
|
#include <gtk/gtk.h>
|
|
|
|
#include <cstddef>
|
|
#include <string>
|
|
|
|
namespace udpscope {
|
|
|
|
/// The About dialog: version, commit, build timestamp and where the session files live.
|
|
/// Modal on `parent`. `session_path` is this run's own session file.
|
|
void show_about(GtkWindow* parent, const std::string& session_path);
|
|
|
|
/// The paged help window. Modal on nothing — it is a reference, so it stays usable while
|
|
/// the scope runs. Already open: presented.
|
|
void show_help(GtkWindow* parent);
|
|
|
|
/// What UDPSCOPE_PROBE_HELP_MS reports. `parsed` counts pages whose markup
|
|
/// pango_parse_markup() accepted and whose body is non-empty; it must equal `pages`.
|
|
struct HelpReport {
|
|
int pages = 0;
|
|
int parsed = 0;
|
|
std::string shortest_title;
|
|
std::size_t shortest_bytes = 0;
|
|
};
|
|
|
|
/// Loads and validates every page without building a window. Safe to call headless.
|
|
HelpReport help_self_check();
|
|
|
|
/// The shortcut overview: the application accelerators and the plot's own interactions,
|
|
/// in the sections the tables name. An AdwShortcutsDialog, because GtkShortcutsWindow is
|
|
/// deprecated as of GTK 4.18 and this project builds warning-free.
|
|
void show_shortcuts(GtkWindow* parent);
|
|
|
|
/// Closes whichever of the three windows are open. The About dialog and the help window are
|
|
/// GtkWindows and close with gtk_window_close(), so their close-request handlers run; the
|
|
/// shortcut overview is an AdwDialog and closes with adw_dialog_close(), which emits ::closed.
|
|
/// Either way the file-scope pointer is nulled by the handler. Used by the probe.
|
|
void close_help_windows();
|
|
|
|
} // namespace udpscope
|