API — ICoreEssentials/UI/Backends/Web/MenuBar
The public contract of 1 header(s) under ICoreEssentials/UI/Backends/Web/MenuBar — 1 class/struct definition(s), 0 declaration(s). Each section shows the header's banner and its public (and protected-virtual) surface exactly as the file writes it.
| Header | Defines | Declarations | Bases |
|---|---|---|---|
ICoreWebMenuMirrorRules.h | ICoreWebFocusedWidget | 0 | — |
ICoreWebMenuMirrorRules.h#
ICoreEssentials/UI/Backends/Web/MenuBar/ICoreWebMenuMirrorRules.h
Web backend, WB3.3: UI/Backends/Gtk4/MenuBar/ICoreGtk4MenuMirrorRules.h copied with its names changed, because the two DECISIONS are the same on a page and the header's reasons carry over. Where it says GtkEditable / GtkTextView, read "the DOM element that has focus is an editable <input>, <textarea> or contenteditable" (MenuBar/ICoreMenuMirror.cpp reduces the focus to these facts), and where it says keyval, read "the chord's key is not kIcoreWebChordUnknownKey" -- the web spells an unparseable key the way GTK4 does, 0x01FFFFFF, so the same trap applies and the same guard answers it.
ICoreWebFocusedWidget#
ICoreWebMenuMirrorRules.h:37 · struct · 0 declaration(s)
What the seat reduces the keyboard focus to before asking the rule.
struct ICoreWebFocusedWidget {
public:
// Nothing has focus, or focus is outside every window this process owns.
bool hasFocus = false;
// A widget whose whole job is typed text. On GTK4 that is GtkEditable (the
// INTERFACE -- GtkEntry, GtkText, GtkSpinButton, GtkSearchEntry,
// GtkPasswordEntry, GtkEditableLabel all implement it) or GtkTextView,
// which does NOT implement GtkEditable and is the multi-line case.
bool isTextControl = false;
// ⚠ READ-ONLY IS NOT DISABLED AND BOTH ARE HERE, same as the WinUI peer. A
// non-editable GtkText still takes focus, still shows a caret and still
// answers arrow keys -- but no character is being typed into it, so a menu
// row carrying Delete has the better claim. A widget that is not SENSITIVE
// cannot hold focus at all and is recorded only so a filled-in descriptor
// is never ambiguous about which of the two it saw.
bool isReadOnly = false;
bool isEnabled = true;
// ⚠ A NAME BEING TYPED ON THE CANVAS IS NOT IN A WIDGET AT ALL -- the case
// the Qt seat needs its QGraphicsView branch for. UNANSWERED on this
// backend today and the seat says exactly why; the field exists so that
// closing the gap is a change in ONE file rather than a change of shape.
bool isEditableSceneText = false;
};
};