[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [24920] trunk/blender/source/blender/ makesrna/intern/rna_ui_api.c: allow accessing an array index from an rna button.

Campbell Barton ideasman42 at gmail.com
Thu Nov 26 16:03:56 CET 2009


Revision: 24920
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=24920
Author:   campbellbarton
Date:     2009-11-26 16:03:55 +0100 (Thu, 26 Nov 2009)

Log Message:
-----------
allow accessing an array index from an rna button.

 col.prop(ob, "location", index=1) # would edit the Y axis

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

Modified: trunk/blender/source/blender/makesrna/intern/rna_ui_api.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_ui_api.c	2009-11-26 13:36:15 UTC (rev 24919)
+++ trunk/blender/source/blender/makesrna/intern/rna_ui_api.c	2009-11-26 15:03:55 UTC (rev 24920)
@@ -37,18 +37,24 @@
 
 #ifdef RNA_RUNTIME
 
-static void rna_uiItemR(uiLayout *layout, char *name, int icon, PointerRNA *ptr, char *propname, int expand, int slider, int toggle, int icon_only, int event, int full_event)
+static void rna_uiItemR(uiLayout *layout, char *name, int icon, PointerRNA *ptr, char *propname, int expand, int slider, int toggle, int icon_only, int event, int full_event, int index)
 {
+	PropertyRNA *prop= RNA_struct_find_property(ptr, propname);
 	int flag= 0;
 
+	if(!prop) {
+		printf("rna_uiItemR: property not found: %s\n", propname);
+		return;
+	}
+
 	flag |= (slider)? UI_ITEM_R_SLIDER: 0;
 	flag |= (expand)? UI_ITEM_R_EXPAND: 0;
 	flag |= (toggle)? UI_ITEM_R_TOGGLE: 0;
 	flag |= (icon_only)? UI_ITEM_R_ICON_ONLY: 0;
 	flag |= (event)? UI_ITEM_R_EVENT: 0;
 	flag |= (full_event)? UI_ITEM_R_FULL_EVENT: 0;
-	
-	uiItemR(layout, name, icon, ptr, propname, flag);
+
+	uiItemFullR(layout, name, icon, ptr, prop, index, 0, flag);
 }
 
 static PointerRNA rna_uiItemO(uiLayout *layout, char *name, int icon, char *opname)
@@ -150,6 +156,7 @@
 	RNA_def_boolean(func, "icon_only", 0, "", "Draw only icons in buttons, no text.");
 	RNA_def_boolean(func, "event", 0, "", "Use button to input key events.");
 	RNA_def_boolean(func, "full_event", 0, "", "Use button to input full events including modifiers.");
+	RNA_def_int(func, "index", -1, -2, INT_MAX, "", "The index of this button, when set a single member of an array can be accessed, when set to -1 all array members are used.", -2, INT_MAX); /* RNA_NO_INDEX == -1 */
 
 	func= RNA_def_function(srna, "props_enum", "uiItemsEnumR");
 	api_ui_item_rna_common(func);





More information about the Bf-blender-cvs mailing list