diff options
author | Julian Eisel <julian@blender.org> | 2021-11-24 20:37:33 +0300 |
---|---|---|
committer | Julian Eisel <julian@blender.org> | 2021-11-24 20:37:33 +0300 |
commit | 338408772a077089482de4d99c68126f6b931c21 (patch) | |
tree | 20b1733d8005e17a33dd7f6e093edc8ed3521428 /source/blender/editors/include/UI_tree_view.hh | |
parent | 499c24ce7530b484b103fa714e94fc72ef6acfc2 (diff) | |
parent | 71c39a9e2ef300a1ca451f1080cf59dda94ef4a4 (diff) |
Merge branch 'blender-v3.0-release'
Diffstat (limited to 'source/blender/editors/include/UI_tree_view.hh')
-rw-r--r-- | source/blender/editors/include/UI_tree_view.hh | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/source/blender/editors/include/UI_tree_view.hh b/source/blender/editors/include/UI_tree_view.hh index 8caf17741a7..7682570a5c6 100644 --- a/source/blender/editors/include/UI_tree_view.hh +++ b/source/blender/editors/include/UI_tree_view.hh @@ -360,11 +360,18 @@ class AbstractTreeViewItem : public TreeViewItemContainer { * custom implementation of #AbstractTreeViewItem::create_drag_controller(). */ class AbstractTreeViewItemDragController { + protected: + AbstractTreeView &tree_view_; + public: + AbstractTreeViewItemDragController(AbstractTreeView &tree_view); virtual ~AbstractTreeViewItemDragController() = default; virtual int get_drag_type() const = 0; virtual void *create_drag_data() const = 0; + virtual void on_drag_start(); + + template<class TreeViewType> inline TreeViewType &tree_view() const; }; /** @@ -463,6 +470,13 @@ inline ItemT &TreeViewItemContainer::add_tree_item(Args &&...args) add_tree_item(std::make_unique<ItemT>(std::forward<Args>(args)...))); } +template<class TreeViewType> TreeViewType &AbstractTreeViewItemDragController::tree_view() const +{ + static_assert(std::is_base_of<AbstractTreeView, TreeViewType>::value, + "Type must derive from and implement the AbstractTreeView interface"); + return static_cast<TreeViewType &>(tree_view_); +} + template<class TreeViewType> TreeViewType &AbstractTreeViewItemDropController::tree_view() const { static_assert(std::is_base_of<AbstractTreeView, TreeViewType>::value, |