morph 0.1.0
Asynchronous bridge between GUI thread and business models
Loading...
Searching...
No Matches
morph::forms::Overrides Class Reference

Replacement controls, resolved per field in the order field path, widget hint, unit, kind, else the built-in control. More...

#include <overrides.hpp>

Public Types

using Render = std::function<ui::Node(FieldView const&)>
 Draws a field's control.

Public Member Functions

Overrides & byField (std::string path, Render render)
 Overrides one field.
Overrides & byWidget (std::string hint, Render render)
 Overrides every field with an x-widget hint.
Overrides & byUnit (std::string unit, Render render)
 Overrides every field in a unit.
Overrides & byKind (FieldKind kind, Render render)
 Overrides every field of a kind.
Render const * resolve (FieldSpec const &spec) const
 The override for spec, if any.

Detailed Description

Replacement controls, resolved per field in the order field path, widget hint, unit, kind, else the built-in control.

An override replaces the control only: the cell around it (label, help, visibility) is still drawn.

Definition at line 62 of file overrides.hpp.

Member Typedef Documentation

◆ Render

using morph::forms::Overrides::Render = std::function<ui::Node(FieldView const&)>

Draws a field's control.

Definition at line 65 of file overrides.hpp.

Member Function Documentation

◆ byField()

Overrides & morph::forms::Overrides::byField ( std::string path,
Render render )
inline

Overrides one field.

Parameters
pathThe field's spec path (FieldSpec::path: name, parent.member, rows[].member).
renderThe control.
Returns
*this, for chaining.

Definition at line 71 of file overrides.hpp.

◆ byWidget()

Overrides & morph::forms::Overrides::byWidget ( std::string hint,
Render render )
inline

Overrides every field with an x-widget hint.

Parameters
hintThe hint, e.g. "slider".
renderThe control.
Returns
*this, for chaining.

Definition at line 80 of file overrides.hpp.

◆ byUnit()

Overrides & morph::forms::Overrides::byUnit ( std::string unit,
Render render )
inline

Overrides every field in a unit.

Parameters
unitThe unit's ExtUnits.unitAscii.
renderThe control.
Returns
*this, for chaining.

Definition at line 89 of file overrides.hpp.

◆ byKind()

Overrides & morph::forms::Overrides::byKind ( FieldKind kind,
Render render )
inline

Overrides every field of a kind.

Parameters
kindThe kind.
renderThe control.
Returns
*this, for chaining.

Definition at line 98 of file overrides.hpp.

◆ resolve()

Render const * morph::forms::Overrides::resolve ( FieldSpec const & spec) const
inlinenodiscard

The override for spec, if any.

Parameters
specThe field.
Returns
The first match in field, widget, unit, kind order; null when none matches.

Definition at line 106 of file overrides.hpp.


The documentation for this class was generated from the following file: