|
Blender V4.3
|
#include <algorithm>#include <cstdlib>#include <cstring>#include "BLI_fnmatch.h"#include "BLI_function_ref.hh"#include "BLI_listbase.h"#include "BLI_math_base.h"#include "BLI_string.h"#include "BLI_string_ref.hh"#include "BLI_utildefines.h"#include "BLI_vector.hh"#include "BKE_screen.hh"#include "BLT_translation.hh"#include "ED_screen.hh"#include "MEM_guardedalloc.h"#include "RNA_access.hh"#include "RNA_prototypes.hh"#include "UI_interface.hh"#include "UI_view2d.hh"#include "WM_api.hh"#include "interface_intern.hh"Go to the source code of this file.
Classes | |
| struct | TemplateListInputData |
| struct | _uilist_item |
| struct | TemplateListItems |
| struct | TemplateListLayoutDrawData |
| struct | TemplateListVisualInfo |
| struct | StringCmp |
Functions | |
| static void | uilist_draw_item_default (uiList *ui_list, const bContext *, uiLayout *layout, PointerRNA *, PointerRNA *itemptr, int icon, PointerRNA *, const char *, int, int) |
| static void | uilist_draw_filter_default (uiList *ui_list, const bContext *, uiLayout *layout) |
| static int | cmpstringp (const void *p1, const void *p2) |
| void | UI_list_filter_and_sort_items (uiList *ui_list, const bContext *, uiListItemFilterFn item_filter_fn, PointerRNA *dataptr, const char *propname, uiListItemGetNameFn get_name_fn) |
| bool | UI_list_item_index_is_filtered_visible (const uiList *ui_list, const int item_idx) |
| static void | uilist_filter_items_default (uiList *ui_list, const bContext *C, PointerRNA *dataptr, const char *propname) |
| static void | uilist_free_dyn_data (uiList *ui_list) |
| static bool | ui_template_list_data_retrieve (const char *listtype_name, const char *list_id, PointerRNA *dataptr, const char *propname, PointerRNA *active_dataptr, const char *active_propname, const char *item_dyntip_propname, TemplateListInputData *r_input_data, uiListType **r_list_type) |
| static void | ui_template_list_collect_items (PointerRNA *list_ptr, PropertyRNA *list_prop, const uiList *ui_list, int activei, TemplateListItems *r_items) |
| static void | ui_template_list_collect_display_items (const bContext *C, uiList *ui_list, TemplateListInputData *input_data, const uiListFilterItemsFunc filter_items_fn, TemplateListItems *r_items) |
| static void | uilist_prepare (uiList *ui_list, const TemplateListItems *items, const TemplateListLayoutDrawData *layout_data, TemplateListVisualInfo *r_visual_info) |
| static void | uilist_resize_update (bContext *C, uiList *ui_list) |
| static void * | uilist_item_use_dynamic_tooltip (PointerRNA *itemptr, const char *propname) |
| static std::string | uilist_item_tooltip_func (bContext *, void *argN, const char *tip) |
| static uiList * | ui_list_ensure (const bContext *C, uiListType *ui_list_type, const char *list_id, int layout_type, bool sort_reverse, bool sort_lock) |
| static void | ui_template_list_layout_draw (const bContext *C, uiList *ui_list, uiLayout *layout, TemplateListInputData *input_data, TemplateListItems *items, const TemplateListLayoutDrawData *layout_data, const enum uiTemplateListFlags flags) |
| uiList * | uiTemplateList_ex (uiLayout *layout, const bContext *C, const char *listtype_name, const char *list_id, PointerRNA *dataptr, const char *propname, PointerRNA *active_dataptr, const char *active_propname, const char *item_dyntip_propname, int rows, int maxrows, int layout_type, int columns, enum uiTemplateListFlags flags, void *customdata) |
| void | uiTemplateList (uiLayout *layout, const bContext *C, const char *listtype_name, const char *list_id, PointerRNA *dataptr, const char *propname, PointerRNA *active_dataptr, const char *active_propname, const char *item_dyntip_propname, int rows, int maxrows, int layout_type, int columns, enum uiTemplateListFlags flags) |
| PointerRNA * | UI_list_custom_activate_operator_set (uiList *ui_list, const char *opname, bool create_properties) |
| PointerRNA * | UI_list_custom_drag_operator_set (uiList *ui_list, const char *opname, bool create_properties) |
List-types Registration | |
| void | ED_uilisttypes_ui () |
|
static |
Definition at line 203 of file interface_template_list.cc.
References BLI_strcasecmp().
Referenced by UI_list_filter_and_sort_items().
| void ED_uilisttypes_ui | ( | ) |
Definition at line 1349 of file interface_template_list.cc.
References UI_UL_asset_view(), UI_UL_cache_file_layers(), and WM_uilisttype_add().
Referenced by ED_spacetypes_init().
| PointerRNA * UI_list_custom_activate_operator_set | ( | uiList * | ui_list, |
| const char * | opname, | ||
| bool | create_properties ) |
Definition at line 1306 of file interface_template_list.cc.
References uiListDyn::custom_activate_opptr, uiListDyn::custom_activate_optype, PointerRNA::data, uiList::dyn_data, WM_operator_properties_alloc(), and WM_operatortype_find().
Referenced by uiTemplateAssetView().
| PointerRNA * UI_list_custom_drag_operator_set | ( | uiList * | ui_list, |
| const char * | opname, | ||
| bool | create_properties ) |
Definition at line 1325 of file interface_template_list.cc.
References uiListDyn::custom_drag_opptr, uiListDyn::custom_drag_optype, PointerRNA::data, uiList::dyn_data, WM_operator_properties_alloc(), and WM_operatortype_find().
Referenced by uiTemplateAssetView().
|
static |
Definition at line 654 of file interface_template_list.cc.
References BLI_addtail(), BLI_findstring(), CTX_wm_region(), CTX_wm_region_popup(), uiList::dyn_data, uiList::filter_sort_flag, uiListDyn::free_runtime_data_fn, uiListDyn::items_filter_flags, uiListDyn::items_filter_neworder, uiListDyn::items_len, uiListDyn::items_shown, uiList::layout_type, uiList::list_grip, uiList::list_id, MEM_callocN, MEM_SAFE_FREE, offsetof, STRNCPY, uiList::type, UI_LIST_AUTO_SIZE_THRESHOLD, UI_MAX_NAME_STR, uilist_free_dyn_data(), UILST_FLT_SORT_LOCK, UILST_FLT_SORT_REVERSE, and WM_uilisttype_to_full_list_id().
Referenced by uiTemplateList_ex().
| void UI_list_filter_and_sort_items | ( | uiList * | ui_list, |
| const bContext * | C, | ||
| uiListItemFilterFn | item_filter_fn, | ||
| PointerRNA * | dataptr, | ||
| const char * | propname, | ||
| uiListItemGetNameFn | get_name_fn = nullptr ) |
Filter list items using item_filter_fn and sort the result. This respects the normal UI list filter settings like alphabetical sorting (UILST_FLT_SORT_ALPHA), and result inverting (UILST_FLT_EXCLUDE).
Call this from a uiListType::filter_items callback with any #item_filter_fn. uiListNameFilter can be used to apply the default name based filtering.
| get_name_fn | In some cases the name cannot be retrieved via RNA. This function can be set to provide the name still. |
Definition at line 209 of file interface_template_list.cc.
References BLI_strdup(), cmpstringp(), uiList::dyn_data, uiList::filter_flag, uiList::filter_sort_flag, uiListDyn::items_filter_flags, uiListDyn::items_filter_neworder, uiListDyn::items_len, uiListDyn::items_shown, len, MEM_callocN, MEM_freeN(), MEM_mallocN, StringCmp::org_idx, RNA_PROP_BEGIN, RNA_PROP_END, RNA_property_collection_length(), RNA_struct_find_property(), RNA_struct_name_get_alloc(), STRNCPY, UI_LIST_ITEM_FILTER_MATCHES, UI_LIST_ITEM_NEVER_SHOW, UILST_FLT_EXCLUDE, UILST_FLT_ITEM, UILST_FLT_ITEM_NEVER_SHOW, UILST_FLT_SORT_ALPHA, and UILST_FLT_SORT_MASK.
Referenced by asset_view_filter_items(), and uilist_filter_items_default().
Definition at line 311 of file interface_template_list.cc.
References uiList::dyn_data, uiList::filter_flag, uiListDyn::items_filter_flags, UILST_FLT_EXCLUDE, UILST_FLT_ITEM, and UILST_FLT_ITEM_NEVER_SHOW.
Referenced by ui_template_list_collect_items().
|
static |
Create the UI-list representation of the list items, sorted and filtered if needed.
Definition at line 504 of file interface_template_list.cc.
References TemplateListInputData::active_item_idx, PointerRNA::data, TemplateListInputData::dataptr, uiList::dyn_data, TemplateListItems::item_vec, uiListDyn::items_len, uiListDyn::items_shown, uiList::layout_type, TemplateListInputData::prop, blender::Vector< T, InlineBufferCapacity, Allocator >::resize(), RNA_property_collection_length(), RNA_property_identifier(), ui_template_list_collect_items(), and UILST_LAYOUT_COMPACT.
Referenced by uiTemplateList_ex().
|
static |
Definition at line 441 of file interface_template_list.cc.
References TemplateListItems::active_item_idx, uiList::dyn_data, uiList::filter_sort_flag, TemplateListItems::item_vec, uiListDyn::items_filter_flags, uiListDyn::items_filter_neworder, uiListDyn::items_shown, RNA_PROP_BEGIN, RNA_PROP_END, RNA_property_int_set(), UI_list_item_index_is_filtered_visible(), and UILST_FLT_SORT_REVERSE.
Referenced by ui_template_list_collect_display_items().
|
static |
Validate input parameters and initialize r_data from that. Plus find the list-type and return it in r_list_type.
Definition at line 373 of file interface_template_list.cc.
References TemplateListInputData::active_dataptr, TemplateListInputData::active_item_idx, TemplateListInputData::activeprop, PointerRNA::data, TemplateListInputData::dataptr, TemplateListInputData::item_dyntip_propname, TemplateListInputData::prop, PROP_COLLECTION, PROP_INT, RNA_property_int_get(), RNA_property_type(), RNA_struct_find_property(), RNA_struct_identifier(), RNA_warning, STREQ, PointerRNA::type, UI_UL_DEFAULT_CLASS_NAME, and WM_uilisttype_find().
Referenced by uiTemplateList_ex().
|
static |
Definition at line 709 of file interface_template_list.cc.
References TemplateListInputData::active_dataptr, TemplateListItems::active_item_idx, TemplateListInputData::activeprop, col, TemplateListLayoutDrawData::columns, uiBut::context, PointerRNA::data, TemplateListInputData::dataptr, TemplateListLayoutDrawData::draw_filter, TemplateListLayoutDrawData::draw_item, uiList::dyn_data, TemplateListVisualInfo::end_idx, uiList::filter_flag, uiListDyn::height, TemplateListInputData::item_dyntip_propname, TemplateListItems::item_vec, uiListDyn::items_shown, uiList::layout_type, uiList::list_grip, uiList::list_scroll, MEM_freeN(), TemplateListInputData::prop, PROP_EDITABLE, uiListDyn::resize, uiListDyn::resize_prev, RNA_property_flag(), RNA_property_identifier(), RNA_property_pointer_type(), RNA_struct_ui_icon(), blender::Vector< T, InlineBufferCapacity, Allocator >::size(), SNPRINTF, TemplateListVisualInfo::start_idx, TIP_, UI_block_emboss_set(), UI_block_flag_disable(), UI_block_flag_enable(), UI_BLOCK_LIST_ITEM, UI_BTYPE_GRIP, UI_BTYPE_LISTROW, UI_BTYPE_NUM, UI_BTYPE_SCROLL, UI_BTYPE_SEPR, UI_BTYPE_TOGGLE, UI_BUT_DISABLED, UI_but_drawflag_enable(), UI_but_flag_disable(), UI_but_flag_enable(), UI_but_func_set(), UI_but_func_tooltip_set(), UI_BUT_NO_TOOLTIP, UI_BUT_UNDO, UI_EMBOSS, UI_EMBOSS_NONE, UI_icon_from_rnaptr(), ui_layout_list_set_labels_active(), UI_preview_tile_size_x(), UI_preview_tile_size_y(), UI_preview_tile_size_y_no_label(), UI_TEMPLATE_LIST_NO_FILTER_OPTIONS, UI_TEMPLATE_LIST_NO_GRIP, UI_TEMPLATE_LIST_NO_NAMES, UI_UNIT_X, UI_UNIT_Y, uiDefBut(), uiDefButI(), uiDefButR_prop(), uiDefIconButBitI(), uiDefIconButI(), uiDefIconTextButR_prop(), uiItemL(), uiLayoutColumn(), uiLayoutGetBlock(), uiLayoutGetContextStore(), uiLayoutGetWidth(), uiLayoutGridFlow(), uiLayoutListBox(), uiLayoutListItemAddPadding(), uiLayoutOverlap(), uiLayoutRow(), uilist_item_tooltip_func(), uilist_item_use_dynamic_tooltip(), uilist_prepare(), uilist_resize_update(), UILST_FLT_SHOW, UILST_LAYOUT_BIG_PREVIEW_GRID, UILST_LAYOUT_COMPACT, UILST_LAYOUT_DEFAULT, UILST_LAYOUT_GRID, V2D_SCROLL_WIDTH, uiButScrollBar::visual_height, uiListDyn::visual_height, and TemplateListVisualInfo::visual_items.
Referenced by uiTemplateList_ex().
|
static |
Definition at line 122 of file interface_template_list.cc.
References uiList::filter_sort_flag, RNA_pointer_create(), UI_ITEM_NONE, UI_ITEM_R_ICON_ONLY, UI_ITEM_R_TOGGLE, uiItemR(), uiLayoutRow(), UILST_FLT_SORT_LOCK, and UILST_FLT_SORT_REVERSE.
Referenced by uiTemplateList_ex().
|
static |
Definition at line 91 of file interface_template_list.cc.
References uiList::layout_type, RNA_NO_INDEX, RNA_struct_name_property(), PointerRNA::type, UI_ITEM_R_NO_BG, uiItemFullR(), uiItemL(), UILST_LAYOUT_COMPACT, UILST_LAYOUT_DEFAULT, and UILST_LAYOUT_GRID.
Referenced by uiTemplateList_ex().
|
static |
Default UI List filtering: Filter by name.
Definition at line 331 of file interface_template_list.cc.
References uiList::filter_byname, and UI_list_filter_and_sort_items().
Referenced by uiTemplateList_ex().
|
static |
Definition at line 346 of file interface_template_list.cc.
References uiListDyn::custom_activate_opptr, uiListDyn::custom_drag_opptr, uiListDyn::customdata, uiList::dyn_data, uiListDyn::items_filter_flags, uiListDyn::items_filter_neworder, MEM_freeN(), MEM_SAFE_FREE, and WM_operator_properties_free().
Referenced by ui_list_ensure().
|
static |
Definition at line 640 of file interface_template_list.cc.
Referenced by ui_template_list_layout_draw().
|
static |
Definition at line 628 of file interface_template_list.cc.
References PointerRNA::data, PROP_STRING, RNA_property_string_get_alloc(), RNA_property_type(), and RNA_struct_find_property().
Referenced by ui_template_list_layout_draw().
|
static |
Definition at line 540 of file interface_template_list.cc.
References TemplateListItems::active_item_idx, ceil(), CLAMP, TemplateListLayoutDrawData::columns, uiListDyn::columns, uiList::dyn_data, TemplateListVisualInfo::end_idx, uiList::flag, floor(), uiListDyn::height, int, TemplateListItems::item_vec, uiList::list_grip, uiList::list_last_len, uiList::list_scroll, max_ii(), TemplateListLayoutDrawData::maxrows, min_ii(), TemplateListLayoutDrawData::rows, blender::Vector< T, InlineBufferCapacity, Allocator >::size(), TemplateListVisualInfo::start_idx, UI_LIST_AUTO_SIZE_THRESHOLD, UILST_SCROLL_TO_ACTIVE_ITEM, uiListDyn::visual_height, uiListDyn::visual_height_min, and TemplateListVisualInfo::visual_items.
Referenced by ui_template_list_layout_draw().
Definition at line 610 of file interface_template_list.cc.
References CTX_wm_region_popup(), diff(), uiList::dyn_data, ED_region_tag_refresh_ui(), uiList::flag, uiList::list_grip, uiListDyn::resize, uiListDyn::resize_prev, round_fl_to_int(), UI_UNIT_Y, and UILST_SCROLL_TO_ACTIVE_ITEM.
Referenced by ui_template_list_layout_draw().
| void uiTemplateList | ( | uiLayout * | layout, |
| const bContext * | C, | ||
| const char * | listtype_name, | ||
| const char * | list_id, | ||
| PointerRNA * | dataptr, | ||
| const char * | propname, | ||
| PointerRNA * | active_dataptr, | ||
| const char * | active_propname, | ||
| const char * | item_dyntip_propname, | ||
| int | rows, | ||
| int | maxrows, | ||
| int | layout_type, | ||
| int | columns, | ||
| enum uiTemplateListFlags | flags ) |
Definition at line 1274 of file interface_template_list.cc.
References uiTemplateList_ex().
Referenced by blender::nodes::node_geo_bake_cc::draw_bake_items(), blender::nodes::draw_data_blocks(), blender::nodes::node_geo_simulation_cc::draw_simulation_state(), blender::nodes::node_composite_file_output_cc::node_composit_buts_file_output_ex(), blender::nodes::node_geo_attribute_capture_cc::node_layout_ex(), blender::nodes::node_geo_foreach_geometry_element_cc::node_layout_ex(), blender::nodes::node_geo_menu_switch_cc::node_layout_ex(), blender::nodes::node_geo_repeat_cc::node_layout_ex(), blender::panel_draw(), uiTemplateCacheFileLayers(), and uiTemplateCollectionExporters().
| uiList * uiTemplateList_ex | ( | uiLayout * | layout, |
| const bContext * | C, | ||
| const char * | listtype_name, | ||
| const char * | list_id, | ||
| PointerRNA * | dataptr, | ||
| const char * | propname, | ||
| PointerRNA * | active_dataptr, | ||
| const char * | active_propname, | ||
| const char * | item_dyntip_propname, | ||
| int | rows, | ||
| int | maxrows, | ||
| int | layout_type, | ||
| int | columns, | ||
| enum uiTemplateListFlags | flags, | ||
| void * | customdata ) |
Definition at line 1204 of file interface_template_list.cc.
References TemplateListInputData::active_item_idx, TemplateListLayoutDrawData::columns, uiListDyn::customdata, TemplateListLayoutDrawData::draw_filter, uiListType::draw_filter, TemplateListLayoutDrawData::draw_item, uiListType::draw_item, uiList::dyn_data, uiListType::filter_items, uiList::flag, uiList::list_last_activei, TemplateListLayoutDrawData::maxrows, MEM_SAFE_FREE, TemplateListLayoutDrawData::rows, ui_list_ensure(), ui_template_list_collect_display_items(), ui_template_list_data_retrieve(), ui_template_list_layout_draw(), UI_TEMPLATE_LIST_SORT_LOCK, UI_TEMPLATE_LIST_SORT_REVERSE, uilist_draw_filter_default(), uilist_draw_item_default(), uilist_filter_items_default(), and UILST_SCROLL_TO_ACTIVE_ITEM.
Referenced by uiTemplateAssetView(), and uiTemplateList().