[Bf-blender-cvs] [7ce38978aea] master: WM: add tool property getter function

Campbell Barton noreply at git.blender.org
Wed Jan 23 05:37:04 CET 2019


Commit: 7ce38978aea12bd912f46eed836f8210ec0cf03e
Author: Campbell Barton
Date:   Wed Jan 23 15:36:10 2019 +1100
Branches: master
https://developer.blender.org/rB7ce38978aea12bd912f46eed836f8210ec0cf03e

WM: add tool property getter function

Matches 'ensure' functions but doesn't add data.

===================================================================

M	source/blender/windowmanager/WM_toolsystem.h
M	source/blender/windowmanager/intern/wm_toolsystem.c

===================================================================

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)
 {



More information about the Bf-blender-cvs mailing list