56 friend struct ::ViewLink;
58 bool is_reconstructed_ =
false;
66 std::unique_ptr<std::array<char, MAX_NAME>> rename_buffer_;
68 std::string prev_filter_string_;
70 bool needs_filtering_ =
true;
73 std::optional<rcti> bounds_;
75 std::string context_menu_title;
77 bool popup_keep_open_ =
false;
162 void filter(std::optional<StringRef> filter_str);
245 virtual std::optional<std::string>
debug_name()
const;
363 template<
class ViewType>
inline ViewType &
get_view()
const;
368 static_assert(std::is_base_of<AbstractView, ViewType>::value,
369 "Type must derive from and implement the ui::AbstractView interface");
370 return dynamic_cast<ViewType &
>(
view_);
ViewType & get_view() const
virtual void * create_drag_data() const =0
AbstractViewItemDragController(AbstractView &view)
virtual eWM_DragDataType get_drag_type() const =0
virtual ~AbstractViewItemDragController()=default
virtual void on_drag_start()
void disable_activatable()
bool is_interactive() const
void activate(bContext &C)
virtual void change_state_delayed()
void disable_interaction()
virtual void update_from_old(const AbstractViewItem &old)
void add_rename_button(uiBlock &block)
virtual bool should_be_filtered_visible(StringRefNull filter_string) const
bool is_highlighted_search_
virtual bool set_state_active()
AbstractView & get_view() const
virtual void on_activate(bContext &C)
virtual std::unique_ptr< DropTargetInterface > create_item_drop_target()
virtual bool supports_renaming() const
bool is_search_highlight() const
AbstractViewItem()=default
bool is_filtered_visible() const
virtual ~AbstractViewItem()=default
uiButViewItem * view_item_but_
uiButViewItem * view_item_button() const
virtual std::optional< bool > should_be_active() const
virtual bool rename(const bContext &C, StringRefNull new_name)
virtual bool matches(const AbstractViewItem &other) const =0
bool is_filtered_visible_
virtual void build_context_menu(bContext &C, uiLayout &column) const
virtual StringRef get_rename_string() const
void rename_apply(const bContext &C)
virtual std::unique_ptr< AbstractViewItemDragController > create_drag_controller() const
virtual std::optional< std::string > debug_name() const
virtual bool supports_scrolling() const
virtual void draw_overlays(const ARegion ®ion, const uiBlock &block) const
bool is_reconstructed() const
const AbstractViewItem * search_highlight_item() const
virtual bool listen(const wmNotifier &) const
std::optional< rcti > get_bounds() const
void update_from_old(uiBlock &new_block)
virtual void change_state_delayed()
virtual std::unique_ptr< DropTargetInterface > create_drop_target()
void set_popup_keep_open()
virtual void foreach_view_item(FunctionRef< void(AbstractViewItem &)> iter_fn) const =0
virtual bool begin_filtering(const bContext &C) const
virtual void scroll(ViewScrollDirection direction)
virtual void update_children_from_old(const AbstractView &old_view)=0
void clear_search_highlight()
void register_item(AbstractViewItem &item)
virtual ~AbstractView()=default
Span< char > get_rename_buffer() const
bool get_popup_keep_open() const
std::string get_context_menu_title() const
void filter(std::optional< StringRef > filter_str)
void set_context_menu_title(const std::string &title)