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

#include <TreeView.h>

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

Classes

struct  Impl
 

Public Types

using ItemId = int
 
- Public Types inherited from cloudViewer::visualization::gui::Widget
enum class  DrawResult { NONE , REDRAW , RELAYOUT }
 
enum class  EventResult { IGNORED , CONSUMED , DISCARD }
 

Public Member Functions

 TreeView ()
 
 ~TreeView ()
 
ItemId GetRootItem () const
 
ItemId AddItem (ItemId parent_id, std::shared_ptr< Widget > item)
 Adds an item to the tree. More...
 
ItemId AddTextItem (ItemId parent_id, const char *text)
 Adds a text item to the tree. More...
 
void RemoveItem (ItemId item_id)
 Removes an item an all its children (if any) from the tree. More...
 
void Clear ()
 Clears all the items. More...
 
std::shared_ptr< WidgetGetItem (ItemId item_id) const
 Returns item, or nullptr if item_id cannot be found. More...
 
std::vector< ItemIdGetItemChildren (ItemId parent_id) const
 
bool GetCanSelectItemsWithChildren () const
 
void SetCanSelectItemsWithChildren (bool can_select)
 
ItemId GetSelectedItemId () const
 Returns the currently selected item id in the tree. More...
 
void SetSelectedItemId (ItemId item_id)
 Selects the indicated item of the list. Does not call onValueChanged. More...
 
Size CalcPreferredSize (const LayoutContext &context, const Constraints &constraints) const override
 
Size CalcMinimumSize (const LayoutContext &context) const override
 
void Layout (const LayoutContext &context) override
 
DrawResult Draw (const DrawContext &context) override
 
void SetOnSelectionChanged (std::function< void(ItemId)> on_selection_changed)
 
- 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 EventResult Mouse (const MouseEvent &e)
 
virtual EventResult Key (const KeyEvent &e)
 
virtual DrawResult Tick (const TickEvent &e)
 

Additional Inherited Members

- 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 89 of file TreeView.h.

Member Typedef Documentation

◆ ItemId

Definition at line 93 of file TreeView.h.

Constructor & Destructor Documentation

◆ TreeView()

cloudViewer::visualization::gui::TreeView::TreeView ( )

◆ ~TreeView()

cloudViewer::visualization::gui::TreeView::~TreeView ( )

Definition at line 232 of file TreeView.cpp.

Member Function Documentation

◆ AddItem()

◆ AddTextItem()

TreeView::ItemId cloudViewer::visualization::gui::TreeView::AddTextItem ( ItemId  parent_id,
const char *  text 
)

Adds a text item to the tree.

Definition at line 258 of file TreeView.cpp.

References AddItem().

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

◆ CalcMinimumSize()

Size cloudViewer::visualization::gui::TreeView::CalcMinimumSize ( const LayoutContext context) const
overridevirtual

Reimplemented from cloudViewer::visualization::gui::Widget.

Definition at line 354 of file TreeView.cpp.

References context.

◆ CalcPreferredSize()

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

◆ Clear()

void cloudViewer::visualization::gui::TreeView::Clear ( )

Clears all the items.

Definition at line 294 of file TreeView.cpp.

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

◆ Draw()

Widget::DrawResult cloudViewer::visualization::gui::TreeView::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 364 of file TreeView.cpp.

References cloudViewer::visualization::gui::colorToImgui(), cloudViewer::visualization::gui::colorToImguiRGBA(), context, cloudViewer::visualization::gui::Widget::DrawImGuiPopEnabledState(), cloudViewer::visualization::gui::Widget::DrawImGuiPushEnabledState(), frame, cloudViewer::visualization::gui::Widget::GetFrame(), height, cloudViewer::visualization::gui::TreeView::Impl::Item::id, cloudViewer::visualization::gui::Widget::NONE, cloudViewer::visualization::gui::Widget::REDRAW, and result.

◆ GetCanSelectItemsWithChildren()

bool cloudViewer::visualization::gui::TreeView::GetCanSelectItemsWithChildren ( ) const

Definition at line 324 of file TreeView.cpp.

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

◆ GetItem()

std::shared_ptr< Widget > cloudViewer::visualization::gui::TreeView::GetItem ( ItemId  item_id) const

Returns item, or nullptr if item_id cannot be found.

Definition at line 300 of file TreeView.cpp.

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

◆ GetItemChildren()

std::vector< TreeView::ItemId > cloudViewer::visualization::gui::TreeView::GetItemChildren ( ItemId  parent_id) const

Definition at line 308 of file TreeView.cpp.

◆ GetRootItem()

TreeView::ItemId cloudViewer::visualization::gui::TreeView::GetRootItem ( ) const

Returns the ID of the root item, that is, AddItem(GetRootItem(), ...) will be a top-level item.

Definition at line 234 of file TreeView.cpp.

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

◆ GetSelectedItemId()

TreeView::ItemId cloudViewer::visualization::gui::TreeView::GetSelectedItemId ( ) const

Returns the currently selected item id in the tree.

Definition at line 332 of file TreeView.cpp.

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

◆ Layout()

void cloudViewer::visualization::gui::TreeView::Layout ( const LayoutContext context)
overridevirtual

Reimplemented from cloudViewer::visualization::gui::Widget.

Definition at line 358 of file TreeView.cpp.

◆ RemoveItem()

void cloudViewer::visualization::gui::TreeView::RemoveItem ( ItemId  item_id)

Removes an item an all its children (if any) from the tree.

Definition at line 263 of file TreeView.cpp.

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

◆ SetCanSelectItemsWithChildren()

void cloudViewer::visualization::gui::TreeView::SetCanSelectItemsWithChildren ( bool  can_select)

If true, enables selecting items that have children. Items can be toggled open/closed with the triangles or by double-clicking. Default is false.

Definition at line 328 of file TreeView.cpp.

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

◆ SetOnSelectionChanged()

void cloudViewer::visualization::gui::TreeView::SetOnSelectionChanged ( std::function< void(ItemId)>  on_selection_changed)

Calls onSelectionChanged(const char *sel_text, ItemId sel_item_id) when the list selection changes because of user action.

Definition at line 344 of file TreeView.cpp.

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

◆ SetSelectedItemId()

void cloudViewer::visualization::gui::TreeView::SetSelectedItemId ( ItemId  item_id)

Selects the indicated item of the list. Does not call onValueChanged.

Definition at line 340 of file TreeView.cpp.

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


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