graphical UI element for use in combination with Layout
More...
#include <element.h>
|
enum class | UIState { Normal
, Pressed
, Checked
} |
|
|
virtual std::string | getClassIdentifier () const =0 |
|
| Element (const std::string &label, Processor &processor, Renderer &uiRenderer, UIOrientation orientation=UIOrientation::Horizontal) |
|
void | setVisible (bool visible=true) |
|
bool | isVisible () const |
|
void | setEnabled (bool enable=true) |
|
bool | isEnabled () const |
|
void | setLabel (const std::string &str) |
|
const std::string & | getLabel () const |
|
void | setFontSize (int size) |
|
int | getFontSize () const |
|
void | setLabelBold (bool bold) |
|
bool | isLabelBold () const |
|
void | setLabelVisible (bool visible=true) |
|
bool | isLabelVisible () const |
|
void | setScalingFactor (double factor) |
|
double | getScalingFactor () const |
|
void | setOrientation (UIOrientation orientation) |
|
UIOrientation | getOrientation () const |
|
bool | isDirty () const |
|
void | setWidgetExtent (const ivec2 &extent) |
| sets the extent of the widget
|
|
const ivec2 & | getWidgetExtent () const |
|
void | setWidgetExtentScaled (const ivec2 &extent) |
| sets the extent of the widget
|
|
ivec2 | getWidgetExtentScaled () const |
| returns the true widget extent including scaling
|
|
const ivec2 & | getExtent () |
| return extent of the element, including both widget and label, and considering scaling
|
|
void | render (const ivec2 &origin, const size2_t &canvasDim) |
| render the widget and its label at the given position
|
|
void | setHoverState (bool enable) |
|
bool | isHovered () const |
|
void | setPushedState (bool pushed) |
|
bool | isPushed () const |
|
void | setChecked (bool checked) |
|
bool | isChecked () const |
|
void | setAction (const std::function< void()> &action) |
| sets the callback action when the user releases the mouse button
|
|
void | setPickingEventAction (std::function< void(PickingEvent *e)> pickingAction) |
|
|
void | triggerAction () |
| updates the UI state and triggers the callback action set by setAction(). This function is called when the user releases the mouse button.
|
|
void | setMouseMoveAction (const std::function< bool(const dvec2 &)> &action) |
| set callback function for handling mouse movements based on a delta position. This callback gets called on mouse move events.
|
|
bool | moveAction (const dvec2 &delta) |
| gets called on mouse move events
|
|
void | updateExtent () |
|
void | updateLabelPos () |
|
void | updateLabel () |
|
virtual ivec2 | computeLabelPos (int descent) const =0 |
|
virtual UIState | uiState () const |
|
virtual vec2 | marginScale () const |
|
virtual void | updateState () |
| is called before the action is triggered to update the internal UI state
|
|
virtual void | pushStateChanged () |
| It is called by setPushState after the internal push state has been updated.
|
|
virtual void | renderWidget (const ivec2 &origin, const size2_t &canvasDim)=0 |
|
void | renderLabel (const ivec2 &origin, const size2_t &canvasDim) |
|
void | handlePickingEvent (PickingEvent *e) |
|
TextRenderer & | getCurrentTextRenderer () const |
| set up text renderer for rendering the label using current settings, i.e. font size, widget scaling, and whether it should be rendered bold
|
|
|
static vec4 | adjustColor (const vec4 &color) |
|
|
std::function< void()> | action_ |
|
std::function< bool(const dvec2 &)> | moveAction_ |
| is called by mouseMoved()
|
|
std::function< void(PickingEvent *e)> | pickingAction_ |
|
bool | hovered_ |
|
bool | pushed_ |
|
bool | checked_ |
|
bool | visible_ |
|
bool | enabled_ |
|
bool | boldLabel_ |
|
bool | labelVisible_ |
|
int | labelFontSize_ |
|
UIOrientation | orientation_ |
|
ivec2 | extent_ = ivec2(0) |
|
ivec2 | widgetPos_ = ivec2(0) |
|
ivec2 | widgetExtent_ = ivec2(0) |
|
ivec2 | labelPos_ = ivec2(0) |
|
ivec2 | labelExtent_ = ivec2(0) |
|
double | scalingFactor_ |
|
std::string | labelStr_ |
|
bool | labelDirty_ |
|
std::shared_ptr< Texture2D > | labelTexture_ |
|
Processor * | processor_ |
|
Renderer * | uiRenderer_ |
|
PickingMapper | pickingMapper_ |
|
size_t | currentPickingID_ |
|
graphical UI element for use in combination with Layout
Layout of a UI element: extent +-------------------------------------------------—+ | | | widgetExtent | | +-------—+ labelExtent | | | rendered | +--------------—+ | | | textures | | label | | | | + | +--------------—+ | | | picking | labelPos | | +-------—+ | | widgetPos | | | +-------------------------------------------------—+ (0,0)
- See also
- Layout, Renderer
◆ getCurrentTextRenderer()
TextRenderer & inviwo::glui::Element::getCurrentTextRenderer |
( |
| ) |
const |
|
protected |
set up text renderer for rendering the label using current settings, i.e. font size, widget scaling, and whether it should be rendered bold
- Returns
- reference to the set-up text renderer
◆ getExtent()
const ivec2 & inviwo::glui::Element::getExtent |
( |
| ) |
|
return extent of the element, including both widget and label, and considering scaling
- Returns
- total element extent
◆ getWidgetExtentScaled()
ivec2 inviwo::glui::Element::getWidgetExtentScaled |
( |
| ) |
const |
returns the true widget extent including scaling
- Returns
- widget extent
◆ moveAction()
bool inviwo::glui::Element::moveAction |
( |
const dvec2 & | delta | ) |
|
|
protected |
gets called on mouse move events
- Parameters
-
delta | delta mouse position in screen coord, i.e. pixels, relative to pressed position |
- Returns
- true if the movement triggers an update of the element
◆ render()
void inviwo::glui::Element::render |
( |
const ivec2 & | origin, |
|
|
const size2_t & | canvasDim ) |
render the widget and its label at the given position
- Parameters
-
origin | defines the lower left corner where the widget is positioned |
canvasDim | dimensions of the output canvas |
◆ setMouseMoveAction()
void inviwo::glui::Element::setMouseMoveAction |
( |
const std::function< bool(const dvec2 &)> & | action | ) |
|
|
protected |
set callback function for handling mouse movements based on a delta position. This callback gets called on mouse move events.
- Parameters
-
action | function taking one argument (2D delta position in screen coords) returning true if the movement triggers an update of the element |
◆ setPickingEventAction()
void inviwo::glui::Element::setPickingEventAction |
( |
std::function< void(PickingEvent *e)> | pickingAction | ) |
|
Sets a callback function for picking events to enable custom behaviors This function is called (if set) in the picking event handling after the internal event handling is done.
◆ setWidgetExtent()
void inviwo::glui::Element::setWidgetExtent |
( |
const ivec2 & | extent | ) |
|
sets the extent of the widget
- Parameters
-
extent | new extent of the widget |
◆ setWidgetExtentScaled()
void inviwo::glui::Element::setWidgetExtentScaled |
( |
const ivec2 & | extent | ) |
|
sets the extent of the widget
- Parameters
-
extent | new extent of the widget (including scaling) |
◆ triggerAction()
void inviwo::glui::Element::triggerAction |
( |
| ) |
|
|
protected |
updates the UI state and triggers the callback action set by setAction(). This function is called when the user releases the mouse button.
- See also
- setAction
◆ updateState()
virtual void inviwo::glui::Element::updateState |
( |
| ) |
|
|
inlineprotectedvirtual |
The documentation for this class was generated from the following file: