Skip to content

Latest commit

 

History

History
57 lines (46 loc) · 3.53 KB

File metadata and controls

57 lines (46 loc) · 3.53 KB

Nikerva manual and API reference

This manual explains how to create, configure, apply, read, and change Nikerva UI. All names refer to the current Nikerva namespace and headers.

Retained UI keeps controls alive between frames. Use handles, setters, and property bindings. Every-frame declarative UI describes the desired controls each frame. Keep application state and the builder alive; repeat declarations with stable IDs. These are separate APIs with different widgets and setters.

Find what you need

Task Guide
Install/link the library and open an example Basic usage, runnable examples
Create controls, change values, bind properties, and retain callbacks Set, apply, and change
Find every persistent widget and its configuration Retained widget reference
Find every builder element, fluent property, and direct widget Declarative widget reference
Set sizes, positions, padding, colors, fonts, themes, and stylesheets Layout and styling
Build lists, grids, trees, tables, property forms, and docking Collections and data sources
Deliver input, draw custom content, load fonts/images, and submit frames Input, painting, and host integration
Draw retained lines, polylines, and point markers Retained drawing API and example
Look up exact signatures, overloads, fields, defaults, and enum members All 41 public headers and type index
Read longer foundation and diagnostic examples Additional implementation notes
Understand dependency direction and ownership Architecture

How to read a widget entry

  1. Create identifies the constructor or parent factory.
  2. Configure lists initial values and constructor options.
  3. Change/read identifies actual setters and accessors. Options are copied during construction; editing your old options variable does not update the control.
  4. Events identifies what the widget reports and who owns the subscription.
  5. Reference provides exact overloads and associated public types.

Inherited methods are documented once and apply to every derived widget. A constructor option without a setter is a creation option, not a live property. A field returned as a value is a snapshot: edit the copy, then pass it through a setter to apply the change.

Examples use C++20. Snippets marked “inside your frame” borrow a running host; they do not create a window. Complete native applications are in the examples guide. Private fields, Detail internals, and internal builder records are not supported public APIs.

Coverage and maintenance

The declaration reference covers every current public header under include/Nikerva: retained controls/options, declarative widgets and builder capabilities, layout/style types, properties/connections, collection sources, input/paint records, renderer interfaces, Vulkan backends, and diagnostics. Declarations retain defaults and constraints. The task guides explain behavior, application patterns, and limitations that a signature alone cannot explain.

When changing a public API, update its guide and declaration page together. Source remains authoritative. The examples guide includes real result images and the current sample-host limitations.