Open3D (C++ API)  0.18.0
Loading...
Searching...
No Matches
TreeView.h
Go to the documentation of this file.
1// ----------------------------------------------------------------------------
2// - Open3D: www.open3d.org -
3// ----------------------------------------------------------------------------
4// Copyright (c) 2018-2023 www.open3d.org
5// SPDX-License-Identifier: MIT
6// ----------------------------------------------------------------------------
7
8#pragma once
9
10#include <functional>
11
13
14namespace open3d {
15namespace visualization {
16namespace gui {
17
18class Checkbox;
19class ColorEdit;
20class Label;
21class NumberEdit;
22
29public:
30 CheckableTextTreeCell(const char* text,
31 bool is_checked,
32 std::function<void(bool)> on_toggled);
34
35 std::shared_ptr<Checkbox> GetCheckbox();
36 std::shared_ptr<Label> GetLabel();
37
39 const Constraints& constraints) const override;
40 void Layout(const LayoutContext& context) override;
41
42private:
43 struct Impl;
44 std::unique_ptr<Impl> impl_;
45};
46
47class LUTTreeCell : public Widget {
48public:
49 LUTTreeCell(const char* text,
50 bool is_checked,
51 const Color& color,
52 std::function<void(bool)> on_enabled,
53 std::function<void(const Color&)> on_color_changed);
55
56 std::shared_ptr<Checkbox> GetCheckbox();
57 std::shared_ptr<Label> GetLabel();
58 std::shared_ptr<ColorEdit> GetColorEdit();
59
61 const Constraints& constraints) const override;
62 void Layout(const LayoutContext& context) override;
63
64private:
65 struct Impl;
66 std::unique_ptr<Impl> impl_;
67};
68
69class ColormapTreeCell : public Widget {
70public:
71 ColormapTreeCell(double value,
72 const Color& color,
73 std::function<void(double)> on_value_changed,
74 std::function<void(const Color&)> on_color_changed);
76
77 std::shared_ptr<NumberEdit> GetNumberEdit();
78 std::shared_ptr<ColorEdit> GetColorEdit();
79
81 const Constraints& constraints) const override;
82 void Layout(const LayoutContext& context) override;
83
84private:
85 struct Impl;
86 std::unique_ptr<Impl> impl_;
87};
88
89class TreeView : public Widget {
90 using Super = Widget;
91
92public:
93 using ItemId = int;
94
95 TreeView();
96 ~TreeView();
97
100 ItemId GetRootItem() const;
102 ItemId AddItem(ItemId parent_id, std::shared_ptr<Widget> item);
104 ItemId AddTextItem(ItemId parent_id, const char* text);
106 void RemoveItem(ItemId item_id);
108 void Clear();
110 std::shared_ptr<Widget> GetItem(ItemId item_id) const;
111 std::vector<ItemId> GetItemChildren(ItemId parent_id) const;
112
117 void SetCanSelectItemsWithChildren(bool can_select);
118
122 void SetSelectedItemId(ItemId item_id);
123
125 const Constraints& constraints) const override;
126 Size CalcMinimumSize(const LayoutContext& context) const override;
127
128 void Layout(const LayoutContext& context) override;
129
130 DrawResult Draw(const DrawContext& context) override;
131
135 std::function<void(ItemId)> on_selection_changed);
136
137private:
138 struct Impl;
139 std::unique_ptr<Impl> impl_;
140};
141
142} // namespace gui
143} // namespace visualization
144} // namespace open3d
math::float4 color
Definition LineSetBuffers.cpp:45
ImGuiContext * context
Definition Window.cpp:76
~CheckableTextTreeCell()
Definition TreeView.cpp:47
std::shared_ptr< Checkbox > GetCheckbox()
Definition TreeView.cpp:49
std::shared_ptr< Label > GetLabel()
Definition TreeView.cpp:53
void Layout(const LayoutContext &context) override
Definition TreeView.cpp:65
Size CalcPreferredSize(const LayoutContext &context, const Constraints &constraints) const override
Definition TreeView.cpp:57
std::shared_ptr< NumberEdit > GetNumberEdit()
Definition TreeView.cpp:172
Size CalcPreferredSize(const LayoutContext &context, const Constraints &constraints) const override
Definition TreeView.cpp:180
std::shared_ptr< ColorEdit > GetColorEdit()
Definition TreeView.cpp:176
void Layout(const LayoutContext &context) override
Definition TreeView.cpp:188
~ColormapTreeCell()
Definition TreeView.cpp:170
std::shared_ptr< Checkbox > GetCheckbox()
Definition TreeView.cpp:107
std::shared_ptr< ColorEdit > GetColorEdit()
Definition TreeView.cpp:113
void Layout(const LayoutContext &context) override
Definition TreeView.cpp:125
std::shared_ptr< Label > GetLabel()
Definition TreeView.cpp:111
Size CalcPreferredSize(const LayoutContext &context, const Constraints &constraints) const override
Definition TreeView.cpp:115
~LUTTreeCell()
Definition TreeView.cpp:105
Definition TreeView.h:89
Size CalcMinimumSize(const LayoutContext &context) const override
Definition TreeView.cpp:354
std::vector< ItemId > GetItemChildren(ItemId parent_id) const
Definition TreeView.cpp:308
ItemId AddTextItem(ItemId parent_id, const char *text)
Adds a text item to the tree.
Definition TreeView.cpp:258
int ItemId
Definition TreeView.h:93
void Clear()
Clears all the items.
Definition TreeView.cpp:294
DrawResult Draw(const DrawContext &context) override
Definition TreeView.cpp:364
ItemId AddItem(ItemId parent_id, std::shared_ptr< Widget > item)
Adds an item to the tree.
Definition TreeView.cpp:236
void SetCanSelectItemsWithChildren(bool can_select)
Definition TreeView.cpp:328
void RemoveItem(ItemId item_id)
Removes an item an all its children (if any) from the tree.
Definition TreeView.cpp:263
ItemId GetRootItem() const
Definition TreeView.cpp:234
~TreeView()
Definition TreeView.cpp:232
ItemId GetSelectedItemId() const
Returns the currently selected item id in the tree.
Definition TreeView.cpp:332
void Layout(const LayoutContext &context) override
Definition TreeView.cpp:358
std::shared_ptr< Widget > GetItem(ItemId item_id) const
Returns item, or nullptr if item_id cannot be found.
Definition TreeView.cpp:300
TreeView()
Definition TreeView.cpp:226
Size CalcPreferredSize(const LayoutContext &context, const Constraints &constraints) const override
Definition TreeView.cpp:349
void SetSelectedItemId(ItemId item_id)
Selects the indicated item of the list. Does not call onValueChanged.
Definition TreeView.cpp:340
bool GetCanSelectItemsWithChildren() const
Definition TreeView.cpp:324
void SetOnSelectionChanged(std::function< void(ItemId)> on_selection_changed)
Definition TreeView.cpp:344
Widget()
Definition Widget.cpp:34
DrawResult
Definition Widget.h:95
Definition PinholeCameraIntrinsic.cpp:16