dxd - dynax driver framework 3.0.1d223
cross platform open source driver development framework
Loading...
Searching...
No Matches
dx::gui Namespace Reference

the control panel's widgets over JUCE: each one takes the value it edits and a listener, writes the device's desc back on a change and follows the desc when something else changes it - so a panel is composed of these, never of event handling of its own More...

Classes

class  box
 a drop down whose items are either ids or their text, depending on what the edited value is More...
class  button
 a button, toggling where a listener is given More...
class  changed
 a change without a promoted of its own, told to the refreshes keyed: an outline's edits More...
class  checkbox
 a check box for one boolean of the desc More...
struct  control
 one control of an outline row: what it shows and, where it may change something, how - a toolkit renders it, nothing else More...
class  cpl
 the control panel application: one window holding the driver's device tree, every device a branch of it. The driver itself is a base of the tree view below, so a device arriving on the bus adds its line - marshalled onto the message thread More...
class  describe
 the outline of a struct that names its members (dx_serialize.h: visit): a line per member, as its kind says - a power of two, a bitmap of named bits, a choice among the options its struct allows as it stands -, a nested struct a branch of its own or, where all its members are switches, one line of toggles; an array a branch whose count is chosen, its elements beneath it. Every edit commits and tells changed, so every control asks its value and its options anew: what one member allows follows another. extend() adds a caller's lines to an array's element. More...
class  device
 dx::gui::device A device_t with its outline (dx::gui::model) as its own line of the tree, built by attach() as the driver adds it; its icon the image the tree paints behind it. More...
class  exception_dialog
 dx::gui::exception_dialog wxWidgets counterpart of the juce interface's exception hierarchy dialog: shows a dx::exception and its chain of causes (frame, comment, what()+error code, file:line, function) as a navigable tree, instead of collapsing it into a single message string. More...
class  file
 the given vendor/product-relative path, in the platform's standard app data location More...
class  image
 an image from a file or a resource, scaled into its place More...
class  item
 one line of the device tree: its widget is created when the line becomes visible and dropped with it More...
class  label
 a text field, editable where a listener is given More...
class  line
 a line of the outline in the tree: its row made while the line shows, the lines beneath it its sub items More...
class  looknfeel
 dx::gui::looknfeel Approximates the juce interface's dark/light colour scheme on the containers wx lets us recolour (frame/panel/splitter backgrounds, the tree, and - via colour inheritance - future field labels) without fighting native control rendering. Buttons, combo boxes, checkboxes and text fields are deliberately left to render as the platform normally would: recolouring native controls fights macOS's own dark-mode appearance, whereas juce draws every control itself and so can commit to one look on every platform. More...
class  model
 a device's outline: its line with icon and name, its identity, its desc (dx::gui::describe) - the clock's rate, source and sync reference and a stream's source among its lines -, its I/O size, its transport and its clients More...
struct  node
 one line of the outline: its controls and the lines beneath it, those refilled as watch tells More...
class  row
 a line of the outline's controls, left to right, each at the width its content needs; one watching its value refreshes on the message thread while it lives More...
class  text
 dx::gui::text An editable single line text field, committing on Enter or on losing focus. More...

Typedefs

typedef std::function< void(void *, std::function< void()> &&)> watch_t
 registers a refresh keyed, an empty refresh removing it

Functions

control caption (std::string text)
template<typename promoted_t>
control of (enum control::kind kind, promoted_t &promoted, bool editable, std::function< stream::named()> &&items={})
 a promoted's value as a number, a check box or a choice among items, changing it where editable
stream::named power2 (unsigned min, unsigned max)
 the powers of two from min to max and the half-way values between them, min and max among them
wxWindow * render (wxWindow *parent, const control &control, std::vector< std::function< void()> > &unwatch)
 a control of the outline as its window; one watching its value refreshes on the UI thread while the window lives, the watch's removal kept in unwatch
item * render (wxWindow *parent, const node &node, std::vector< std::function< void()> > &unwatch)
 a line of the outline as an item beneath parent, its lines beneath it
wxWindow * row (wxWindow *parent, std::vector< std::function< wxWindow *(wxWindow *)> > controls)
 dx::gui::row Lays a handful of controls out on one horizontal line - the wx counterpart of the juce interface's dx::gui::aggregate<component_t...>: a dense row such as "[audio][MIDI] resolution: [32] bit [float] in [4] byte ...", built from factories so every control gets the row panel as its wx parent.
template<typename promoted_t>
watch_t watch (promoted_t &promoted)
 a promoted's changes told to the refreshes keyed
watch_t watch (watch_t first, watch_t second)
 both watches told

Detailed Description

the control panel's widgets over JUCE: each one takes the value it edits and a listener, writes the device's desc back on a change and follows the desc when something else changes it - so a panel is composed of these, never of event handling of its own

the control panel's widgets over wxWidgets - the same panel as the JUCE variant builds, widget for widget, so a product picks its toolkit and nothing else changes

Typedef Documentation

◆ watch_t

typedef std::function<void(void*, std::function<void()>&&)> dx::gui::watch_t

registers a refresh keyed, an empty refresh removing it

Function Documentation

◆ caption()

control dx::gui::caption ( std::string text)
inline
Here is the call graph for this function:
Here is the caller graph for this function:

◆ of()

template<typename promoted_t>
control dx::gui::of ( enum control::kind kind,
promoted_t & promoted,
bool editable,
std::function< stream::named()> && items = {} )

a promoted's value as a number, a check box or a choice among items, changing it where editable

Here is the call graph for this function:
Here is the caller graph for this function:

◆ power2()

stream::named dx::gui::power2 ( unsigned min,
unsigned max )
inline

the powers of two from min to max and the half-way values between them, min and max among them

Here is the call graph for this function:
Here is the caller graph for this function:

◆ render() [1/2]

wxWindow * dx::gui::render ( wxWindow * parent,
const control & control,
std::vector< std::function< void()> > & unwatch )
inline

a control of the outline as its window; one watching its value refreshes on the UI thread while the window lives, the watch's removal kept in unwatch

Here is the call graph for this function:
Here is the caller graph for this function:

◆ render() [2/2]

item * dx::gui::render ( wxWindow * parent,
const node & node,
std::vector< std::function< void()> > & unwatch )
inline

a line of the outline as an item beneath parent, its lines beneath it

Here is the call graph for this function:

◆ row()

wxWindow * dx::gui::row ( wxWindow * parent,
std::vector< std::function< wxWindow *(wxWindow *)> > controls )
inline

dx::gui::row Lays a handful of controls out on one horizontal line - the wx counterpart of the juce interface's dx::gui::aggregate<component_t...>: a dense row such as "[audio][MIDI] resolution: [32] bit [float] in [4] byte ...", built from factories so every control gets the row panel as its wx parent.

◆ watch() [1/2]

template<typename promoted_t>
watch_t dx::gui::watch ( promoted_t & promoted)

a promoted's changes told to the refreshes keyed

Here is the call graph for this function:
Here is the caller graph for this function:

◆ watch() [2/2]

watch_t dx::gui::watch ( watch_t first,
watch_t second )
inline

both watches told

Here is the call graph for this function:

(c) copyright 2009 dynamic acoustics e.U. generated on

a closed source license may be obtained by requesting a written permission from dynamic acoustics e.U.
however - governmental use generally and military use especially is strictly prohibited though.