[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [59903] trunk/blender/source/blender/ makesrna: wrap cursor setting so python can make use of it, eg:

Campbell Barton ideasman42 at gmail.com
Sat Sep 7 00:54:22 CEST 2013


Revision: 59903
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=59903
Author:   campbellbarton
Date:     2013-09-06 22:54:22 +0000 (Fri, 06 Sep 2013)
Log Message:
-----------
wrap cursor setting so python can make use of it, eg:
- win.cursor_set('WAIT')
- win.cursor_modal_set('TEXT')
- win.cursor_modal_restore()

Modified Paths:
--------------
    trunk/blender/source/blender/makesrna/RNA_enum_types.h
    trunk/blender/source/blender/makesrna/intern/rna_internal.h
    trunk/blender/source/blender/makesrna/intern/rna_wm.c
    trunk/blender/source/blender/makesrna/intern/rna_wm_api.c

Modified: trunk/blender/source/blender/makesrna/RNA_enum_types.h
===================================================================
--- trunk/blender/source/blender/makesrna/RNA_enum_types.h	2013-09-06 22:34:29 UTC (rev 59902)
+++ trunk/blender/source/blender/makesrna/RNA_enum_types.h	2013-09-06 22:54:22 UTC (rev 59903)
@@ -169,6 +169,8 @@
 extern EnumPropertyItem linestyle_thickness_modifier_type_items[];
 extern EnumPropertyItem linestyle_geometry_modifier_type_items[];
 
+extern EnumPropertyItem window_cursor_items[];
+
 struct bContext;
 struct PointerRNA;
 struct PropertyRNA;

Modified: trunk/blender/source/blender/makesrna/intern/rna_internal.h
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_internal.h	2013-09-06 22:34:29 UTC (rev 59902)
+++ trunk/blender/source/blender/makesrna/intern/rna_internal.h	2013-09-06 22:54:22 UTC (rev 59903)
@@ -278,6 +278,7 @@
 void RNA_api_sequence_strip(StructRNA *srna);
 void RNA_api_text(struct StructRNA *srna);
 void RNA_api_ui_layout(struct StructRNA *srna);
+void RNA_api_window(struct StructRNA *srna);
 void RNA_api_wm(struct StructRNA *srna);
 void RNA_api_sensor(struct StructRNA *srna);
 void RNA_api_controller(struct StructRNA *srna);

Modified: trunk/blender/source/blender/makesrna/intern/rna_wm.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_wm.c	2013-09-06 22:34:29 UTC (rev 59902)
+++ trunk/blender/source/blender/makesrna/intern/rna_wm.c	2013-09-06 22:54:22 UTC (rev 59903)
@@ -1735,6 +1735,8 @@
 	RNA_def_property_int_sdna(prop, NULL, "sizey");
 	RNA_def_property_clear_flag(prop, PROP_EDITABLE);
 	RNA_def_property_ui_text(prop, "Height", "Window height");
+
+	RNA_api_window(srna);
 }
 
 /* curve.splines */

Modified: trunk/blender/source/blender/makesrna/intern/rna_wm_api.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_wm_api.c	2013-09-06 22:34:29 UTC (rev 59902)
+++ trunk/blender/source/blender/makesrna/intern/rna_wm_api.c	2013-09-06 22:54:22 UTC (rev 59903)
@@ -41,8 +41,31 @@
 #include "DNA_space_types.h"
 #include "DNA_windowmanager_types.h"
 
+#include "wm_cursors.h"
+
 #include "rna_internal.h"  /* own include */
 
+/* confusingm 2 enums mixed up here */
+EnumPropertyItem window_cursor_items[] = {
+	{CURSOR_STD, "DEFAULT", 0, "Default", ""},
+	{CURSOR_NONE, "NONE", 0, "None", ""},
+	{CURSOR_WAIT, "WAIT", 0, "Wait", ""},
+	{CURSOR_EDIT, "CROSSHAIR", 0, "Crosshair", ""},
+	{CURSOR_X_MOVE, "MOVE_X", 0, "Move-X", ""},
+	{CURSOR_Y_MOVE, "MOVE_Y", 0, "Move-Y", ""},
+
+	/* new */
+	{BC_KNIFECURSOR, "KNIFE", 0, "Knife", ""},
+	{BC_TEXTEDITCURSOR, "TEXT", 0, "Text", ""},
+	{BC_PAINTBRUSHCURSOR, "PAINT_BRUSH", 0, "Paint Brush", ""},
+	{BC_HANDCURSOR, "HAND", 0, "Hand", ""},
+	{BC_EW_SCROLLCURSOR, "SCROLL_X", 0, "Scroll-X", ""},
+	{BC_NS_SCROLLCURSOR, "SCROLL_Y", 0, "Scroll-Y", ""},
+	{BC_NSEW_SCROLLCURSOR, "SCROLL_XY", 0, "Scroll-XY", ""},
+	{BC_EYEDROPPER_CURSOR, "EYEDROPPER", 0, "Eyedropper", ""},
+	{0, NULL, 0, NULL, NULL}
+};
+
 #ifdef RNA_RUNTIME
 
 #include "UI_interface.h"
@@ -299,6 +322,30 @@
 	}
 }
 
+void RNA_api_window(StructRNA *srna)
+{
+	FunctionRNA *func;
+	PropertyRNA *parm;
+
+	(void)func;
+	(void)parm;
+
+	func = RNA_def_function(srna, "cursor_set", "WM_cursor_set");
+	parm = RNA_def_property(func, "icon", PROP_ENUM, PROP_NONE);
+	RNA_def_property_enum_items(parm, window_cursor_items);
+	RNA_def_property_flag(parm, PROP_REQUIRED);
+	RNA_def_function_ui_description(func, "Set the cursor");
+
+	func = RNA_def_function(srna, "cursor_modal_set", "WM_cursor_modal_set");
+	parm = RNA_def_property(func, "icon", PROP_ENUM, PROP_NONE);
+	RNA_def_property_enum_items(parm, window_cursor_items);
+	RNA_def_property_flag(parm, PROP_REQUIRED);
+	RNA_def_function_ui_description(func, "Set the cursor, so the previous cursor can be restored");
+
+	RNA_def_function(srna, "cursor_modal_restore", "WM_cursor_modal_restore");
+	RNA_def_function_ui_description(func, "Restore the previous cursor after calling ``cursor_modal_set``");
+}
+
 void RNA_api_wm(StructRNA *srna)
 {
 	FunctionRNA *func;




More information about the Bf-blender-cvs mailing list