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

#include <Button.h>

Inheritance diagram for cloudViewer::visualization::gui::Button:
Collaboration diagram for cloudViewer::visualization::gui::Button:

Classes

struct  Impl
 

Public Member Functions

 Button (const char *title)
 
 Button (std::shared_ptr< UIImage > image)
 
 ~Button ()
 
const char * GetText () const
 
void SetText (const char *text)
 Sets the text of the button. Do not call if this is an image button. More...
 
float GetHorizontalPaddingEm () const
 Returns the padding, in units of ems. More...
 
float GetVerticalPaddingEm () const
 
void SetPaddingEm (float horiz_ems, float vert_ems)
 
bool GetIsToggleable () const
 
void SetToggleable (bool toggles)
 
bool GetIsOn () const
 
void SetOn (bool is_on)
 
Size CalcPreferredSize (const LayoutContext &context, const Constraints &constraints) const override
 
DrawResult Draw (const DrawContext &context) override
 
void SetOnClicked (std::function< void()> on_clicked)
 
- Public Member Functions inherited from cloudViewer::visualization::gui::Widget
 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 CalcMinimumSize (const LayoutContext &context) const
 
virtual void Layout (const LayoutContext &context)
 
virtual EventResult Mouse (const MouseEvent &e)
 
virtual EventResult Key (const KeyEvent &e)
 
virtual DrawResult Tick (const TickEvent &e)
 

Additional Inherited Members

- Public Types inherited from cloudViewer::visualization::gui::Widget
enum class  DrawResult { NONE , REDRAW , RELAYOUT }
 
enum class  EventResult { IGNORED , CONSUMED , DISCARD }
 
- Static Public Attributes inherited from cloudViewer::visualization::gui::Widget
static constexpr int DIM_GROW = 10000
 
- Protected Member Functions inherited from cloudViewer::visualization::gui::Widget
void DrawImGuiPushEnabledState ()
 
void DrawImGuiPopEnabledState ()
 
void DrawImGuiTooltip ()
 

Detailed Description

Definition at line 19 of file Button.h.

Constructor & Destructor Documentation

◆ Button() [1/2]

cloudViewer::visualization::gui::Button::Button ( const char *  title)
explicit

Definition at line 37 of file Button.cpp.

References patch::to_string().

◆ Button() [2/2]

cloudViewer::visualization::gui::Button::Button ( std::shared_ptr< UIImage image)
explicit

Definition at line 42 of file Button.cpp.

References image.

◆ ~Button()

cloudViewer::visualization::gui::Button::~Button ( )

Definition at line 46 of file Button.cpp.

Member Function Documentation

◆ CalcPreferredSize()

Size cloudViewer::visualization::gui::Button::CalcPreferredSize ( const LayoutContext context,
const Constraints constraints 
) const
overridevirtual

◆ Draw()

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

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 from cloudViewer::visualization::gui::Widget.

Definition at line 115 of file Button.cpp.

References cloudViewer::visualization::gui::colorToImgui(), context, cloudViewer::visualization::gui::Widget::DrawImGuiPopEnabledState(), cloudViewer::visualization::gui::Widget::DrawImGuiPushEnabledState(), cloudViewer::visualization::gui::Widget::DrawImGuiTooltip(), frame, cloudViewer::visualization::gui::Widget::GetFrame(), height, cloudViewer::visualization::gui::Widget::NONE, params, cloudViewer::visualization::gui::Widget::REDRAW, result, and width.

◆ GetHorizontalPaddingEm()

float cloudViewer::visualization::gui::Button::GetHorizontalPaddingEm ( ) const

Returns the padding, in units of ems.

Definition at line 52 of file Button.cpp.

Referenced by cloudViewer::visualization::gui::pybind_gui_classes().

◆ GetIsOn()

bool cloudViewer::visualization::gui::Button::GetIsOn ( ) const

Definition at line 69 of file Button.cpp.

Referenced by cloudViewer::visualization::gui::pybind_gui_classes().

◆ GetIsToggleable()

bool cloudViewer::visualization::gui::Button::GetIsToggleable ( ) const

Definition at line 65 of file Button.cpp.

Referenced by cloudViewer::visualization::gui::pybind_gui_classes().

◆ GetText()

const char * cloudViewer::visualization::gui::Button::GetText ( ) const

Returns the text of the button. If the button is an image, will return "".

Definition at line 48 of file Button.cpp.

Referenced by cloudViewer::visualization::gui::pybind_gui_classes().

◆ GetVerticalPaddingEm()

float cloudViewer::visualization::gui::Button::GetVerticalPaddingEm ( ) const

Definition at line 56 of file Button.cpp.

Referenced by cloudViewer::visualization::gui::pybind_gui_classes().

◆ SetOn()

void cloudViewer::visualization::gui::Button::SetOn ( bool  is_on)

Definition at line 71 of file Button.cpp.

Referenced by cloudViewer::visualization::gui::pybind_gui_classes().

◆ SetOnClicked()

void cloudViewer::visualization::gui::Button::SetOnClicked ( std::function< void()>  on_clicked)

◆ SetPaddingEm()

void cloudViewer::visualization::gui::Button::SetPaddingEm ( float  horiz_ems,
float  vert_ems 
)

Sets the padding, in units of ems. Note that for text buttons, a padding of (0, 0) will not actually give a padding of 0, there will be a small padding because having zero padding looks horrible and because this way a vertical padding of zero is exactly the same size as a text row, which means the button is the same size as the the other text-based widgets, so it will look nice with them.

Definition at line 60 of file Button.cpp.

◆ SetText()

void cloudViewer::visualization::gui::Button::SetText ( const char *  text)

Sets the text of the button. Do not call if this is an image button.

Definition at line 50 of file Button.cpp.

Referenced by cloudViewer::visualization::gui::pybind_gui_classes().

◆ SetToggleable()

void cloudViewer::visualization::gui::Button::SetToggleable ( bool  toggles)

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