![]() |
ACloudViewer
3.9.4
A Modern Library for 3D Data Processing
|
#include <Widget.h>

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 Rect & | GetFrame () const |
| Returns the frame size in pixels. More... | |
| virtual void | SetFrame (const Rect &f) |
| virtual const Color & | GetBackgroundColor () 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 () |
| cloudViewer::visualization::gui::Widget::Widget | ( | ) |
Definition at line 34 of file Widget.cpp.
|
explicit |
Definition at line 36 of file Widget.cpp.
|
virtual |
Definition at line 41 of file Widget.cpp.
|
virtual |
Reimplemented in cloudViewer::visualization::gui::WidgetProxy.
Definition at line 43 of file Widget.cpp.
Referenced by cloudViewer::visualization::gui::Layout1D::AddFixed(), cloudViewer::visualization::gui::Layout1D::AddStretch(), cloudViewer::visualization::gui::TabControl::AddTab(), cloudViewer::visualization::gui::CheckableTextTreeCell::CheckableTextTreeCell(), cloudViewer::visualization::gui::ColormapTreeCell::ColormapTreeCell(), cloudViewer::visualization::gui::FileDialog::FileDialog(), cloudViewer::visualization::GuiSettingsView::GuiSettingsView(), and cloudViewer::visualization::gui::LUTTreeCell::LUTTreeCell().
|
virtual |
Reimplemented in cloudViewer::visualization::gui::WidgetProxy, cloudViewer::visualization::gui::TreeView, and cloudViewer::visualization::gui::ListView.
Definition at line 82 of file Widget.cpp.
Referenced by cloudViewer::visualization::gui::WidgetProxy::CalcMinimumSize(), and cloudViewer::visualization::gui::Layout1D::Layout().
|
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().
|
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().
|
protected |
Definition at line 126 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::ListView::Draw(), cloudViewer::visualization::gui::NumberEdit::Draw(), cloudViewer::visualization::gui::RadioButton::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(), and cloudViewer::visualization::gui::VectorEdit::Draw().
|
protected |
Definition at line 111 of file Widget.cpp.
References IsEnabled().
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::ListView::Draw(), cloudViewer::visualization::gui::NumberEdit::Draw(), cloudViewer::visualization::gui::RadioButton::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(), and cloudViewer::visualization::gui::VectorEdit::Draw().
|
protected |
Definition at line 133 of file Widget.cpp.
References IsEnabled().
Referenced by cloudViewer::visualization::gui::Button::Draw(), cloudViewer::visualization::gui::Checkbox::Draw(), cloudViewer::visualization::gui::ColorEdit::Draw(), cloudViewer::visualization::gui::ImageWidget::Draw(), cloudViewer::visualization::gui::Label::Draw(), cloudViewer::visualization::gui::NumberEdit::Draw(), cloudViewer::visualization::gui::Slider::Draw(), cloudViewer::visualization::gui::TextEdit::Draw(), cloudViewer::visualization::gui::ToggleSwitch::Draw(), and cloudViewer::visualization::gui::VectorEdit::Draw().
|
virtual |
Reimplemented in cloudViewer::visualization::gui::WidgetProxy.
Definition at line 55 of file Widget.cpp.
Referenced by cloudViewer::visualization::gui::WidgetProxy::GetBackgroundColor(), and cloudViewer::visualization::gui::pybind_gui_classes().
|
virtual |
Reimplemented in cloudViewer::visualization::gui::WidgetProxy.
Definition at line 47 of file Widget.cpp.
Referenced by cloudViewer::visualization::gui::Dialog::CalcPreferredSize(), cloudViewer::visualization::gui::Layout1D::CalcPreferredSize(), cloudViewer::visualization::gui::VGrid::CalcPreferredSize(), cloudViewer::visualization::gui::StackedWidget::CalcPreferredSize(), cloudViewer::visualization::gui::TabControl::CalcPreferredSize(), cloudViewer::visualization::gui::Layout1D::debug_PrintPreferredSizes(), cloudViewer::visualization::gui::StackedWidget::Draw(), cloudViewer::visualization::gui::TabControl::Draw(), cloudViewer::visualization::gui::WidgetProxy::GetChildren(), 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(), and cloudViewer::visualization::gui::pybind_gui_classes().
|
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().
|
virtual |
Reimplemented in cloudViewer::visualization::gui::WidgetProxy.
Definition at line 75 of file Widget.cpp.
Referenced by cloudViewer::visualization::gui::WidgetProxy::GetTooltip(), and cloudViewer::visualization::gui::pybind_gui_classes().
|
virtual |
Reimplemented in cloudViewer::visualization::gui::WidgetProxy.
Definition at line 57 of file Widget.cpp.
References cloudViewer::visualization::gui::DEFAULT_BGCOLOR.
Referenced by cloudViewer::visualization::gui::WidgetProxy::IsDefaultBackgroundColor().
|
virtual |
Reimplemented in cloudViewer::visualization::gui::WidgetProxy.
Definition at line 69 of file Widget.cpp.
Referenced by cloudViewer::visualization::gui::TextEdit::Draw(), DrawImGuiPushEnabledState(), DrawImGuiTooltip(), cloudViewer::visualization::gui::WidgetProxy::IsEnabled(), and cloudViewer::visualization::gui::pybind_gui_classes().
|
virtual |
Reimplemented in cloudViewer::visualization::gui::WidgetProxy.
Definition at line 65 of file Widget.cpp.
Referenced by cloudViewer::visualization::gui::WidgetProxy::IsVisible(), and cloudViewer::visualization::gui::pybind_gui_classes().
|
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().
|
virtual |
Reimplemented in cloudViewer::visualization::gui::WidgetProxy, cloudViewer::visualization::gui::TreeView, cloudViewer::visualization::gui::ColormapTreeCell, cloudViewer::visualization::gui::LUTTreeCell, cloudViewer::visualization::gui::CheckableTextTreeCell, cloudViewer::visualization::gui::TabControl, cloudViewer::visualization::gui::StackedWidget, cloudViewer::visualization::gui::VGrid, cloudViewer::visualization::gui::CollapsableVert, cloudViewer::visualization::gui::Layout1D, cloudViewer::visualization::gui::ImageWidget, and cloudViewer::visualization::gui::Dialog.
Definition at line 86 of file Widget.cpp.
References context.
Referenced by cloudViewer::visualization::gui::Dialog::Layout(), cloudViewer::visualization::gui::ImageWidget::Layout(), cloudViewer::visualization::gui::Layout1D::Layout(), cloudViewer::visualization::gui::VGrid::Layout(), cloudViewer::visualization::gui::StackedWidget::Layout(), and cloudViewer::visualization::gui::TabControl::Layout().
|
virtual |
Widgets that use Dear ImGUI should not need to override this, as Dear ImGUI will take care of all the mouse 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 161 of file Widget.cpp.
References DISCARD, IGNORED, result, cloudViewer::visualization::gui::MouseEvent::x, and cloudViewer::visualization::gui::MouseEvent::y.
Referenced by cloudViewer::visualization::gui::PyImageWidget::Mouse().
|
virtual |
Reimplemented in cloudViewer::visualization::gui::WidgetProxy.
Definition at line 61 of file Widget.cpp.
References color.
Referenced by cloudViewer::visualization::gui::pybind_gui_classes(), and cloudViewer::visualization::gui::WidgetProxy::SetBackgroundColor().
|
virtual |
Reimplemented in cloudViewer::visualization::gui::WidgetProxy.
Definition at line 71 of file Widget.cpp.
Referenced by cloudViewer::visualization::gui::pybind_gui_classes().
|
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().
|
virtual |
Reimplemented in cloudViewer::visualization::gui::WidgetProxy.
Definition at line 73 of file Widget.cpp.
Referenced by cloudViewer::visualization::gui::pybind_gui_classes(), and cloudViewer::visualization::gui::WidgetProxy::SetTooltip().
|
virtual |
Reimplemented in cloudViewer::visualization::gui::WidgetProxy.
Definition at line 67 of file Widget.cpp.
Referenced by cloudViewer::visualization::gui::pybind_gui_classes().
|
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.
|
staticconstexpr |
Definition at line 83 of file Widget.h.
Referenced by CalcPreferredSize(), cloudViewer::visualization::gui::ColorEdit::CalcPreferredSize(), cloudViewer::visualization::gui::Layout1D::CalcPreferredSize(), cloudViewer::visualization::gui::VGrid::CalcPreferredSize(), cloudViewer::visualization::gui::ListView::CalcPreferredSize(), cloudViewer::visualization::gui::TreeView::CalcPreferredSize(), cloudViewer::visualization::gui::VectorEdit::CalcPreferredSize(), cloudViewer::visualization::gui::Slider::CalcPreferredSize(), and cloudViewer::visualization::gui::Layout1D::Layout().