Blender
V3.3
|
#include <cstdlib>
#include <cstring>
#include "BLI_fnmatch.h"
#include "BLI_listbase.h"
#include "BLI_math_base.h"
#include "BLI_string.h"
#include "BLI_utildefines.h"
#include "BKE_screen.h"
#include "BLT_translation.h"
#include "ED_asset.h"
#include "ED_screen.h"
#include "MEM_guardedalloc.h"
#include "RNA_access.h"
#include "RNA_prototypes.h"
#include "UI_interface.h"
#include "UI_view2d.h"
#include "WM_api.h"
#include "interface_intern.h"
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 (struct uiList *ui_list, struct bContext *UNUSED(C), struct uiLayout *layout, struct PointerRNA *UNUSED(dataptr), struct PointerRNA *itemptr, int icon, struct PointerRNA *UNUSED(active_dataptr), const char *UNUSED(active_propname), int UNUSED(index), int UNUSED(flt_flag)) |
static void | uilist_draw_filter_default (struct uiList *ui_list, struct bContext *UNUSED(C), struct uiLayout *layout) |
static int | cmpstringp (const void *p1, const void *p2) |
static void | uilist_filter_items_default (struct uiList *ui_list, struct bContext *UNUSED(C), struct 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, uiListDyn *dyn_data, int filter_exclude, bool order_reverse, int activei, TemplateListItems *r_items) |
static void | ui_template_list_collect_display_items (bContext *C, uiList *ui_list, TemplateListInputData *input_data, const uiListFilterItemsFunc filter_items_fn, TemplateListItems *r_items) |
static void | ui_template_list_free_items (TemplateListItems *items) |
static void | uilist_prepare (uiList *ui_list, const TemplateListItems *items, const TemplateListLayoutDrawData *layout_data, TemplateListVisualInfo *r_visual_info) |
static void | uilist_resize_update_cb (bContext *C, void *arg1, void *UNUSED(arg2)) |
static void * | uilist_item_use_dynamic_tooltip (PointerRNA *itemptr, const char *propname) |
static char * | uilist_item_tooltip_func (bContext *UNUSED(C), void *argN, const char *tip) |
static uiList * | ui_list_ensure (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 (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, 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, 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 () |
Definition at line 156 of file interface_template_list.cc.
References BLI_strcasecmp().
Referenced by uilist_filter_items_default().
Definition at line 1304 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 | ( | struct uiList * | ui_list, |
const char * | opname, | ||
bool | create_properties | ||
) |
Definition at line 1261 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 | ( | struct uiList * | ui_list, |
const char * | opname, | ||
bool | create_properties | ||
) |
Definition at line 1280 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 604 of file interface_template_list.cc.
References BLI_addtail(), BLI_findstring(), BLI_strncpy(), C, CTX_wm_menu(), CTX_wm_region(), 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, uiList::type, UI_LIST_AUTO_SIZE_THRESHOLD, ARegion::ui_lists, 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().
|
static |
Create the UI-list representation of the list items, sorted and filtered if needed.
Definition at line 437 of file interface_template_list.cc.
References TemplateListInputData::active_item_idx, C, PointerRNA::data, TemplateListInputData::dataptr, uiList::dyn_data, uiList::filter_flag, uiList::filter_sort_flag, TemplateListItems::item_vec, uiListDyn::items_len, uiListDyn::items_shown, uiList::layout_type, MEM_mallocN, TemplateListInputData::prop, RNA_property_collection_length(), RNA_property_identifier(), TemplateListItems::tot_items, ui_template_list_collect_items(), UILST_FLT_EXCLUDE, UILST_FLT_SORT_REVERSE, and UILST_LAYOUT_COMPACT.
Referenced by uiTemplateList_ex().
|
static |
Definition at line 373 of file interface_template_list.cc.
References TemplateListItems::active_item_idx, _uilist_item::flt_flag, _uilist_item::item, TemplateListItems::item_vec, uiListDyn::items_filter_flags, uiListDyn::items_filter_neworder, uiListDyn::items_shown, _uilist_item::org_idx, RNA_PROP_BEGIN, RNA_PROP_END, RNA_property_int_set(), and UILST_FLT_ITEM.
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 305 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, type, PointerRNA::type, UI_UL_DEFAULT_CLASS_NAME, and WM_uilisttype_find().
Referenced by uiTemplateList_ex().
|
static |
Definition at line 488 of file interface_template_list.cc.
References TemplateListItems::item_vec, and MEM_freeN.
Referenced by uiTemplateList_ex().
|
static |
Definition at line 659 of file interface_template_list.cc.
References TemplateListInputData::active_dataptr, TemplateListItems::active_item_idx, TemplateListInputData::activeprop, BLI_snprintf(), C, col, TemplateListLayoutDrawData::columns, uiBut::context, PointerRNA::data, TemplateListInputData::dataptr, TemplateListLayoutDrawData::draw_filter, TemplateListLayoutDrawData::draw_item, uiList::dyn_data, TemplateListVisualInfo::end_idx, uiList::filter_flag, _uilist_item::flt_flag, uiListDyn::height, _uilist_item::item, TemplateListInputData::item_dyntip_propname, TemplateListItems::item_vec, uiListDyn::items_shown, uiList::layout_type, uiList::list_grip, uiList::list_scroll, MAX2, MEM_freeN, _uilist_item::org_idx, TemplateListInputData::prop, uiListDyn::resize, uiListDyn::resize_prev, RNA_property_identifier(), RNA_property_pointer_type(), RNA_struct_ui_icon(), TemplateListVisualInfo::start_idx, TIP_, TemplateListItems::tot_items, 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(), uiLayoutOverlap(), uiLayoutRow(), uilist_item_tooltip_func(), uilist_item_use_dynamic_tooltip(), uilist_prepare(), uilist_resize_update_cb(), UILST_FLT_SHOW, UILST_LAYOUT_BIG_PREVIEW_GRID, UILST_LAYOUT_COMPACT, UILST_LAYOUT_DEFAULT, UILST_LAYOUT_GRID, V2D_SCROLL_WIDTH, uiListDyn::visual_height, and TemplateListVisualInfo::visual_items.
Referenced by uiTemplateList_ex().
|
static |
Definition at line 116 of file interface_template_list.cc.
References uiList::filter_sort_flag, RNA_pointer_create(), 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 85 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 |
Definition at line 162 of file interface_template_list.cc.
References BLI_strdup(), BLI_strncpy(), BLI_strncpy_ensure_pad(), cmpstringp(), PointerRNA::data, uiList::dyn_data, ED_asset_handle_get_name(), filter(), uiList::filter_byname, uiList::filter_flag, uiList::filter_sort_flag, uiListDyn::items_filter_flags, uiListDyn::items_filter_neworder, uiListDyn::items_len, uiListDyn::items_shown, len, MAX_IDPROP_NAME, MEM_callocN, MEM_freeN, MEM_mallocN, names, RNA_PROP_BEGIN, RNA_PROP_END, RNA_property_collection_length(), RNA_struct_find_property(), RNA_struct_is_a(), RNA_struct_name_get_alloc(), PointerRNA::type, UILST_FLT_EXCLUDE, UILST_FLT_ITEM, UILST_FLT_SORT_ALPHA, and UILST_FLT_SORT_MASK.
Referenced by uiTemplateList_ex().
Definition at line 278 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().
Definition at line 595 of file interface_template_list.cc.
References BLI_sprintfN().
Referenced by ui_template_list_layout_draw().
|
static |
Definition at line 583 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 495 of file interface_template_list.cc.
References TemplateListItems::active_item_idx, ceil(), CLAMP, TemplateListLayoutDrawData::columns, uiListDyn::columns, double(), uiList::dyn_data, TemplateListVisualInfo::end_idx, uiList::flag, blender::math::floor(), uiListDyn::height, uiList::list_grip, uiList::list_last_len, uiList::list_scroll, max_ii(), TemplateListLayoutDrawData::maxrows, min_ii(), TemplateListLayoutDrawData::rows, TemplateListVisualInfo::start_idx, TemplateListItems::tot_items, 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 564 of file interface_template_list.cc.
References C, CTX_wm_menu(), KDL::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, |
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 1229 of file interface_template_list.cc.
References C, and uiTemplateList_ex().
Referenced by blender::nodes::node_composite_output_file_cc::node_composit_buts_file_output_ex(), panel_draw(), and uiTemplateCacheFileLayers().
uiList* uiTemplateList_ex | ( | uiLayout * | layout, |
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 1158 of file interface_template_list.cc.
References TemplateListInputData::active_item_idx, C, TemplateListLayoutDrawData::columns, uiListDyn::customdata, uiListType::draw_filter, TemplateListLayoutDrawData::draw_filter, uiListType::draw_item, TemplateListLayoutDrawData::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_free_items(), 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().