1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
//! Application-supplied top-level panes (see [`ExtPane`]).
use crateResponses;
use node;
/// An application-supplied top-level pane - the pane analogue of
/// [`SettingsTab`][super::SettingsTab].
///
/// Domains contribute their own panes by supplying implementations to the
/// [`Gantz`][super::Gantz] widget via
/// [`Gantz::ext_panes`][super::Gantz::ext_panes]. A pane typically holds a
/// per-frame snapshot of its domain's data, and reports changes by pushing
/// typed payloads into the returned [`Responses`] for the host to apply.
///
/// A supplied pane's tile is inserted into the tray on first sight of its
/// [`key`][Self::key] and persists in the tile tree from then on. While no
/// provider supplies the key (e.g. the owning domain is disabled), the tile
/// renders a placeholder. Visibility defaults to hidden, toggled via
/// Settings -> Panes like the built-in tray panes.
/// The context handed to [`ExtPane::ui`] - what the widget knows about the
/// focused head that a pane might want to follow (the built-in Steel pane's
/// inputs, roughly).
///
/// `#[non_exhaustive]` so future context reaches panes without breaking
/// implementors: only the widget constructs one.
/// One supplied extension pane's identity and labels, for the pane-visibility
/// checkbox UIs (Settings -> Panes and the graph-area context menu's "panes"
/// submenu - see [`panes_config`][super::panes_config()]).