56 "Item activation cannot be done until reconstruction is completed");
169 if (
view.begin_renaming()) {
174 std::copy(std::begin(initial_str), std::end(initial_str), std::begin(
view.get_rename_buffer()));
201 for (
const std::unique_ptr<uiBut> &but : rename_but.
block->
buttons) {
220 const uiBut *rename_but =
static_cast<uiBut *
>(arg);
237 view.get_rename_buffer().data(),
239 view.get_rename_buffer().size(),
286 return fnmatch(filter_string.
c_str(),
name.data(), FNM_CASEFOLD) == 0;
334 throw std::runtime_error(
335 "Invalid state, item must be registered through AbstractView::register_item()");
383 "State cannot be queried until reconstruction is completed");
390 "State can't be queried until reconstruction is completed");
417 if (
typeid(a) !=
typeid(
b)) {
467 const std::unique_ptr<AbstractViewItemDragController> drag_controller =
469 if (!drag_controller) {
473 if (
const std::optional<eWM_DragDataType> drag_type = drag_controller->get_drag_type()) {
477 drag_controller->on_drag_start(
C);
ARegion * CTX_wm_region_popup(const bContext *C)
ARegion * CTX_wm_region(const bContext *C)
#define BLI_assert_msg(a, msg)
void UI_but_flag_disable(uiBut *but, int flag)
bool UI_view_item_can_rename(const blender::ui::AbstractViewItem &item)
bool UI_view_item_drag_start(bContext &C, blender::ui::AbstractViewItem &item)
bool UI_view_item_popup_keep_open(const blender::ui::AbstractViewItem &item)
void UI_view_item_begin_rename(blender::ui::AbstractViewItem &item)
void UI_but_func_rename_set(uiBut *but, uiButHandleRenameFunc func, void *arg1)
bool UI_view_item_matches(const blender::ui::AbstractViewItem &a, const blender::ui::AbstractViewItem &b)
bool UI_but_active_only(const bContext *C, ARegion *region, uiBlock *block, uiBut *but)
bool UI_view_item_supports_drag(const blender::ui::AbstractViewItem &item)
uiBut * uiDefBut(uiBlock *block, uiButTypeWithPointerType but_and_ptr_type, int retval, blender::StringRef str, int x, int y, short width, short height, void *poin, float min, float max, std::optional< blender::StringRef > tip)
constexpr const char * c_str() const
virtual void on_drag_start(bContext &C)
AbstractViewItemDragController(AbstractView &view)
virtual void delete_item(bContext *C)
void disable_activatable()
bool is_interactive() const
void activate(bContext &C)
virtual void change_state_delayed()
void disable_interaction()
virtual void set_selected(const bool select)
virtual void update_from_old(const AbstractViewItem &old)
friend class AbstractView
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
uiButViewItem * view_item_but_
uiButViewItem * view_item_button() const
void always_reactivate_on_click()
virtual std::optional< bool > should_be_active() const
virtual bool rename(const bContext &C, StringRefNull new_name)
bool reactivate_on_click_
virtual bool matches(const AbstractViewItem &other) const =0
bool is_filtered_visible_
virtual void build_context_menu(bContext &C, uiLayout &column) const
virtual std::optional< bool > should_be_selected() const
virtual StringRef get_rename_string() const
bool activate_for_context_menu_
void rename_apply(const bContext &C)
void activate_for_context_menu(bContext &C)
virtual std::unique_ptr< AbstractViewItemDragController > create_drag_controller() const
virtual std::optional< std::string > debug_name() const
void select_on_click_set()
virtual void on_filter_change()
void activate_for_context_menu_set()
bool is_select_on_click() const
virtual void foreach_view_item(FunctionRef< void(AbstractViewItem &)> iter_fn) const =0
bool get_popup_keep_open() const
static bool matches(const AbstractViewItem &a, const AbstractViewItem &b)
static void swap_button_pointers(AbstractViewItem &a, AbstractViewItem &b)
void ui_view_item_swap_button_pointers(blender::ui::AbstractViewItem &a, blender::ui::AbstractViewItem &b)
static void rename_button_fn(bContext *C, void *arg, char *)
static AbstractViewItem * find_item_from_rename_button(const uiBut &rename_but)
blender::Vector< std::unique_ptr< uiBut > > buttons
blender::ui::AbstractViewItem * view_item
void WM_event_start_drag(bContext *C, int icon, eWM_DragDataType type, void *poin, uint flags)