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.
| Header | Defines | Declarations | Bases |
|---|---|---|---|
ICoreGtk4MenuMirrorRules.h | ICoreGtk4FocusedWidget | 0 | — |
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;
};
};