diff options
author | Campbell Barton <ideasman42@gmail.com> | 2019-01-23 07:36:10 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2019-01-23 07:36:10 +0300 |
commit | 7ce38978aea12bd912f46eed836f8210ec0cf03e (patch) | |
tree | 4db374454b5f8c7e8f9a93a7782f477fff1a6fce /source/blender/windowmanager | |
parent | 2e4f1b592f7d1b63ec012528997fab64f16c0416 (diff) |
WM: add tool property getter function
Matches 'ensure' functions but doesn't add data.
Diffstat (limited to 'source/blender/windowmanager')
-rw-r--r-- | source/blender/windowmanager/WM_toolsystem.h | 11 | ||||
-rw-r--r-- | source/blender/windowmanager/intern/wm_toolsystem.c | 7 |
2 files changed, 16 insertions, 2 deletions
diff --git a/source/blender/windowmanager/WM_toolsystem.h b/source/blender/windowmanager/WM_toolsystem.h index 4318179c203..5c6dc6d7cbe 100644 --- a/source/blender/windowmanager/WM_toolsystem.h +++ b/source/blender/windowmanager/WM_toolsystem.h @@ -103,8 +103,15 @@ void WM_toolsystem_ref_properties_ensure_ex( #define WM_toolsystem_ref_properties_ensure_from_operator(tref, ot, r_ptr) \ WM_toolsystem_ref_properties_ensure_ex(tref, (ot)->idname, (ot)->srna, r_ptr) -#define WM_toolsystem_ref_properties_ensure_from_gizmo_group(tref, ot, r_ptr) \ - WM_toolsystem_ref_properties_ensure_ex(tref, (ot)->idname, (ot)->srna, r_ptr) +#define WM_toolsystem_ref_properties_ensure_from_gizmo_group(tref, gzgroup, r_ptr) \ + WM_toolsystem_ref_properties_ensure_ex(tref, (gzgroup)->idname, (gzgroup)->srna, r_ptr) + +bool WM_toolsystem_ref_properties_get_ex( + struct bToolRef *tref, const char *idname, struct StructRNA *type, struct PointerRNA *r_ptr); +#define WM_toolsystem_ref_properties_get_from_operator(tref, ot, r_ptr) \ + WM_toolsystem_ref_properties_get_ex(tref, (ot)->idname, (ot)->srna, r_ptr) +#define WM_toolsystem_ref_properties_get_from_gizmo_group(tref, gzgroup, r_ptr) \ + WM_toolsystem_ref_properties_get_ex(tref, (gzgroup)->idname, (gzgroup)->srna, r_ptr) void WM_toolsystem_ref_properties_init_for_keymap( struct bToolRef *tref, struct PointerRNA *dst_ptr, struct PointerRNA *src_ptr, struct wmOperatorType *ot); diff --git a/source/blender/windowmanager/intern/wm_toolsystem.c b/source/blender/windowmanager/intern/wm_toolsystem.c index 3bef4e3482a..c6aa571b92a 100644 --- a/source/blender/windowmanager/intern/wm_toolsystem.c +++ b/source/blender/windowmanager/intern/wm_toolsystem.c @@ -897,6 +897,13 @@ IDProperty *WM_toolsystem_ref_properties_ensure_idprops(bToolRef *tref) return tref->properties; } +bool WM_toolsystem_ref_properties_get_ex(bToolRef *tref, const char *idname, StructRNA *type, PointerRNA *r_ptr) +{ + IDProperty *group = tref->properties; + IDProperty *prop = group ? IDP_GetPropertyFromGroup(group, idname) : NULL; + RNA_pointer_create(NULL, type, prop, r_ptr); + return (prop != NULL); +} void WM_toolsystem_ref_properties_ensure_ex(bToolRef *tref, const char *idname, StructRNA *type, PointerRNA *r_ptr) { |