API — ICoreEssentials/UI/Backends/WinUI/Theme
The public contract of 2 header(s) under ICoreEssentials/UI/Backends/WinUI/Theme — 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 |
|---|---|---|---|
ICoreStyleSpecXaml.h | ICoreWinUIPaintedStyle | 0 | — |
ICoreWinUIThemeSeat.h | — | 0 | — |
ICoreStyleSpecXaml.h#
ICoreEssentials/UI/Backends/WinUI/Theme/ICoreStyleSpecXaml.h
ICoreStyleSpecXaml -- the WinUI interpreter for ICoreStyleSpec.
ICoreStyleSpec says what a surface should look like without naming a toolkit. The Qt interpreter turns one back into stylesheet text. WinUI has no stylesheet, so this one has TWO outputs, because the backend has two lanes and they need different things:
- the PAINTED lane wants numbers. Buttons, cards, the toolbar, menus and
the whole graphics canvas are drawn by the existing paintContent code; it needs a resolved background, border, radius and ink, not markup. -> icoreWinUIPaintedStyle()
- the NATIVE lane wants markup. Text entry, item views and the scroll
viewer are real XAML controls, and the way to restyle one is a Style
ICoreWinUIPaintedStyle#
ICoreStyleSpecXaml.h:55 · struct · 0 declaration(s)
A resolved surface, ready for a painted-lane paintContent().
struct ICoreWinUIPaintedStyle {
public:
ICoreRgba background;
ICoreRgba foreground;
ICoreRgba borderColor;
double borderWidth = -1.0;
// The four sides, after the uniform width and any per-side override have
// been composed. Unset when the spec mentioned no border at all.
//
// ⚠ borderWidth is still the UNIFORM width and is not the same question:
// a painted-lane caller drawing a one-colour frame wants it, while a
// caller placing a 3px accent bar down the left edge wants this. When the
// four agree, they say the same thing.
//
// ⚠ ONE BorderBrush, four thicknesses -- so a per-side COLOUR does not
// survive the trip. The navigator's accent left edge is a different colour
// from its hairline and is therefore a PAINTED surface on this backend,
// not a Style. Said here because the alternative is a reader discovering
// it on screen.
ICoreStyleBox borderThickness;
double borderRadius = -1.0;
// ⚠ THREE FIELDS, NOT AN `ICoreStyleFont` -- and this file asked for the
// struct until 2026-08-22 (W0.13, §57). ICoreStyleSpec carried an
// `ICoreStyleFont { family, sizePx, weight }` on the branch this backend
// was written against; the vocabulary that survived the 2026-08-22 merge
// spells the same three answers as three flat members, and `weight` became
// a BOOL. Mirrored here rather than translated at the read site, so the two
// vocabularies cannot drift apart again unnoticed -- which is exactly what
// they did, invisibly, for as long as no configure compiled this file.
//
// ⚠ THE NARROWING IS REAL AND IS NOT HIDDEN: a numeric CSS weight (300,
// 600, 900) cannot be said any more -- bold or not is the whole scale. A
// surface that needs a semibold is a question for ICoreStyleSpec, not
// something to smuggle back in here.
std::string fontFamily; // empty is unset
double fontPixelSize = -1.0; // <= 0 is unset
bool fontBold = false;
// The resource a part is drawn AS -- today the two disclosure arrows.
// Empty when unset. A XAML Style has no `image` setter, so this reaches
// the caller for an ImageBrush or a painted glyph rather than a setter.
std::string image;
double minWidth = -1.0;
double minHeight = -1.0;
ICoreRgba alternateBackground;
bool selectionSpansRow = false;
ICoreStyleBox padding;
ICoreStyleBox margin;
double fixedWidth = -1.0;
double fixedHeight = -1.0;
bool suppressFocusRing = false;
ICoreRgba selectionBackground;
ICoreRgba selectionForeground;
// False when the spec had no rule for the requested part in ANY state.
// Distinct from "found a rule and every field was unset": the first means
// the surface has no opinion at all and the caller should draw its
// default, the second means it deliberately said nothing about anything.
bool found = false;
};
};
ICoreWinUIThemeSeat.h#
ICoreEssentials/UI/Backends/WinUI/Theme/ICoreWinUIThemeSeat.h
Declares no class of its own — see the file.