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

API — ICoreEssentials/UI/Backends/Gtk4/MenuBar

The public contract of 1 header(s) under ICoreEssentials/UI/Backends/Gtk4/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
ICoreGtk4MenuMirrorRules.hICoreGtk4FocusedWidget0—

ICoreGtk4MenuMirrorRules.h#

ICoreEssentials/UI/Backends/Gtk4/MenuBar/ICoreGtk4MenuMirrorRules.h

The DECISIONS behind UI/MenuBar/ICoreMenuMirror.h's seam, split out of the seat so they can be tested with no display, no GtkApplication and no window.

⚠ THE SPLIT IS W3.6's AND IT IS COPIED ON PURPOSE. The mirror seam has fourteen functions; eleven are bookkeeping over a platform menu and there is no platform menu on this desktop, so they are inert. THREE decide something and are reached whether or not a system menu bar exists, because UI/MenuBar/ICoreMenu.cpp is PORTABLE and calls them off the PAINTED menu.

⚠ NO GTK, NO GLIB, NO TOOLKIT NAME IN THIS HEADER. A chord is a plain 32-bit word (Values/ICoreGtk4KeySequenceAccess.h) and a focused widget is reduced to the facts below before it reaches this file, so a rig links these rules directly and drives them with no display at all.

ICoreGtk4FocusedWidget#

ICoreGtk4MenuMirrorRules.h:28 · struct · 0 declaration(s)

What the seat reduces the keyboard focus to before asking the rule.

struct ICoreGtk4FocusedWidget {
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;
};
};