|
HikoGUI
A low latency retained GUI
|
Public Member Functions | |
| LineInputWidget (Window &window, Widget *parent, std::string const label) noexcept | |
| LineInputWidget (const LineInputWidget &)=delete | |
| LineInputWidget & | operator= (const LineInputWidget &)=delete |
| LineInputWidget (LineInputWidget &&)=delete | |
| LineInputWidget & | operator= (LineInputWidget &&)=delete |
| int | needs (hires_utc_clock::time_point displayTimePoint) noexcept override |
| Request the needs of the widget. | |
| 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 | handleCommand (string_ltag command) noexcept override |
| Handle command. | |
| void | handleMouseEvent (MouseEvent const &event) noexcept override |
| void | handleKeyboardEvent (KeyboardEvent const &event) noexcept override |
| 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. | |
| 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 |
Additional Inherited Members | |
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.
|
overridevirtualnoexcept |
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.
|
overridevirtualnoexcept |
|
overridevirtualnoexcept |
Handle keyboard event. Called by the operating system when editing text, or entering special keys
Thread safety: locks
Reimplemented from tt::Widget.
|
overridevirtualnoexcept |
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.
Find the widget that is under the mouse cursor.
Thread safety: locks.
Reimplemented from tt::Widget.
|
overridevirtualnoexcept |
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.
|
overridevirtualnoexcept |
Request the needs of the widget.
This function will be called for each widget on each frame. Therefor it is important to optimize this function.
Thread safety: reads atomics, must be called from render-thread.
Reimplemented from tt::Widget.