ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
cloudViewer::visualization::gui::Widget Class Reference

#include <Widget.h>

Inheritance diagram for cloudViewer::visualization::gui::Widget:

Classes

struct  Constraints
 
struct  Impl
 

Public Types

enum class  DrawResult { NONE , REDRAW , RELAYOUT }
 
enum class  EventResult { IGNORED , CONSUMED , DISCARD }
 

Public Member Functions

 Widget ()
 
 Widget (const std::vector< std::shared_ptr< Widget >> &children)
 
virtual ~Widget ()
 
virtual void AddChild (std::shared_ptr< Widget > child)
 
virtual const std::vector< std::shared_ptr< Widget > > GetChildren () const
 
virtual const RectGetFrame () const
 Returns the frame size in pixels. More...
 
virtual void SetFrame (const Rect &f)
 
virtual const ColorGetBackgroundColor () const
 
virtual bool IsDefaultBackgroundColor () const
 
virtual void SetBackgroundColor (const Color &color)
 
virtual bool IsVisible () const
 
virtual void SetVisible (bool vis)
 
virtual bool IsEnabled () const
 
virtual void SetEnabled (bool enabled)
 
virtual void SetTooltip (const char *text)
 
virtual const char * GetTooltip () const
 
virtual Size CalcPreferredSize (const LayoutContext &context, const Constraints &constraints) const
 
virtual Size CalcMinimumSize (const LayoutContext &context) const
 
virtual void Layout (const LayoutContext &context)
 
virtual DrawResult Draw (const DrawContext &context)
 
virtual EventResult Mouse (const MouseEvent &e)
 
virtual EventResult Key (const KeyEvent &e)
 
virtual DrawResult Tick (const TickEvent &e)
 

Static Public Attributes

static constexpr int DIM_GROW = 10000
 

Protected Member Functions

void DrawImGuiPushEnabledState ()
 
void DrawImGuiPopEnabledState ()
 
void DrawImGuiTooltip ()
 

Detailed Description

Definition at line 49 of file Widget.h.

Member Enumeration Documentation

◆ DrawResult

Enumerator
NONE 
REDRAW 
RELAYOUT 

Definition at line 95 of file Widget.h.

◆ EventResult

Enumerator
IGNORED 
CONSUMED 
DISCARD 

Definition at line 103 of file Widget.h.

Constructor & Destructor Documentation

◆ Widget() [1/2]

cloudViewer::visualization::gui::Widget::Widget ( )

Definition at line 34 of file Widget.cpp.

◆ Widget() [2/2]

cloudViewer::visualization::gui::Widget::Widget ( const std::vector< std::shared_ptr< Widget >> &  children)
explicit

Definition at line 36 of file Widget.cpp.

◆ ~Widget()

cloudViewer::visualization::gui::Widget::~Widget ( )
virtual

Definition at line 41 of file Widget.cpp.

Member Function Documentation

◆ AddChild()

◆ CalcMinimumSize()

◆ CalcPreferredSize()

Size cloudViewer::visualization::gui::Widget::CalcPreferredSize ( const LayoutContext context,
const Constraints constraints 
) const
virtual

Reimplemented in cloudViewer::visualization::gui::Slider, cloudViewer::visualization::gui::WidgetProxy, cloudViewer::visualization::gui::VectorEdit, cloudViewer::visualization::gui::TreeView, cloudViewer::visualization::gui::ColormapTreeCell, cloudViewer::visualization::gui::LUTTreeCell, cloudViewer::visualization::gui::CheckableTextTreeCell, cloudViewer::visualization::gui::ToggleSwitch, cloudViewer::visualization::gui::TextEdit, cloudViewer::visualization::gui::TabControl, cloudViewer::visualization::gui::StackedWidget, cloudViewer::visualization::gui::RadioButton, cloudViewer::visualization::gui::ProgressBar, cloudViewer::visualization::gui::NumberEdit, cloudViewer::visualization::gui::ListView, cloudViewer::visualization::gui::VGrid, cloudViewer::visualization::gui::CollapsableVert, cloudViewer::visualization::gui::Layout1D::Fixed, cloudViewer::visualization::gui::Layout1D, cloudViewer::visualization::gui::Label, cloudViewer::visualization::gui::ImageWidget, cloudViewer::visualization::gui::FileDialog, cloudViewer::visualization::gui::Dialog, cloudViewer::visualization::gui::Combobox, cloudViewer::visualization::gui::ColorEdit, cloudViewer::visualization::gui::Checkbox, cloudViewer::visualization::gui::Button, and cloudViewer::visualization::SmallButton.

Definition at line 77 of file Widget.cpp.

References DIM_GROW.

Referenced by cloudViewer::visualization::gui::Dialog::CalcPreferredSize(), cloudViewer::visualization::gui::WidgetProxy::CalcPreferredSize(), and cloudViewer::visualization::gui::pybind_gui_classes().

◆ Draw()

Widget::DrawResult cloudViewer::visualization::gui::Widget::Draw ( const DrawContext context)
virtual

Draws the widget. If this is a Dear ImGUI widget, this is where the actual event processing happens. Return NONE if no action needs to be taken, REDRAW if the widget needs to be redrawn (e.g. its value changed), and RELAYOUT if the widget wishes to change size.

Reimplemented in cloudViewer::visualization::gui::WidgetProxy, cloudViewer::visualization::gui::VectorEdit, cloudViewer::visualization::gui::TreeView, cloudViewer::visualization::gui::ToggleSwitch, cloudViewer::visualization::gui::TextEdit, cloudViewer::visualization::gui::TabControl, cloudViewer::visualization::gui::StackedWidget, cloudViewer::visualization::gui::Slider, cloudViewer::visualization::gui::SceneWidget, cloudViewer::visualization::gui::RadioButton, cloudViewer::visualization::gui::ProgressBar, cloudViewer::visualization::gui::NumberEdit, cloudViewer::visualization::gui::ListView, cloudViewer::visualization::gui::ScrollableVert, cloudViewer::visualization::gui::CollapsableVert, cloudViewer::visualization::gui::Label, cloudViewer::visualization::gui::ImageWidget, cloudViewer::visualization::gui::Dialog, cloudViewer::visualization::gui::Combobox, cloudViewer::visualization::gui::ColorEdit, cloudViewer::visualization::gui::Checkbox, and cloudViewer::visualization::gui::Button.

Definition at line 92 of file Widget.cpp.

References context, NONE, and result.

Referenced by cloudViewer::visualization::gui::Dialog::Draw(), cloudViewer::visualization::gui::CollapsableVert::Draw(), and cloudViewer::visualization::gui::ScrollableVert::Draw().

◆ DrawImGuiPopEnabledState()

◆ DrawImGuiPushEnabledState()

◆ DrawImGuiTooltip()

◆ GetBackgroundColor()

const Color & cloudViewer::visualization::gui::Widget::GetBackgroundColor ( ) const
virtual

◆ GetChildren()

◆ GetFrame()

const Rect & cloudViewer::visualization::gui::Widget::GetFrame ( ) const
virtual

Returns the frame size in pixels.

Reimplemented in cloudViewer::visualization::gui::WidgetProxy.

Definition at line 51 of file Widget.cpp.

Referenced by cloudViewer::visualization::gui::Button::Draw(), cloudViewer::visualization::gui::Checkbox::Draw(), cloudViewer::visualization::gui::ColorEdit::Draw(), cloudViewer::visualization::gui::Combobox::Draw(), cloudViewer::visualization::gui::ImageWidget::Draw(), cloudViewer::visualization::gui::Label::Draw(), cloudViewer::visualization::gui::CollapsableVert::Draw(), cloudViewer::visualization::gui::ScrollableVert::Draw(), cloudViewer::visualization::gui::ListView::Draw(), cloudViewer::visualization::gui::NumberEdit::Draw(), cloudViewer::visualization::gui::ProgressBar::Draw(), cloudViewer::visualization::gui::RadioButton::Draw(), cloudViewer::visualization::gui::SceneWidget::Draw(), cloudViewer::visualization::gui::Slider::Draw(), cloudViewer::visualization::gui::TabControl::Draw(), cloudViewer::visualization::gui::TextEdit::Draw(), cloudViewer::visualization::gui::ToggleSwitch::Draw(), cloudViewer::visualization::gui::TreeView::Draw(), cloudViewer::visualization::gui::VectorEdit::Draw(), cloudViewer::visualization::gui::WidgetProxy::GetFrame(), cloudViewer::visualization::gui::Dialog::Layout(), cloudViewer::visualization::gui::Layout1D::Layout(), cloudViewer::visualization::gui::VGrid::Layout(), cloudViewer::visualization::gui::StackedWidget::Layout(), cloudViewer::visualization::gui::TabControl::Layout(), cloudViewer::visualization::gui::CheckableTextTreeCell::Layout(), cloudViewer::visualization::gui::LUTTreeCell::Layout(), cloudViewer::visualization::gui::ColormapTreeCell::Layout(), cloudViewer::visualization::gui::SceneWidget::LookAt(), cloudViewer::visualization::gui::SceneWidget::Mouse(), cloudViewer::visualization::gui::pybind_gui_classes(), cloudViewer::visualization::gui::SceneWidget::SetFrame(), and cloudViewer::visualization::gui::SceneWidget::SetupCamera().

◆ GetTooltip()

const char * cloudViewer::visualization::gui::Widget::GetTooltip ( ) const
virtual

◆ IsDefaultBackgroundColor()

bool cloudViewer::visualization::gui::Widget::IsDefaultBackgroundColor ( ) const
virtual

◆ IsEnabled()

◆ IsVisible()

bool cloudViewer::visualization::gui::Widget::IsVisible ( ) const
virtual

◆ Key()

Widget::EventResult cloudViewer::visualization::gui::Widget::Key ( const KeyEvent e)
virtual

Widgets that use Dear ImGUI should not need to override this, as Dear ImGUI will take care of all the key handling during the Draw().

Reimplemented in cloudViewer::visualization::gui::PySceneWidget, cloudViewer::visualization::gui::PyImageWidget, cloudViewer::visualization::gui::WidgetProxy, and cloudViewer::visualization::gui::SceneWidget.

Definition at line 185 of file Widget.cpp.

References DISCARD.

Referenced by cloudViewer::visualization::gui::PyImageWidget::Key().

◆ Layout()

◆ Mouse()

Widget::EventResult cloudViewer::visualization::gui::Widget::Mouse ( const MouseEvent e)
virtual

◆ SetBackgroundColor()

void cloudViewer::visualization::gui::Widget::SetBackgroundColor ( const Color color)
virtual

◆ SetEnabled()

void cloudViewer::visualization::gui::Widget::SetEnabled ( bool  enabled)
virtual

◆ SetFrame()

void cloudViewer::visualization::gui::Widget::SetFrame ( const Rect f)
virtual

The frame is in pixels. The size of a pixel varies on different and operating systems now frequently scale text sizes on high DPI monitors. Prefer using a Layout to using this function, but if you must use it, it is best to use a multiple of Window::GetTheme().fontSize, which represents 1em and is scaled according to the scaling factor of the window.

Reimplemented in cloudViewer::visualization::gui::WidgetProxy, and cloudViewer::visualization::gui::SceneWidget.

Definition at line 53 of file Widget.cpp.

Referenced by cloudViewer::visualization::gui::pybind_gui_classes(), cloudViewer::visualization::gui::SceneWidget::SetFrame(), and cloudViewer::visualization::gui::WidgetProxy::SetFrame().

◆ SetTooltip()

void cloudViewer::visualization::gui::Widget::SetTooltip ( const char *  text)
virtual

◆ SetVisible()

void cloudViewer::visualization::gui::Widget::SetVisible ( bool  vis)
virtual

◆ Tick()

Widget::DrawResult cloudViewer::visualization::gui::Widget::Tick ( const TickEvent e)
virtual

Tick events are sent regularly and allow for things like smoothly moving the camera based on keys that are pressed, or animations. Return DrawResult::REDRAW if you want to be redrawn.

Reimplemented in cloudViewer::visualization::gui::WidgetProxy, and cloudViewer::visualization::gui::SceneWidget.

Definition at line 189 of file Widget.cpp.

References NONE, REDRAW, and result.

Member Data Documentation

◆ DIM_GROW


The documentation for this class was generated from the following files: