lib-ui · crate
kinogaki-properties
Property schemas: what an inspector shows, as data.
- Repository
- lib-ui (kinogaki/lib-ui)
- Folder
libs/lib-ui/crates/properties- Source
- 12 files, 2,836 lines
- Tests
- 2 files, 265 lines
What it is
Property schemas: what an inspector shows, as data.
A node, tool, object or settings page describes its properties as a current Value, whether it is enabled (and why not), and whether it can be connected. A renderer (kinogaki-ui's widgets::properties::draw) draws any schema, lets the user edit the values in place and reports which fields changed and which actions were taken; the owner of the data applies them. Schemas hold no host state and no callbacks: they are rebuilt from the data each frame.
K is the host's key for a field (an enum naming its slots).
The numeric module reads typed numbers: arithmetic and units; tone_curve holds tone curves, their maths and their encoding, and ramp float and color ramps; code is what a code field knows of its language, and Diagnostic a problem with where it points; sdk (feature studio-sdk) converts diagnostics to and from the Studio SDK's.
Depends on
| Crate | Repository | As | What it is |
|---|---|---|---|
kinogaki-studio-api | SDK | normal | Kinogaki Studio's headless plugin API. |
Third-party
None.
Used by
| Crate | Repository | As | What it is |
|---|---|---|---|
kinogaki-editor | Core and the app | normal | Kinogaki Studio's editor: the document and everything the window shows of it, as parts one frame borrows one by one. |
kinogaki-sdk-ui | Core and the app | normal | The plugin SDK's UI layer over lib-ui: the SDK's Ui and Painter, its sheets and the host's services, implemented over lib-ui. |
kinogaki-ui | lib-ui | normal | Kinogaki UI: the immediate-mode UI framework Kinogaki applications are built on. |
Modules
codeWhat a code field knows of its language: a host'sCodeLanguagecolors the text byTokens, offersCompletionsat the cursor and explains what the pointer rests on.81 linesdiagnostic(private)Diagnostics: problems a host found in what the user wrote or made (a script's error at a line and column, a cook's warning about an element), shown on a node, listed in a console and underlined in a code field.165 linesnumber(private)How a number shows, moves and is typed.233 linesnumericBounded source-compatible arithmetic and length entry, independent of widgets.97 linesnumeric::reader(private)no module doc133 linesnumeric::units(private)no module doc204 linesrampRamps: a value along 0–1 through keys, a number (a float ramp: a profile, a falloff) or a color (a color ramp: a gradient), as Houdini's ramp parameters have them; their maths and their encoding in acrate::Value::Numbersforcrate::Kind::Ramp.704 linesschema(private)The schema: sections and typed fields with their values, and the edits a renderer reports back.616 linesschema::field(private)Field constructors, one per kind, and the builder options a field takes.229 linessdkDiagnostics to and from the Studio SDK's (featurestudio-sdk): the one copy every kernel converts with.60 linestone_curveTone curves: a function from 0–1 to 0–1 through keys, as a Curves adjustment has them (a master curve and one a channel), and their encoding in acrate::Value::Numbersforcrate::Kind::ToneCurves.293 lines
Public types and traits
At the crate root
Structs ChipCurveChannelDiagnosticEditsFieldNumberPathChoiceSchemaSectionSocketSpan
Enums ActionAnimationItemKindNumberStyleSeveritySocketKindTrailingValue
Type aliases Text
By module: 34 public types and traits in 7 modules
code CodeLanguageCompletionCompletionsPlainTextTokenTokenClass
diagnostic DiagnosticSeveritySpan
number NumberNumberStyle
numeric::units Unit
ramp InterpolationKeyKeysRamp
schema ActionAnimationChipCurveChannelEditsFieldItemKindPathChoiceSchemaSectionSocketSocketKindTextTrailingValue
tone_curve InterpolationToneCurve
Besides these, 13 public functions at module level.
