27#include <fmt/format.h>
35 const char *
name =
nullptr;
42 const char *
name =
nullptr;
49 std::string search_item_text = fmt::format(
59 const bool can_create_attribute,
67 if (!
str.is_empty()) {
68 bool contained =
false;
70 if (attribute_info->name ==
str) {
78 seach_items,
str, &dummy_info, can_create_attribute ? ICON_ADD : ICON_NONE, 0, 0);
82 if (
str.is_empty() && !is_first) {
98 search.
add(item->name, item);
bool UI_search_item_add(uiSearchItems *items, blender::StringRef name, void *poin, int iconid, int but_flag, uint8_t name_prefix_offset)
void add(const StringRef str, T *user_data, const int weight=0)
Vector< T * > query(const StringRef query) const
std::optional< eCustomDataType > attr_type_to_custom_data_type(AttrType attr_type)
bool allow_procedural_attribute_access(StringRef attribute_name)
static bool attribute_search_item_add(uiSearchItems *items, const GeometryAttributeInfo &item)
void attribute_search_add_items(StringRef str, bool can_create_attribute, Span< const nodes::geo_eval_log::GeometryAttributeInfo * > infos, uiSearchItems *items, bool is_first)
static StringRef attribute_domain_string(const bke::AttrDomain domain)
static StringRef attribute_data_type_string(const eCustomDataType type)
bool RNA_enum_name_from_value(const EnumPropertyItem *item, int value, const char **r_name)
const EnumPropertyItem rna_enum_attribute_domain_items[]
const EnumPropertyItem rna_enum_attribute_type_items[]
#define UI_MENU_ARROW_SEP
std::optional< bke::AttrDomain > domain
std::optional< bke::AttrType > data_type