API — ICoreEssentials/UI
The public contract of 2 header(s) under ICoreEssentials/UI — 6 class/struct definition(s), 12 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 |
|---|---|---|---|
ICoreNativeHandle.h | ICoreNativeWidget, ICoreNativeItem, ICoreNativeObject, ICoreNativeScene, ICoreAnimationTarget, ICoreNativeLayout | 12 | — |
ICoreNativeWidgetRender.h | — | 0 | — |
ICoreNativeHandle.h#
ICoreEssentials/UI/ICoreNativeHandle.h
The one thing a Qt-free header is allowed to say about the toolkit object behind a wrapper: that it exists, and that it has an address.
Every UI wrapper in ICoreEssentials is moving to the SDK shape --
class ICoreThing { public: ICoreThing(); ~ICoreThing(); private: class Impl; std::unique_ptr<Impl> impl; };
ICoreNativeWidget#
ICoreNativeHandle.h:163 · class · 2 declaration(s)
Implemented by every wrapper that owns a native widget (something that can be parented, laid out, or shown).
class ICoreNativeWidget {
public:
virtual ~ICoreNativeWidget() = default;
// The QWidget behind this wrapper, as an opaque handle. Never null for a
// live wrapper.
virtual ICoreNativeHandle nativeWidgetHandle() const = 0;
};
};
ICoreNativeItem#
ICoreNativeHandle.h:175 · class · 2 declaration(s)
Implemented by wrappers owning a native scene item -- the QGraphicsItem family, which is not a widget and cannot be laid out.
class ICoreNativeItem {
public:
virtual ~ICoreNativeItem() = default;
virtual ICoreNativeHandle nativeItemHandle() const = 0;
};
};
ICoreNativeObject#
ICoreNativeHandle.h:185 · class · 2 declaration(s)
Implemented by wrappers owning a bare QObject -- models, filters, effects, animations.
class ICoreNativeObject {
public:
virtual ~ICoreNativeObject() = default;
virtual ICoreNativeHandle nativeObjectHandle() const = 0;
};
};
ICoreNativeScene#
ICoreNativeHandle.h:198 · class · 2 declaration(s)
Implemented by wrappers owning a native scene -- the QGraphicsScene the item family lives in.
class ICoreNativeScene {
public:
virtual ~ICoreNativeScene() = default;
virtual ICoreNativeHandle nativeSceneHandle() const = 0;
};
};
ICoreAnimationTarget#
ICoreNativeHandle.h:230 · class · 2 declaration(s)
Implemented by a wrapper that can be driven by a PROPERTY animation -- ICoreAnimation's target.
class ICoreAnimationTarget {
public:
virtual ~ICoreAnimationTarget() = default;
virtual ICoreNativeHandle nativeAnimationTargetHandle() const = 0;
};
};
ICoreNativeLayout#
ICoreNativeHandle.h:262 · class · 2 declaration(s)
DECIDED (task P0.3): a layout gets its OWN interface.
class ICoreNativeLayout {
public:
virtual ~ICoreNativeLayout() = default;
virtual ICoreNativeHandle nativeLayoutHandle() const = 0;
};
};
File-scope declarations#
// An opaque pointer to the toolkit object a wrapper owns. Meaningless outside
// ICoreEssentials/*.cpp -- never dereference it, never cast it at a call site.
using ICoreNativeHandle = void*;
// ⚠⚠ "TELL ME WHEN THIS WIDGET CHANGES SIZE", AND IT IS THE ONE THING A
// PORTABLE ANCHOR CANNOT DO FOR ITSELF (A10.3, 2026-09-09).
//
// ICoreWidgetResizeFilter used to be FOUR files -- one per backend -- and three
// of them had already converged on the same twelve lines of arithmetic, the same
// `dynamic_cast<ICoreWidget*>` on both ends and the same `setGeometry()`. All
using ICoreResizeObserverFn = std::function<void(int width, int height)>;
ICoreNativeWidgetRender.h#
ICoreEssentials/UI/ICoreNativeWidgetRender.h
SIZE AND RENDER ANY WRAPPER THAT OWNS A NATIVE WIDGET, NAMING NO TOOLKIT.
Row A1.3 of the AppKit port board. Three free functions over ICoreNativeWidget*, so one source can size a control, render it into a pixmap, and be compiled against EITHER backend's archive without a single
#ifdef.WHY THIS EXISTS, AND WHY IT IS NOT A METHOD ON ICoreNativeWidget
Of the 45 wrapper classes in UI/, 25 derive from ICoreWidget -- which carries geometry and render(ICorePixmap&) -- and 20 derive from ICoreNativeWidget DIRECTLY: Button, DocumentView, Label, LineEdit, ListBox, ProgressBar, RadioButton, RichTextEdit, ScrollPane, Slider, Splitter, StackedWidget, TextEdit, Tree, TreeView and the five non-control cases. ICoreNativeWidget is a ONE-MEMBER handle interface -- nativeWidgetHandle() and nothing else -- and
Declares no class of its own — see the file.