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

API — ICoreEssentials/UI/Backends/Gtk4/Values

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

ICoreGtk4CursorAccess.h#

ICoreEssentials/UI/Backends/Gtk4/Values/ICoreGtk4CursorAccess.h

Declares no class of its own — see the file.

ICoreGtk4FontAccess.h#

ICoreEssentials/UI/Backends/Gtk4/Values/ICoreGtk4FontAccess.h

Backend-internal access to what an ICoreFont actually asks for, and the one place points become pixels.

⚠ NOTHING ABOVE THE BACKEND ZONE MAY INCLUDE THIS. It names Pango, which is legal here and nowhere else (../README.md, census row R2.4). Its peers are ICoreGtk4PixmapAccess.h next door and ../Painting/ICoreGtk4PaintAccess.h: a wrapper whose public surface deliberately publishes no toolkit object still has to hand one to the painter that draws it.

⚠ THE SEAT HOLDS A REQUEST, NOT A FACE, AND A PangoFont COULD NOT DO THE JOB. The storage audit's row for this type answers a question about SIZE and the answer is true and irrelevant -- three clauses of the public contract have nowhere to live on a resolved face, and the WinUI seat reached the identical conclusion about IDWriteFont and the AppKit seat about CTFontRef:

ICoreGtk4FontRequest#

ICoreGtk4FontAccess.h:47 · struct · 0 declaration(s)

What an ICoreFont remembers.

struct ICoreGtk4FontRequest {
public:
    std::string family;

    // ⚠ EXACTLY ONE OF THESE IS SET, and the other is negative. That mirrors
    // the oracle rather than Pango: see the class comment above.
    double pointSize = -1.0;
    int pixelSize = -1;

    // ⚠ int, NOT ICoreFontWeight, and that is the file format. A weight
    // deserialized from a saved project may be any number -- 350, 950 -- and
    // must round-trip unchanged (ICoreFont.h says so at length). Narrowing to
    // the four enumerators here would rewrite it.
    int weight = 400;

    bool italic = false;
    bool underline = false;
    bool strikeOut = false;

    // 0 is "any stretch", matching the oracle's default; 100 is normal.
    int stretch = 0;

    bool kerning = true;
    bool fixedPitch = false;

    bool allUppercase = false;

    // 100.0 means "never set letter spacing at all", which is NOT the same as
    // setting it to 100 -- the Qt seat's ICoreFontSpec constructor draws the
    // same distinction and for the same reason.
    double letterSpacingPercent = 100.0;

    bool monospaceStyleHint = false;
};
};

ICoreGtk4IconAccess.h#

ICoreEssentials/UI/Backends/Gtk4/Values/ICoreGtk4IconAccess.h

Backend-internal access to what an ICoreIcon HOLDS on this backend (L7.3).

The peer of ../Values/ICoreGtk4PixmapAccess.h and of the other five access headers in this zone, and it exists for the same reason they do: a wrapper whose public surface publishes nothing about its occupant still has to be BUILT by the icon tier beside it and ASSERTED by the rig that proves it.

⚠ NOTHING ABOVE THE BACKEND ZONE MAY INCLUDE THIS.

⚠⚠ AN ICON ON THIS BACKEND IS EITHER SCALABLE OR A RASTER, AND THE DIFFERENCE IS THE WHOLE REASON THIS HEADER EXISTS.

ICoreIcon(path) on a .svg keeps the PARSED DRAWING and re-rasterises at every requested size, which is what the Qt seat's ICoreSvgIconEngine does

Declares no class of its own — see the file.

ICoreGtk4KeySequenceAccess.h#

ICoreEssentials/UI/Backends/Gtk4/Values/ICoreGtk4KeySequenceAccess.h

Backend-internal access to the chords inside an ICoreKeySequence, and the peer of ../../WinUI/Values/ICoreWinUIKeySequenceAccess.h.

⚠ NOTHING ABOVE THE BACKEND ZONE MAY INCLUDE THIS.

WHY IT EXISTS. The wrapper's public seam is nativeStorage(), a const void* that deliberately says nothing about what is behind it. On the Qt backend that is a QKeySequence and icoreQt() casts it; here it is a pointer to a refcounted chord vector whose struct is private to ICoreGtk4KeySequence.cpp, so that ONE file owns the layout. The shortcut seat needs those chords. Reaching into the storage at the call site would put the layout in two places and make the next change to it a silent miscompile rather than a link error.

Declares no class of its own — see the file.

ICoreGtk4PixmapAccess.h#

ICoreEssentials/UI/Backends/Gtk4/Values/ICoreGtk4PixmapAccess.h

Backend-internal access to an ICorePixmap's surface and its bits.

The peer of ../../WinUI/Values/ICoreWinUIPixmapAccess.h and of ../../AppKit/Values/ICoreAppKitPixmapAccess.h: a wrapper whose public surface deliberately publishes no pixels still has to hand them to the painter that draws it, and to the test that proves it decoded correctly.

⚠ NOTHING ABOVE THE BACKEND ZONE MAY INCLUDE THIS.

⚠ THE BUFFER HOLDS A cairo_surface_t*, AND THAT IS A DEPARTURE FROM BOTH SIBLING SEATS, WHICH HOLD RAW BYTES. It is not a preference: ICorePixmapPainter has to open a real drawing context on a pixmap, the D2 painter draws through cairo, and cairo draws into a cairo_surface_t. A seat holding loose bytes would have to wrap them in a surface at every paint and

Declares no class of its own — see the file.