[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [41215] trunk/blender/source/blender/ makesrna/intern/rna_wm.c: rna access to event. unicode so scripts can get unicode text input.

Campbell Barton ideasman42 at gmail.com
Sun Oct 23 09:03:57 CEST 2011


Revision: 41215
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=41215
Author:   campbellbarton
Date:     2011-10-23 07:03:57 +0000 (Sun, 23 Oct 2011)
Log Message:
-----------
rna access to event.unicode so scripts can get unicode text input.

Modified Paths:
--------------
    trunk/blender/source/blender/makesrna/intern/rna_wm.c

Modified: trunk/blender/source/blender/makesrna/intern/rna_wm.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_wm.c	2011-10-23 06:56:39 UTC (rev 41214)
+++ trunk/blender/source/blender/makesrna/intern/rna_wm.c	2011-10-23 07:03:57 UTC (rev 41215)
@@ -471,6 +471,36 @@
 	return (event->ascii)? 1 : 0;
 }
 
+static void rna_Event_unicode_get(PointerRNA *ptr, char *value)
+{
+	/* utf8 buf isnt \0 terminated */
+	wmEvent *event= (wmEvent*)ptr->data;
+	size_t len= 0;
+
+	if (event->utf8_buf[0]) {
+		BLI_str_utf8_as_unicode_and_size(event->utf8_buf, &len);
+		if (len > 0) {
+			memcpy(value, event->utf8_buf, len);
+		}
+	}
+
+	value[len]= '\0';
+}
+
+static int rna_Event_unicode_length(PointerRNA *ptr)
+{
+
+	wmEvent *event= (wmEvent*)ptr->data;
+	if (event->utf8_buf[0]) {
+		size_t len= 0;
+		BLI_str_utf8_as_unicode_and_size(event->utf8_buf, &len);
+		return (int)len;
+	}
+	else {
+		return 0;
+	}
+}
+
 static void rna_Window_screen_set(PointerRNA *ptr, PointerRNA value)
 {
 	wmWindow *win= (wmWindow*)ptr->data;
@@ -1358,6 +1388,11 @@
 	RNA_def_property_ui_text(prop, "ASCII", "Single ASCII character for this event");
 
 
+	prop= RNA_def_property(srna, "unicode", PROP_STRING, PROP_NONE);
+	RNA_def_property_clear_flag(prop, PROP_EDITABLE);
+	RNA_def_property_string_funcs(prop, "rna_Event_unicode_get", "rna_Event_unicode_length", NULL);
+	RNA_def_property_ui_text(prop, "Unicode", "Single unicode character for this event");
+
 	/* enums */
 	prop= RNA_def_property(srna, "value", PROP_ENUM, PROP_NONE);
 	RNA_def_property_enum_sdna(prop, NULL, "val");




More information about the Bf-blender-cvs mailing list