45 bool is_reconstructed_ =
false;
53 std::unique_ptr<std::array<char, MAX_NAME>> rename_buffer_;
159 template<
typename ToType = AbstractViewItem>
193 static_assert(std::is_base_of<AbstractViewItem, ToType>::value,
194 "Type must derive from and implement the AbstractViewItem interface");
196 return dynamic_cast<ToType *
>(
reinterpret_cast<AbstractViewItem *
>(handle));
221 template<
class ViewType>
inline ViewType &
get_view()
const;
245 virtual bool can_drop(
const wmDrag &drag,
const char **r_disabled_hint)
const = 0;
261 template<
class ViewType>
inline ViewType &
get_view()
const;
266 static_assert(std::is_base_of<AbstractView, ViewType>::value,
267 "Type must derive from and implement the ui::AbstractView interface");
268 return dynamic_cast<ViewType &
>(
view_);
273 static_assert(std::is_base_of<AbstractView, ViewType>::value,
274 "Type must derive from and implement the ui::AbstractView interface");
275 return dynamic_cast<ViewType &
>(
view_);
struct uiViewItemHandle uiViewItemHandle
virtual int get_drag_type() const =0
ViewType & get_view() const
virtual void * create_drag_data() const =0
AbstractViewItemDragController(AbstractView &view)
virtual ~AbstractViewItemDragController()=default
virtual void on_drag_start()
ViewType & get_view() const
virtual ~AbstractViewItemDropController()=default
AbstractViewItemDropController(AbstractView &view)
virtual std::string drop_tooltip(const wmDrag &drag) const =0
virtual bool on_drop(struct bContext *C, const wmDrag &drag)=0
virtual bool can_drop(const wmDrag &drag, const char **r_disabled_hint) const =0
static ToType * from_item_handle(uiViewItemHandle *handle)
virtual void update_from_old(const AbstractViewItem &old)
void add_rename_button(uiBlock &block)
AbstractView & get_view() const
virtual bool supports_renaming() const
AbstractViewItem()=default
virtual ~AbstractViewItem()=default
virtual bool rename(StringRefNull new_name)
virtual bool matches(const AbstractViewItem &other) const =0
virtual void build_context_menu(bContext &C, uiLayout &column) const
virtual StringRef get_rename_string() const
virtual std::unique_ptr< AbstractViewItemDropController > create_drop_controller() const
virtual std::unique_ptr< AbstractViewItemDragController > create_drag_controller() const
bool is_reconstructed() const
virtual bool listen(const wmNotifier &) const
void update_from_old(uiBlock &new_block)
virtual void update_children_from_old(const AbstractView &old_view)=0
void register_item(AbstractViewItem &item)
virtual ~AbstractView()=default
Span< char > get_rename_buffer() const