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

#include <Layout.h>

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

Classes

class  Fixed
 
struct  Impl
 
class  Stretch
 

Public Types

enum  Dir { VERT , HORIZ }
 
- Public Types inherited from cloudViewer::visualization::gui::Widget
enum class  DrawResult { NONE , REDRAW , RELAYOUT }
 
enum class  EventResult { IGNORED , CONSUMED , DISCARD }
 

Public Member Functions

 Layout1D (Dir dir, int spacing, const Margins &margins, const std::vector< std::shared_ptr< Widget >> &children)
 
virtual ~Layout1D ()
 
int GetSpacing () const
 
const MarginsGetMargins () const
 
void SetSpacing (int spacing)
 
void SetMargins (const Margins &margins)
 
Size CalcPreferredSize (const LayoutContext &context, const Constraints &constraints) const override
 
void Layout (const LayoutContext &context) override
 
void AddFixed (int size)
 Adds a fixed number of pixels after the previously added widget. More...
 
void AddStretch ()
 
- 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 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 Member Functions

static void debug_PrintPreferredSizes (Layout1D *layout, const LayoutContext &context, const Constraints &constraints, int depth=0)
 

Protected Member Functions

int GetMinorAxisPreferredSize () const
 
void SetMinorAxisPreferredSize (int size)
 
MarginsGetMutableMargins ()
 
- Protected Member Functions inherited from cloudViewer::visualization::gui::Widget
void DrawImGuiPushEnabledState ()
 
void DrawImGuiPopEnabledState ()
 
void DrawImGuiTooltip ()
 

Additional Inherited Members

- Static Public Attributes inherited from cloudViewer::visualization::gui::Widget
static constexpr int DIM_GROW = 10000
 

Detailed Description

Lays out widgets either horizontally or vertically. Base class for Vert and Horiz.

Definition at line 43 of file Layout.h.

Member Enumeration Documentation

◆ Dir

Enumerator
VERT 
HORIZ 

Definition at line 47 of file Layout.h.

Constructor & Destructor Documentation

◆ Layout1D()

cloudViewer::visualization::gui::Layout1D::Layout1D ( Dir  dir,
int  spacing,
const Margins margins,
const std::vector< std::shared_ptr< Widget >> &  children 
)

Spacing is in pixels; see the comment in Margin(). 1em is typically a good value for spacing.

Definition at line 193 of file Layout.cpp.

◆ ~Layout1D()

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

Definition at line 203 of file Layout.cpp.

Member Function Documentation

◆ AddFixed()

void cloudViewer::visualization::gui::Layout1D::AddFixed ( int  size)

Adds a fixed number of pixels after the previously added widget.

Definition at line 212 of file Layout.cpp.

References cloudViewer::visualization::gui::Widget::AddChild(), and size.

Referenced by cloudViewer::visualization::GuiSettingsView::GuiSettingsView(), and cloudViewer::visualization::gui::pybind_gui_classes().

◆ AddStretch()

void cloudViewer::visualization::gui::Layout1D::AddStretch ( )

Adds a virtual widget that takes up as much space as possible. This is useful for centering widgets: { stretch, w1, w2, stretch } or for aligning widgets to one side or the other: { stretch, ok, cancel }.

Definition at line 224 of file Layout.cpp.

References cloudViewer::visualization::gui::Widget::AddChild().

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

◆ CalcPreferredSize()

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

◆ debug_PrintPreferredSizes()

◆ GetMargins()

const Margins & cloudViewer::visualization::gui::Layout1D::GetMargins ( ) const

◆ GetMinorAxisPreferredSize()

int cloudViewer::visualization::gui::Layout1D::GetMinorAxisPreferredSize ( ) const
protected

◆ GetMutableMargins()

Margins & cloudViewer::visualization::gui::Layout1D::GetMutableMargins ( )
protected

◆ GetSpacing()

int cloudViewer::visualization::gui::Layout1D::GetSpacing ( ) const

Definition at line 205 of file Layout.cpp.

◆ Layout()

◆ SetMargins()

void cloudViewer::visualization::gui::Layout1D::SetMargins ( const Margins margins)

Sets margins. Need to signal a relayout after calling (unless it is before a layout that will happen, such as before adding as a child).

Definition at line 210 of file Layout.cpp.

Referenced by cloudViewer::visualization::GuiSettingsView::GuiSettingsView().

◆ SetMinorAxisPreferredSize()

void cloudViewer::visualization::gui::Layout1D::SetMinorAxisPreferredSize ( int  size)
protected

◆ SetSpacing()

void cloudViewer::visualization::gui::Layout1D::SetSpacing ( int  spacing)

Sets spacing. Need to signal a relayout after calling (unless it is before a layout that will happen, such as before adding as a child).

Definition at line 209 of file Layout.cpp.


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