Generated reference › API — ICoreEssentials/UI
kind: generated#api#icoreessentials-ui

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.

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.