[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [31565] trunk/blender/source/blender/ makesrna/intern/rna_wm.c: bpy.context.manager.clipboard get/set function ( to get/set the Clipboard from a script)

Dalai Felinto dfelinto at gmail.com
Wed Aug 25 05:44:36 CEST 2010


Revision: 31565
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=31565
Author:   dfelinto
Date:     2010-08-25 05:44:13 +0200 (Wed, 25 Aug 2010)

Log Message:
-----------
bpy.context.manager.clipboard get/set function (to get/set the Clipboard from a script)
Thanks Campbell - one day I get used to C pointer management hell :)

* when using it to get, the whole string comes in one single line with Linux EOL (\n)
* works only for text

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	2010-08-25 02:58:40 UTC (rev 31564)
+++ trunk/blender/source/blender/makesrna/intern/rna_wm.c	2010-08-25 03:44:13 UTC (rev 31565)
@@ -612,6 +612,33 @@
 		return 0;
 }
 
+static void rna_wmClipboard_get(PointerRNA *ptr, char *value)
+{
+	char *pbuf;
+
+	pbuf= WM_clipboard_text_get(FALSE);
+	strcpy(value, pbuf);
+
+	MEM_freeN(pbuf);
+}
+
+static int rna_wmClipboard_length(PointerRNA *ptr)
+{
+	char *clipboard;
+	int length;
+
+	clipboard = WM_clipboard_text_get(FALSE);
+	length = (clipboard?strlen(clipboard):0);
+	MEM_freeN(clipboard);
+
+	return length;
+}
+
+static void rna_wmClipboard_set(PointerRNA *ptr, const char *value)
+{
+	WM_clipboard_text_set((void *) value, FALSE);
+}
+
 #ifndef DISABLE_PYTHON
 static void rna_Operator_unregister(const bContext *C, StructRNA *type)
 {
@@ -1299,6 +1326,10 @@
 	RNA_def_property_ui_text(prop, "Key Configurations", "Registered key configurations");
 	rna_def_wm_keyconfigs(brna, prop);
 
+	prop= RNA_def_property(srna, "clipboard", PROP_STRING, PROP_NONE);
+	RNA_def_property_string_funcs(prop, "rna_wmClipboard_get", "rna_wmClipboard_length", "rna_wmClipboard_set");
+	RNA_def_property_ui_text(prop, "Text Clipboard", "");
+
 	RNA_api_wm(srna);
 }
 





More information about the Bf-blender-cvs mailing list