|
HikoGUI
A low latency retained GUI
|
Public Member Functions | |
| template<typename V > | |
| CheckboxWidget (Window &window, Widget *parent, V &&value, ValueType trueValue, ValueType falseValue) noexcept | |
| CheckboxWidget (const CheckboxWidget &)=delete | |
| CheckboxWidget & | operator= (const CheckboxWidget &)=delete |
| CheckboxWidget (CheckboxWidget &&)=delete | |
| CheckboxWidget & | operator= (CheckboxWidget &&)=delete |
| void | layout (hires_utc_clock::time_point displayTimePoint) noexcept override |
| Layout the widget. | |
| void | draw (DrawContext const &drawContext, hires_utc_clock::time_point displayTimePoint) noexcept override |
| Draw widget. | |
| void | handleMouseEvent (MouseEvent const &event) noexcept override |
| void | handleCommand (string_ltag command) noexcept override |
| Handle command. | |
| HitBox | hitBoxTest (vec position) const noexcept override |
| Find the widget that is under the mouse cursor. | |
| bool | acceptsFocus () const noexcept override |
| Check if the widget will accept keyboard focus. | |
Public Member Functions inherited from tt::Widget | |
| Widget (Window &window, Widget *parent, vec defaultExtent) noexcept | |
| Widget (const Widget &)=delete | |
| Widget & | operator= (const Widget &)=delete |
| Widget (Widget &&)=delete | |
| Widget & | operator= (Widget &&)=delete |
| virtual Widget & | addWidget (Alignment alignment, std::unique_ptr< Widget > childWidget) noexcept |
| Add a widget directly to this widget. | |
| template<typename T , typename... Args> | |
| T & | makeWidgetDirectly (Args &&... args) |
| Add a widget directly to this widget. | |
| template<typename T , typename... Args> | |
| T & | makeWidget (Args &&... args) |
| Add a widget directly to this widget. | |
| template<typename T , typename... Args> | |
| T & | makeAlignedWidgetDirectly (Alignment alignement, Args &&... args) |
| Add a widget directly to this widget. | |
| template<typename T , typename... Args> | |
| T & | makeAlignedWidget (Alignment alignment, Args &&... args) |
| Add a widget directly to this widget. | |
| aarect | makeWindowRectangle () const noexcept |
| Create a window rectangle from left, bottom, width and height Thread-safety: locks window.widgetSolverMutex. | |
| void | setMinimumExtent (vec newMinimumExtent) noexcept |
| void | setMinimumExtent (float width, float height) noexcept |
| void | setPreferredExtent (vec newPreferredExtent) noexcept |
| void | setFixedExtent (vec newFixedExtent) noexcept |
| void | setFixedHeight (float height) noexcept |
| void | setFixedWidth (float width) noexcept |
| rhea::constraint | placeBelow (Widget const &rhs, float margin=theme->margin) const noexcept |
| rhea::constraint | placeAbove (Widget const &rhs, float margin=theme->margin) const noexcept |
| rhea::constraint | placeLeftOf (Widget const &rhs, float margin=theme->margin) const noexcept |
| rhea::constraint | placeRightOf (Widget const &rhs, float margin=theme->margin) const noexcept |
| rhea::constraint | placeAtTop (float margin=theme->margin) const noexcept |
| rhea::constraint | placeAtBottom (float margin=theme->margin) const noexcept |
| rhea::constraint | placeLeft (float margin=theme->margin) const noexcept |
| rhea::constraint | placeRight (float margin=theme->margin) const noexcept |
| vec | extent () const noexcept |
| void | setExtent (vec rhs) noexcept |
| vec | offsetFromParent () const noexcept |
| void | setOffsetFromParent (vec rhs) noexcept |
| vec | offsetFromWindow () const noexcept |
| void | setOffsetFromWindow (vec rhs) noexcept |
| aarect | rectangle () const noexcept |
| Get the rectangle in local coordinates. | |
| aarect | windowRectangle () const noexcept |
| Get the rectangle in window coordinates. | |
| aarect | clippingRectangle () const noexcept |
| Get the clipping-rectangle in window coordinates. | |
| GUIDevice * | device () const noexcept |
| ssize_t | nestingLevel () noexcept |
| Get nesting level used for selecting colors for the widget. | |
| float | z () noexcept |
| Get z value for compositing order. | |
| virtual int | needs (hires_utc_clock::time_point displayTimePoint) noexcept |
| Request the needs of the widget. | |
| int | layoutChildren (hires_utc_clock::time_point displayTimePoint, bool force) noexcept |
| Layout children of this widget. | |
| std::vector< Widget * > | childPointers (bool reverse) const noexcept |
| virtual Widget * | nextKeyboardWidget (Widget const *currentKeyboardWidget, bool reverse) const noexcept |
| virtual void | handleKeyboardEvent (KeyboardEvent const &event) noexcept |
Data Fields | |
| observable< ValueType > | value |
| observable< std::string > | label |
Data Fields inherited from tt::Widget | |
| rhea::variable const | left |
| Location of the frame compared to the window. | |
| rhea::variable const | bottom |
| rhea::variable const | width |
| rhea::variable const | height |
| rhea::linear_expression const | right = left + width |
| rhea::linear_expression const | centre = left + width * 0.5 |
| rhea::linear_expression const | top = bottom + height |
| rhea::linear_expression const | middle = bottom + height * 0.5 |
| float | elevation |
| std::atomic< R32G32SFloat > | _extent |
| std::atomic< R32G32SFloat > | _offsetFromParent |
| std::atomic< R32G32SFloat > | _offsetFromWindow |
| std::atomic< bool > | forceLayout = true |
| std::atomic< bool > | forceRedraw = true |
| observable< bool > | enabled = true |
| The widget is enabled. | |
|
inlineoverridevirtualnoexcept |
Check if the widget will accept keyboard focus.
Thread safety: reads atomics.
Reimplemented from tt::Widget.
|
inlineoverridevirtualnoexcept |
Draw widget.
The overriding function should call the base class's draw(), the place where the call this function will determine the order of the vertices into each buffer. This is important when needing to do the painters algorithm for alpha-compositing. However the pipelines are always drawn in the same order.
Thread safety: locks, must be called from render-thread
Reimplemented from tt::Widget.
|
inlineoverridevirtualnoexcept |
|
inlineoverridevirtualnoexcept |
Handle mouse event. Called by the operating system to show the position and button state of the mouse. This is called very often so it must be made efficient. This function is also used to determine the mouse cursor.
Thread safety: locks
Reimplemented from tt::Widget.
|
inlineoverridevirtualnoexcept |
Find the widget that is under the mouse cursor.
Thread safety: locks.
Reimplemented from tt::Widget.
|
inlineoverridevirtualnoexcept |
Layout the widget.
super::layout() should be called at start of the overriden function.
Thread safety: locks, must be called from render-thread
Reimplemented from tt::Widget.