ui
libraries/kinogaki-ui · 0 open · 6 done
The healthiest library, now tested. Tessellation/TextEdit/Grid/ScrollView geometry is covered headlessly, the orphaned TextEdit is wired into the demo, and naming is renamed to verbs + kinogaki. 84 cases / 273 checks green.
Resolved 2026-06-20. TextEdit wired into the demo detail panel and covered by tests; the vestigial Gpu scaffold removed and the version smoke check moved to a real test.
Resolved 2026-06-20. New geometry_test.cpp covers Draw tessellation, TextEdit wrap/hit-test/editing, and Grid/ScrollView placement; read-only geometry accessors made public.
Resolved 2026-06-20. Renamed CMake PRISMAUI* -> KINOGAKIUI*, removed stale binaries, and swapped sample 'prisma' strings for 'untitled'.
Resolved 2026-06-20. Renamed noun query helpers to verbs (itemAt->hitItem, buttonRect->rectForButton, posAt->hitPos, etc.).
The drawer (gpu::Canvas, talks only to platform::rhi), composite helpers (Draw.h, free functions kept off Canvas to keep it lean), widgets (reach the host only through the narrow WidgetHost seam), layout (two-phase measure/arrange), and theme (fully abstract Theme interface) are cleanly separated. No god class; the impl is split deliberately (Widgets.cpp = controls, Layout.cpp = containers, private WidgetsCommon.h for shared internals). No platform/core internals leak through public headers. The kinogaki::gpu / kinogaki::ui namespace split is enforced in the headers as the README claims.
No source or header exceeds 1000 lines; none exceeds 800. Largest sources: src/Widgets.cpp (568), src/Popup.cpp (420), src/Dock.cpp (375). Largest headers: include/kinogaki/ui/Widgets.h (403, mostly declarations + doc comments for ~26 widgets), include/kinogaki/ui/TextEdit.h (294, header-only impl). All within reason for the responsibilities they carry.