Generated reference › API — ICoreEssentials/UI/Backends/Web/MenuBar
kind: generated#api#icoreessentials-ui-backends-web-menubar

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.

HeaderDefinesDeclarationsBases
ICoreWebMenuMirrorRules.hICoreWebFocusedWidget0—

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;
};
};