From 7ce38978aea12bd912f46eed836f8210ec0cf03e Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 23 Jan 2019 15:36:10 +1100 Subject: WM: add tool property getter function Matches 'ensure' functions but doesn't add data. --- source/blender/windowmanager/WM_toolsystem.h | 11 +++++++++-- source/blender/windowmanager/intern/wm_toolsystem.c | 7 +++++++ 2 files changed, 16 insertions(+), 2 deletions(-) (limited to 'source') 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) { -- cgit v1.2.3