43 if (kpt->
prop ==
nullptr) {
72 printf(
"search for unknown keyconfig-pref '%s'\n", idname);
77 printf(
"search for empty keyconfig-pref\n");
128 MEM_delete(kmi->
ptr);
155 kmdi_next = kmdi->next;
159 if (kmdi->add_item) {
160 if (filter_fn(kmdi->add_item, user_data)) {
167 if (kmdi->remove_item) {
168 if (filter_fn(kmdi->remove_item, user_data)) {
185 kmi_next = kmi->
next;
186 if (filter_fn(kmi, user_data)) {
IDProperty * IDP_GetPropertyFromGroup(const IDProperty *prop, blender::StringRef name) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
void IDP_FreeProperty(IDProperty *prop)
bool IDP_AddToGroup(IDProperty *group, IDProperty *prop) ATTR_NONNULL()
void BKE_keyconfig_pref_type_init(void)
void BKE_keyconfig_pref_type_free(void)
void BKE_keyconfig_pref_filter_items(struct UserDef *userdef, const struct wmKeyConfigFilterItemParams *params, bool(*filter_fn)(struct wmKeyMapItem *kmi, void *user_data), void *user_data)
void BKE_keyconfig_pref_type_add(struct wmKeyConfigPrefType_Runtime *kpt_rt)
void BKE_keyconfig_pref_type_remove(const struct wmKeyConfigPrefType_Runtime *kpt_rt)
struct wmKeyConfigPref * BKE_keyconfig_pref_ensure(struct UserDef *userdef, const char *kc_idname)
void BKE_keyconfig_keymap_filter_item(struct wmKeyMap *keymap, const struct wmKeyConfigFilterItemParams *params, bool(*filter_fn)(struct wmKeyMapItem *kmi, void *user_data), void *user_data)
struct wmKeyConfigPrefType_Runtime wmKeyConfigPrefType_Runtime
void BKE_keyconfig_pref_set_select_mouse(struct UserDef *userdef, int value, bool override)
struct wmKeyConfigPrefType_Runtime * BKE_keyconfig_pref_type_find(const char *idname, bool quiet)
GHash * BLI_ghash_str_new(const char *info) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT
bool BLI_ghash_remove(GHash *gh, const void *key, GHashKeyFreeFP keyfreefp, GHashValFreeFP valfreefp)
void * BLI_ghash_lookup(const GHash *gh, const void *key) ATTR_WARN_UNUSED_RESULT
void BLI_ghash_insert(GHash *gh, void *key, void *val)
void BLI_ghash_free(GHash *gh, GHashKeyFreeFP keyfreefp, GHashValFreeFP valfreefp)
#define LISTBASE_FOREACH(type, var, list)
void * BLI_findstring(const ListBase *listbase, const char *id, int offset) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
void BLI_addtail(ListBase *listbase, void *vlink) ATTR_NONNULL(1)
void BLI_remlink(ListBase *listbase, void *vlink) ATTR_NONNULL(1)
char * STRNCPY(char(&dst)[N], const char *src)
These structs are the foundation for all linked lists in the library system.
#define WM_KEYCONFIG_STR_DEFAULT
Read Guarded memory(de)allocation.
static void keymap_item_free(wmKeyMapItem *kmi)
static void keymap_diff_item_free(wmKeyMapDiffItem *kmdi)
static GHash * global_keyconfigpreftype_hash
void * MEM_callocN(size_t len, const char *str)
void MEM_freeN(void *vmemh)
std::unique_ptr< IDProperty, IDPropertyDeleter > create(StringRef prop_name, int32_t value, eIDPropertyFlag flags={})
Allocate a new IDProperty of type IDP_INT, set its name and value.
std::unique_ptr< IDProperty, IDPropertyDeleter > create_group(StringRef prop_name, eIDPropertyFlag flags={})
Allocate a new IDProperty of type IDP_GROUP.
struct ListBase user_keymaps
struct ListBase user_keyconfig_prefs
uint check_diff_item_remove
wmKeyMapItem * remove_item
struct wmKeyMapItem * next