diff options
author | Campbell Barton <ideasman42@gmail.com> | 2018-11-18 22:14:20 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2018-11-18 22:27:17 +0300 |
commit | 074cd53c19311955031f88d2486ac475ba43f806 (patch) | |
tree | d83f1daaeb4e7a6aa6a6218a5d3009a6338ebaf6 /source/blender/blenkernel/intern/keyconfig.c | |
parent | 64920a8febde6df596fe7c8e62c570db2f29ab95 (diff) |
Keymap: move left click select to a preference
Diffstat (limited to 'source/blender/blenkernel/intern/keyconfig.c')
-rw-r--r-- | source/blender/blenkernel/intern/keyconfig.c | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/source/blender/blenkernel/intern/keyconfig.c b/source/blender/blenkernel/intern/keyconfig.c index 46b82569f47..755c9e1582d 100644 --- a/source/blender/blenkernel/intern/keyconfig.c +++ b/source/blender/blenkernel/intern/keyconfig.c @@ -29,15 +29,45 @@ #include "BLI_utildefines.h" #include "BLI_ghash.h" +#include "BLI_listbase.h" +#include "BLI_string.h" #include "DNA_listBase.h" +#include "DNA_userdef_types.h" +#include "DNA_windowmanager_types.h" #include "BKE_keyconfig.h" /* own include */ +#include "BKE_idprop.h" #include "MEM_guardedalloc.h" + +/* -------------------------------------------------------------------- */ +/** \name Key-Config Preference (UserDef) API + * + * \see #BKE_addon_pref_type_init for logic this is bases on. + * \{ */ + +wmKeyConfigPref *BKE_keyconfig_pref_ensure(UserDef *userdef, const char *kc_idname) +{ + wmKeyConfigPref *kpt = BLI_findstring( + &userdef->user_keyconfig_prefs, kc_idname, offsetof(wmKeyConfigPref, idname)); + if (kpt == NULL) { + kpt = MEM_callocN(sizeof(*kpt), __func__); + STRNCPY(kpt->idname, kc_idname); + BLI_addtail(&userdef->user_keyconfig_prefs, kpt); + } + if (kpt->prop == NULL) { + IDPropertyTemplate val = {0}; + kpt->prop = IDP_New(IDP_GROUP, &val, kc_idname); /* name is unimportant */ + } + return kpt; +} + +/** \} */ + /* -------------------------------------------------------------------- */ -/** \name Key-Config Preference API +/** \name Key-Config Preference (RNA Type) API * * \see #BKE_addon_pref_type_init for logic this is bases on. * \{ */ |