|
Blender V4.3
|
#include <UI_tree_view.hh>
Inherited by blender::ui::AbstractTreeView, and blender::ui::AbstractTreeViewItem.
Public Types | |
| enum class | IterOptions { None = 0 , SkipCollapsed = 1 << 0 , SkipFiltered = 1 << 1 } |
| using | ItemIterFn = FunctionRef<void(AbstractTreeViewItem &)> |
Public Member Functions | |
| template<class ItemT , typename... Args> | |
| ItemT & | add_tree_item (Args &&...args) |
| AbstractTreeViewItem & | add_tree_item (std::unique_ptr< AbstractTreeViewItem > item) |
Protected Member Functions | |
| void | foreach_item_recursive (ItemIterFn iter_fn, IterOptions options=IterOptions::None) const |
| void | foreach_parent (ItemIterFn iter_fn) const |
Protected Attributes | |
| Vector< std::unique_ptr< AbstractTreeViewItem > > | children_ |
| TreeViewItemContainer * | root_ = nullptr |
| AbstractTreeViewItem * | parent_ = nullptr |
Friends | |
| class | AbstractTreeView |
| class | AbstractTreeViewItem |
Both the tree-view (as the root of the tree) and the items can have children. This is the base class for both, to store and manage child items. Children are owned by their parent container (tree-view or item).
That means this type can be used whenever either an AbstractTreeView or an AbstractTreeViewItem is needed, but the TreeViewOrItem alias is a better name to use then.
Definition at line 49 of file UI_tree_view.hh.
Definition at line 71 of file UI_tree_view.hh.
|
strong |
| Enumerator | |
|---|---|
| None | |
| SkipCollapsed | |
| SkipFiltered | |
Definition at line 64 of file UI_tree_view.hh.
|
inline |
Convenience wrapper constructing the item by forwarding given arguments to the constructor of the type (ItemT).
E.g. if your tree-item type has the following constructor:
You can add an item like this:
Definition at line 421 of file UI_tree_view.hh.
References add_tree_item().
Referenced by add_tree_item(), blender::ed::asset::shelf::AssetCatalogSelectorTree::build_catalog_items_recursive(), blender::ed::asset::shelf::AssetCatalogTreeView::build_catalog_items_recursive(), blender::ed::asset::shelf::AssetCatalogSelectorTree::build_tree(), blender::ed::asset::shelf::AssetCatalogTreeView::build_tree(), blender::ed::spreadsheet::GeometryInstancesTreeView::build_tree(), blender::ed::spreadsheet::GeometryDataSetTreeView::build_tree_for_curves(), blender::ed::spreadsheet::GeometryDataSetTreeView::build_tree_for_grease_pencil(), blender::ed::spreadsheet::GeometryDataSetTreeView::build_tree_for_instances(), blender::ed::spreadsheet::GeometryInstancesTreeView::build_tree_for_instances(), blender::ed::spreadsheet::GeometryDataSetTreeView::build_tree_for_mesh(), blender::ed::spreadsheet::GeometryDataSetTreeView::build_tree_for_pointcloud(), and blender::ed::spreadsheet::GeometryDataSetTreeView::build_tree_for_volume().
| AbstractTreeViewItem & blender::ui::TreeViewItemContainer::add_tree_item | ( | std::unique_ptr< AbstractTreeViewItem > | item | ) |
Add an already constructed tree item to this parent. Ownership is moved to it. All tree items must be added through this, it handles important invariants!
Definition at line 46 of file tree_view.cc.
References children_, parent_, blender::ui::AbstractView::register_item(), and root_.
|
protected |
Definition at line 69 of file tree_view.cc.
References children_, options, SkipCollapsed, and SkipFiltered.
Referenced by blender::ui::AbstractTreeView::find_hovered(), blender::ui::AbstractTreeView::foreach_item(), blender::ed::asset::shelf::AssetCatalogSelectorTree::Item::has_enabled_in_subtree(), and blender::ed::spreadsheet::DataSetViewItem::on_activate().
|
protected |
Definition at line 89 of file tree_view.cc.
References parent_.
Referenced by blender::ed::spreadsheet::InstancesTreeViewItem::get_parent_instance_ids().
|
friend |
Definition at line 50 of file UI_tree_view.hh.
|
friend |
Definition at line 51 of file UI_tree_view.hh.
|
protected |
Definition at line 57 of file UI_tree_view.hh.
Referenced by add_tree_item(), foreach_item_recursive(), and blender::ui::AbstractTreeViewItem::is_collapsible().
|
protected |
Pointer back to the owning item.
Definition at line 61 of file UI_tree_view.hh.
Referenced by add_tree_item(), blender::ui::AbstractTreeViewItem::count_parents(), blender::ui::AbstractTreeViewItem::ensure_parents_uncollapsed(), foreach_parent(), and blender::ui::AbstractTreeViewItem::matches().
|
protected |
Adding the first item to the root will set this, then it's passed on to all children.
Definition at line 59 of file UI_tree_view.hh.
Referenced by add_tree_item().