Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulian Eisel <julian@blender.org>2021-11-24 20:37:33 +0300
committerJulian Eisel <julian@blender.org>2021-11-24 20:37:33 +0300
commit338408772a077089482de4d99c68126f6b931c21 (patch)
tree20b1733d8005e17a33dd7f6e093edc8ed3521428 /source/blender/editors/include
parent499c24ce7530b484b103fa714e94fc72ef6acfc2 (diff)
parent71c39a9e2ef300a1ca451f1080cf59dda94ef4a4 (diff)
Merge branch 'blender-v3.0-release'
Diffstat (limited to 'source/blender/editors/include')
-rw-r--r--source/blender/editors/include/UI_tree_view.hh14
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,