xentara-workbench-plugin v1.3
The Xentara Workbench Plugin Framework
Loading...
Searching...
No Matches
xentara::workbench::bindings Namespace Reference

UI bindings and bindable properties. More...

Namespaces

namespace  functional
 

Classes

class  AbstractElementBinding
 Base class for UI bindings for all types of elements. More...
 
class  AbstractJsonEditor
 Type-independent base class for JSON editors. More...
 
class  AbstractSpinBox
 Type-independent base class for spin boxes. More...
 
class  AttributePicker
 A picker for element attributes. More...
 
class  CollapsibleGroup
 A group that can be expanded and collapsed by the user. More...
 
class  ComboBox
 A combo box. More...
 
class  CrossReferenceController
 Base class for objects that contain a cross reference from one property controller to another. More...
 
class  DurationEdit
 An editor for time durations. More...
 
class  ElementBinding
 Base class for UI bindings for a certain type of element. More...
 
class  ElementPicker
 A picker for elements. More...
 
class  EventPicker
 A picker for element events. More...
 
class  FormField
 Base class for fields that can be added to a form. More...
 
class  FormGroup
 Base class for specialized groups that can be added to a form. More...
 
class  GroupField
 Base class for fields that can be added to a group or collapsible group. More...
 
class  ImportButton
 A button for generating child elements by importing an external file. More...
 
class  InfoField
 A read-only text field that can be used to show some non-editable information. More...
 
class  JsonEditor
 A field for editing JSON text. More...
 
class  PasswordField
 A text field for password entry. More...
 
class  PlaceholderNotice
 A notice that an element is a placeholder element. More...
 
class  PropertyChangedCallback
 A callback for changes to a property. More...
 
class  PropertyContainer
 Base class for objects that contain properties, directly or indirectly. More...
 
class  PropertyController
 An object that manages bindable properties. More...
 
class  PropertyHandle
 A handle for accessing a property. More...
 
class  PropertyId
 An ID to identify a property in a property controller. More...
 
class  SpinBox
 A spin box for entering numeric values. More...
 
class  SubElementList
 A list of sub elements. More...
 
class  SubElementPage
 A sub element shown on a separate page. More...
 
class  TaskPicker
 A picker for element tasks. More...
 
class  TextField
 A single-line text field. More...
 
class  TimePointEdit
 An editor for a time point. More...
 
class  ToggleSwitch
 A toggle switch for selecting a Boolean option. More...
 
class  Undefined
 A value that allows assigning and initializing undefined value for ValueOrUndefined. More...
 
class  UuidEdit
 An editor for a UUID. More...
 
class  ValueOrUndefined
 A value that keeps track of whether is was ever assigned to. More...
 

Concepts

concept  Getter
 A concept that describes getters for bindings for a specific value.
 
concept  Setter
 A concept that describes setters for bindings for a specific value.
 
concept  Bindable
 A concept that describes values that can be bound to a binding.
 
concept  StringGetter
 A concept that describes getters for string bindings.
 
concept  StringSetter
 A concept that describes setters for string bindings.
 
concept  StringChecker
 A concept that describes checkers for string bindings.
 
concept  StringBindable
 A concept that describes values that can be bound to a string binding.
 
concept  SubElementFactoryFunction
 A concept that describes a factory function for creating sub elements.
 
concept  Callback
 A concept that describes const callbacks.
 
concept  ConstCallback
 A concept that describes const callbacks.
 
concept  JsonType
 A concept describing types that can be edited in a JSON editor.
 
concept  PropertyChangedInvocable
 A concept that describes objects that can be used as a property callback.
 

Typedefs

using ForEachSubPropertyContainerFunction = utils::functional::function_ref< auto(PropertyContainer &) ->void >
 A function object used to iterate over all the sub properties of a property container.
 
using ForEachCrossReferenceFunction = utils::functional::function_ref< auto(CrossReferenceController &) ->void >
 A function object used to iterate over all the cross reference contained within a property container.
 

Enumerations

enum class  Action { ValueChanged , ElementChanged , ElementInserted , ElementRemoved }
 Actions that can be published by a property controller. More...
 

Functions

template<typename Value >
 Undefined (Value) -> Undefined< std::remove_cvref_t< Value > >
 Template deduction guide for Undefined.
 

Detailed Description

UI bindings and bindable properties.

This namespace contains the facilities necessary to bind bindable properties to the UI elements used to edit them.

Typedef Documentation

◆ ForEachCrossReferenceFunction

◆ ForEachSubPropertyContainerFunction

A function object used to iterate over all the sub properties of a property container.

See also
bindings::PropertyContainer::forEachChildPropertyContainer()

Enumeration Type Documentation

◆ Action

Actions that can be published by a property controller.

Include file
#include <xentara/workbench/bindings/Types.hpp>
Enumerator
ValueChanged 

The entire value of a property has changed.

For list-based properties, this indicates that complex changes were made to the list, and
the entire list should be updated. 
ElementChanged 

The element at the given index of a list-based property has changed.

ElementInserted 

An element was inserted into a list-based property at the given index.

ElementRemoved 

The element at the given index was removed from a list-based property.

Function Documentation

◆ Undefined()

template<typename Value >
xentara::workbench::bindings::Undefined ( Value  ) -> Undefined< std::remove_cvref_t< Value > >

Template deduction guide for Undefined.