source: capability panels as side-stack pages, with a probe for the path
This commit is contained in:
1 parent
79c33b25c5
commit
5cee00aaee
6 files changed
+209
-3
No files matched your search
@@ -109,6 +109,14 @@ struct TourView {
|
||||
void* done_user = nullptr;
|
||||
};
|
||||
|
||||
/// One capability panel a source kind contributed to the side stack. `content` is the kind's own widget
|
||||
/// (made insensitive while the source is disconnected); the page wrapping it is named `name`.
|
||||
struct SourcePanelPage {
|
||||
std::string name; ///< stack page name: "source-" + the kind's panel id
|
||||
std::string title; ///< the pill's tooltip and accessible name; the page's own title stays empty
|
||||
GtkWidget* content = nullptr;
|
||||
};
|
||||
|
||||
struct App {
|
||||
ScopeModel* model = nullptr;
|
||||
Acquisition* acq = nullptr;
|
||||
@@ -843,6 +851,9 @@ struct App {
|
||||
std::string source_kind = "udps";
|
||||
SourceConfig source_opts;
|
||||
std::string source_title;
|
||||
/// The panels the source kind added to `side_stack`, in tab order. Empty for UDPS and in file mode.
|
||||
std::vector<SourcePanelPage> source_panels;
|
||||
bool source_has_datagrams = true; ///< the kind reports raw datagrams; false leaves the capture button disabled
|
||||
guint layout_save_source = 0;
|
||||
bool layout_loaded = false;
|
||||
unsigned signal_generation = ~0u;
|
||||
@@ -1558,6 +1569,14 @@ void on_config_save_as(GtkButton*, gpointer user);
|
||||
void config_dialog_refresh(ConfigDialog& d);
|
||||
void open_configurations(App& app);
|
||||
void save_layout_now(App& app);
|
||||
|
||||
/// Capability panels (`src/ui_source.cpp`). `build_source_panels` adds the source kind's panels as
|
||||
/// pages of `side_stack`, once, before the first tick. `apply_source_panels` sets every panel's
|
||||
/// sensitivity from `connected` -- disabled, never hidden: the tab switcher owns visibility.
|
||||
/// `sync_source_panels` is the per-tick call: it applies the model's own connection flag.
|
||||
void build_source_panels(App& app);
|
||||
void apply_source_panels(App& app, bool connected);
|
||||
void sync_source_panels(App& app);
|
||||
bool save_configuration_as(App& app, const std::string& name, const std::string& comment);
|
||||
gboolean layout_save_tick(gpointer user);
|
||||
void schedule_layout_save(App& app);
|
||||
@@ -1855,6 +1874,8 @@ gboolean stats_probe_report(gpointer user);
|
||||
gboolean stats_probe(gpointer user);
|
||||
gboolean side_tab_probe_report(gpointer user);
|
||||
gboolean side_tab_probe(gpointer user);
|
||||
gboolean source_kinds_probe_report(gpointer user);
|
||||
gboolean source_kinds_probe(gpointer user);
|
||||
gboolean pan_probe(gpointer user);
|
||||
gboolean arm_probe(gpointer user);
|
||||
gboolean trigrenum_probe_step3(gpointer user);
|
||||
|
||||
Reference in new issue
Block a user