44 if (kpt->
prop ==
nullptr) {
73 printf(
"search for unknown keyconfig-pref '%s'\n", idname);
78 printf(
"search for empty keyconfig-pref\n");
129 MEM_delete(kmi->
ptr);
150 if (
params->check_diff_item_add ||
params->check_diff_item_remove) {
156 kmdi_next = kmdi->next;
159 if (
params->check_diff_item_add) {
160 if (kmdi->add_item) {
161 if (filter_fn(kmdi->add_item, user_data)) {
167 if (!remove &&
params->check_diff_item_remove) {
168 if (kmdi->remove_item) {
169 if (filter_fn(kmdi->remove_item, user_data)) {
186 kmi_next = kmi->
next;
187 if (filter_fn(kmi, user_data)) {
IDProperty * IDP_GetPropertyFromGroup(const IDProperty *prop, const char *name) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
void IDP_FreeProperty(IDProperty *prop)
bool IDP_AddToGroup(IDProperty *group, IDProperty *prop) ATTR_NONNULL()
struct wmKeyConfigPrefType_Runtime wmKeyConfigPrefType_Runtime
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)
void * BLI_findstring(const struct ListBase *listbase, const char *id, int offset) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
#define LISTBASE_FOREACH(type, var, list)
void BLI_addtail(struct ListBase *listbase, void *vlink) ATTR_NONNULL(1)
void BLI_remlink(struct ListBase *listbase, void *vlink) ATTR_NONNULL(1)
#define STRNCPY(dst, src)
These structs are the foundation for all linked lists in the library system.
#define WM_KEYCONFIG_STR_DEFAULT
Read Guarded memory(de)allocation.
void BKE_keyconfig_pref_filter_items(UserDef *userdef, const wmKeyConfigFilterItemParams *params, bool(*filter_fn)(wmKeyMapItem *kmi, void *user_data), void *user_data)
wmKeyConfigPref * BKE_keyconfig_pref_ensure(UserDef *userdef, const char *kc_idname)
wmKeyConfigPrefType_Runtime * BKE_keyconfig_pref_type_find(const char *idname, bool quiet)
void BKE_keyconfig_pref_type_remove(const wmKeyConfigPrefType_Runtime *kpt_rt)
void BKE_keyconfig_pref_type_init()
void BKE_keyconfig_pref_set_select_mouse(UserDef *userdef, int value, bool override)
void BKE_keyconfig_pref_type_free()
static void keymap_diff_item_free(wmKeyMapDiffItem *kmdi)
static GHash * global_keyconfigpreftype_hash
static void keymap_item_free(wmKeyMapItem *kmi)
void BKE_keyconfig_keymap_filter_item(wmKeyMap *keymap, const wmKeyConfigFilterItemParams *params, bool(*filter_fn)(wmKeyMapItem *kmi, void *user_data), void *user_data)
void BKE_keyconfig_pref_type_add(wmKeyConfigPrefType_Runtime *kpt_rt)
void MEM_freeN(void *vmemh)
void *(* MEM_callocN)(size_t len, const char *str)
std::unique_ptr< IDProperty, IDPropertyDeleter > create(StringRefNull 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(StringRefNull prop_name, eIDPropertyFlag flags={})
Allocate a new IDProperty of type IDP_GROUP.
struct ListBase user_keymaps
struct ListBase user_keyconfig_prefs
wmKeyMapItem * remove_item
struct wmKeyMapItem * next