API — ICoreEssentials/UI/Icons
The public contract of 3 header(s) under ICoreEssentials/UI/Icons — 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 |
|---|---|---|---|
ICoreThemedIconArt.h | — | 0 | — |
ICoreThemedIconFactory.h | — | 0 | — |
ICoreThemedIconRequest.h | ICoreThemedIconRequest | 0 | — |
ICoreThemedIconArt.h#
ICoreEssentials/UI/Icons/ICoreThemedIconArt.h
The icon tier's ART RULES -- the half of themed icons that is about colour and markup rather than about a toolkit.
Two questions live here, and neither has ever needed a toolkit to answer:
- is this icon monochrome line art, so it must be tinted, or is it
coloured art that must be left alone?
- what does a block's authored SVG markup look like once the active
theme's tokens are substituted into it?
Both were implemented inside Backends/Qt/Icons/ICoreThemedIcon.cpp, beside the QIcon engines, and both are Qt-free bodies: a path test and a string substitution over ICoreRgba tokens. Sitting in a backend directory made them unavailable to every OTHER backend for no reason at all -- and
Declares no class of its own — see the file.
ICoreThemedIconFactory.h#
ICoreEssentials/UI/Icons/ICoreThemedIconFactory.h
Themed icons, in a spelling every backend can answer.
⚠ WHY THIS EXISTS BESIDE ICoreIcons RATHER THAN INSIDE IT.
ICoreIcons::themed() / ::blockArt() / ::subsystemGlyph() return a raw QIcon, and ICoreThemedIcon.h includes <QIcon>, <QPainter> and <QIconEngine> to say so. That is not a wrapper leak that can be tidied away: those factories build a QIcon around a live QIconEngine, and P7.8 declined to convert the engines deliberately -- QIcon heap-owns its engine and clone()s it, so a by-value wrapper has both the wrong lifetime and the wrong identity (ICoreIcon.h records the reasoning and calls it permanent).
The consequence only becomes visible with a second backend: no AppKit build can define any of them, and a caller on that backend cannot even INCLUDE
Declares no class of its own — see the file.
ICoreThemedIconRequest.h#
ICoreEssentials/UI/Icons/ICoreThemedIconRequest.h
ICoreThemedIconRequest#
ICoreThemedIconRequest.h:31 · struct · 0 declaration(s)
What a widget was asked for by setThemedIcon(), and the one function that turns it into pixels.
struct ICoreThemedIconRequest {
public:
// Empty means no themed icon was asked for; icoreBakeThemedIcon() then
// answers a null icon and the seat keeps whatever setIcon() gave it.
ICoreString svgPath;
// The raster size the two-argument verb names. Unused by the one-argument
// verb, which takes the tier's own size.
int size = 16;
// true: flood with the caption's ink (two-argument verb).
// false: the tier's own themed icon (one-argument verb).
bool captionInk = true;
};
};