[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [17558] branches/blender2.5/blender/source /blender:

Brecht Van Lommel brecht at blender.org
Mon Nov 24 16:51:57 CET 2008


Revision: 17558
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=17558
Author:   blendix
Date:     2008-11-24 16:51:55 +0100 (Mon, 24 Nov 2008)

Log Message:
-----------

RNA
* Disable editable pointers for now, difficult to support well.
* Swap parameters in RNA_access.h functions to make it more
  consistent.
* Rename rna members for operators to wmOperatorType.srna, and
  wmOperator.ptr, to make the distincton a bit clearer.
?\226?\128?\162 Removed the RNA_int_default and similar functions, they're too
  confusing. RNA_property_is_set can still be used to achieve
  the same goal.
* Add functions to create RNA pointers.

Some example code for RNA data access and operator properties:
http://wiki.blender.org/index.php/BlenderDev/Blender2.5/RNAExampleCode

Modified Paths:
--------------
    branches/blender2.5/blender/source/blender/editors/interface/interface.c
    branches/blender2.5/blender/source/blender/editors/screen/screen_ops.c
    branches/blender2.5/blender/source/blender/editors/space_outliner/space_outliner.c
    branches/blender2.5/blender/source/blender/editors/space_time/time_ops.c
    branches/blender2.5/blender/source/blender/makesdna/DNA_windowmanager_types.h
    branches/blender2.5/blender/source/blender/makesrna/RNA_access.h
    branches/blender2.5/blender/source/blender/makesrna/RNA_types.h
    branches/blender2.5/blender/source/blender/makesrna/intern/SConscript
    branches/blender2.5/blender/source/blender/makesrna/intern/rna_access.c
    branches/blender2.5/blender/source/blender/makesrna/intern/rna_define.c
    branches/blender2.5/blender/source/blender/makesrna/intern/rna_dependency.c
    branches/blender2.5/blender/source/blender/makesrna/intern/rna_internal.h
    branches/blender2.5/blender/source/blender/makesrna/intern/rna_wm.c
    branches/blender2.5/blender/source/blender/windowmanager/intern/wm.c
    branches/blender2.5/blender/source/blender/windowmanager/intern/wm_event_system.c
    branches/blender2.5/blender/source/blender/windowmanager/intern/wm_operators.c

Modified: branches/blender2.5/blender/source/blender/editors/interface/interface.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/interface/interface.c	2008-11-24 14:18:01 UTC (rev 17557)
+++ branches/blender2.5/blender/source/blender/editors/interface/interface.c	2008-11-24 15:51:55 UTC (rev 17558)
@@ -1058,7 +1058,7 @@
 	if(but->pointype==FLO && but->poin)
 		return 1;
 	
-	if(but->rnaprop && RNA_property_type(but->rnaprop, &but->rnapoin) == PROP_FLOAT)
+	if(but->rnaprop && RNA_property_type(&but->rnapoin, but->rnaprop) == PROP_FLOAT)
 		return 1;
 	
 	return 0;
@@ -1075,27 +1075,27 @@
 	if(but->rnaprop) {
 		prop= but->rnaprop;
 
-		switch(RNA_property_type(prop, &but->rnapoin)) {
+		switch(RNA_property_type(&but->rnapoin, prop)) {
 			case PROP_BOOLEAN:
-				if(RNA_property_array_length(prop, &but->rnapoin))
-					value= RNA_property_boolean_get_array(prop, &but->rnapoin, but->rnaindex);
+				if(RNA_property_array_length(&but->rnapoin, prop))
+					value= RNA_property_boolean_get_array(&but->rnapoin, prop, but->rnaindex);
 				else
-					value= RNA_property_boolean_get(prop, &but->rnapoin);
+					value= RNA_property_boolean_get(&but->rnapoin, prop);
 				break;
 			case PROP_INT:
-				if(RNA_property_array_length(prop, &but->rnapoin))
-					value= RNA_property_int_get_array(prop, &but->rnapoin, but->rnaindex);
+				if(RNA_property_array_length(&but->rnapoin, prop))
+					value= RNA_property_int_get_array(&but->rnapoin, prop, but->rnaindex);
 				else
-					value= RNA_property_int_get(prop, &but->rnapoin);
+					value= RNA_property_int_get(&but->rnapoin, prop);
 				break;
 			case PROP_FLOAT:
-				if(RNA_property_array_length(prop, &but->rnapoin))
-					value= RNA_property_float_get_array(prop, &but->rnapoin, but->rnaindex);
+				if(RNA_property_array_length(&but->rnapoin, prop))
+					value= RNA_property_float_get_array(&but->rnapoin, prop, but->rnaindex);
 				else
-					value= RNA_property_float_get(prop, &but->rnapoin);
+					value= RNA_property_float_get(&but->rnapoin, prop);
 				break;
 			case PROP_ENUM:
-				value= RNA_property_enum_get(prop, &but->rnapoin);
+				value= RNA_property_enum_get(&but->rnapoin, prop);
 				break;
 			default:
 				value= 0.0;
@@ -1138,28 +1138,28 @@
 	if(but->rnaprop) {
 		prop= but->rnaprop;
 
-		if(RNA_property_editable(prop, &but->rnapoin)) {
-			switch(RNA_property_type(prop, &but->rnapoin)) {
+		if(RNA_property_editable(&but->rnapoin, prop)) {
+			switch(RNA_property_type(&but->rnapoin, prop)) {
 				case PROP_BOOLEAN:
-					if(RNA_property_array_length(prop, &but->rnapoin))
-						RNA_property_boolean_set_array(prop, &but->rnapoin, but->rnaindex, value);
+					if(RNA_property_array_length(&but->rnapoin, prop))
+						RNA_property_boolean_set_array(&but->rnapoin, prop, but->rnaindex, value);
 					else
-						RNA_property_boolean_set(prop, &but->rnapoin, value);
+						RNA_property_boolean_set(&but->rnapoin, prop, value);
 					break;
 				case PROP_INT:
-					if(RNA_property_array_length(prop, &but->rnapoin))
-						RNA_property_int_set_array(prop, &but->rnapoin, but->rnaindex, value);
+					if(RNA_property_array_length(&but->rnapoin, prop))
+						RNA_property_int_set_array(&but->rnapoin, prop, but->rnaindex, value);
 					else
-						RNA_property_int_set(prop, &but->rnapoin, value);
+						RNA_property_int_set(&but->rnapoin, prop, value);
 					break;
 				case PROP_FLOAT:
-					if(RNA_property_array_length(prop, &but->rnapoin))
-						RNA_property_float_set_array(prop, &but->rnapoin, but->rnaindex, value);
+					if(RNA_property_array_length(&but->rnapoin, prop))
+						RNA_property_float_set_array(&but->rnapoin, prop, but->rnaindex, value);
 					else
-						RNA_property_float_set(prop, &but->rnapoin, value);
+						RNA_property_float_set(&but->rnapoin, prop, value);
 					break;
 				case PROP_ENUM:
-					RNA_property_enum_set(prop, &but->rnapoin, value);
+					RNA_property_enum_set(&but->rnapoin, prop, value);
 					break;
 				default:
 					break;
@@ -1225,7 +1225,7 @@
 	if(but->rnaprop) {
 		char *buf;
 		
-		buf= RNA_property_string_get_alloc(but->rnaprop, &but->rnapoin, str, maxlen);
+		buf= RNA_property_string_get_alloc(&but->rnapoin, but->rnaprop, str, maxlen);
 
 		if(buf != str) {
 			/* string was too long, we have to truncate */
@@ -1241,7 +1241,7 @@
 void ui_set_but_string(uiBut *but, const char *str)
 {
 	if(but->rnaprop)
-		RNA_property_string_set(but->rnaprop, &but->rnapoin, str);
+		RNA_property_string_set(&but->rnapoin, but->rnaprop, str);
 	else
 		BLI_strncpy(but->poin, str, but->max);
 }
@@ -2237,32 +2237,32 @@
 {
 	uiBut *but;
 
-	switch(RNA_property_type(prop, ptr)) {
+	switch(RNA_property_type(ptr, prop)) {
 		case PROP_BOOLEAN: {
 			int value, length;
 
-			length= RNA_property_array_length(prop, ptr);
+			length= RNA_property_array_length(ptr, prop);
 
 			if(length)
-				value= RNA_property_boolean_get_array(prop, ptr, index);
+				value= RNA_property_boolean_get_array(ptr, prop, index);
 			else
-				value= RNA_property_boolean_get(prop, ptr);
+				value= RNA_property_boolean_get(ptr, prop);
 
-			but= ui_def_but(block, TOG, 0, (value)? "True": "False", x1, y1, x2, y2, NULL, 0, 0, 0, 0, (char*)RNA_property_ui_description(prop, ptr));
+			but= ui_def_but(block, TOG, 0, (value)? "True": "False", x1, y1, x2, y2, NULL, 0, 0, 0, 0, (char*)RNA_property_ui_description(ptr, prop));
 			break;
 		}
 		case PROP_INT: {
 			int softmin, softmax, step;
 
-			RNA_property_int_ui_range(prop, ptr, &softmin, &softmax, &step);
-			but= ui_def_but(block, NUM, 0, "", x1, y1, x2, y2, NULL, softmin, softmax, step, 0, (char*)RNA_property_ui_description(prop, ptr));
+			RNA_property_int_ui_range(ptr, prop, &softmin, &softmax, &step);
+			but= ui_def_but(block, NUM, 0, "", x1, y1, x2, y2, NULL, softmin, softmax, step, 0, (char*)RNA_property_ui_description(ptr, prop));
 			break;
 		}
 		case PROP_FLOAT: {
 			float softmin, softmax, step, precision;
 
-			RNA_property_float_ui_range(prop, ptr, &softmin, &softmax, &step, &precision);
-			but= ui_def_but(block, NUM, 0, "", x1, y1, x2, y2, NULL, softmin, softmax, step, precision, (char*)RNA_property_ui_description(prop, ptr));
+			RNA_property_float_ui_range(ptr, prop, &softmin, &softmax, &step, &precision);
+			but= ui_def_but(block, NUM, 0, "", x1, y1, x2, y2, NULL, softmin, softmax, step, precision, (char*)RNA_property_ui_description(ptr, prop));
 			break;
 		}
 		case PROP_ENUM: {
@@ -2271,28 +2271,28 @@
 			char *menu;
 			int i, totitem;
 
-			RNA_property_enum_items(prop, ptr, &item, &totitem);
+			RNA_property_enum_items(ptr, prop, &item, &totitem);
 
 			dynstr= BLI_dynstr_new();
-			BLI_dynstr_appendf(dynstr, "%s%%t", RNA_property_ui_name(prop, ptr));
+			BLI_dynstr_appendf(dynstr, "%s%%t", RNA_property_ui_name(ptr, prop));
 			for(i=0; i<totitem; i++)
 				BLI_dynstr_appendf(dynstr, "|%s %%x%d", item[i].name, item[i].value);
 			menu= BLI_dynstr_get_cstring(dynstr);
 			BLI_dynstr_free(dynstr);
 
-			but= ui_def_but(block, MENU, 0, menu, x1, y1, x2, y2, NULL, 0, 0, 0, 0, (char*)RNA_property_ui_description(prop, ptr));
+			but= ui_def_but(block, MENU, 0, menu, x1, y1, x2, y2, NULL, 0, 0, 0, 0, (char*)RNA_property_ui_description(ptr, prop));
 			MEM_freeN(menu);
 			break;
 		}
 		case PROP_STRING: {
 			int maxlength;
 
-			maxlength= RNA_property_string_maxlength(prop, ptr);
+			maxlength= RNA_property_string_maxlength(ptr, prop);
 			if(maxlength == 0)
 				/* interface code should ideally support unlimited length */
 				maxlength= UI_MAX_DRAW_STR; 
 
-			but= ui_def_but(block, TEX, 0, "", x1, y1, x2, y2, NULL, 0, maxlength, 0, 0, (char*)RNA_property_ui_description(prop, ptr));
+			but= ui_def_but(block, TEX, 0, "", x1, y1, x2, y2, NULL, 0, maxlength, 0, 0, (char*)RNA_property_ui_description(ptr, prop));
 			break;
 		}
 		case PROP_POINTER: {
@@ -2300,17 +2300,17 @@
 			PropertyRNA *nameprop;
 			char name[256]= "", *nameptr= name;
 
-			RNA_property_pointer_get(prop, ptr, &pptr);
+			RNA_property_pointer_get(ptr, prop, &pptr);
 
 			if(pptr.data) {
 				nameprop= RNA_struct_name_property(&pptr);
 				if(pptr.type && nameprop)
-					nameptr= RNA_property_string_get_alloc(nameprop, &pptr, name, sizeof(name));
+					nameptr= RNA_property_string_get_alloc(&pptr, nameprop, name, sizeof(name));
 				else
 					strcpy(nameptr, "->");
 			}
 
-			but= ui_def_but(block, BUT, 0, nameptr, x1, y1, x2, y2, NULL, 0, 0, 0, 0, (char*)RNA_property_ui_description(prop, ptr));
+			but= ui_def_but(block, BUT, 0, nameptr, x1, y1, x2, y2, NULL, 0, 0, 0, 0, (char*)RNA_property_ui_description(ptr, prop));
 			but->flag |= UI_TEXT_LEFT;
 
 			if(nameptr != name)

Modified: branches/blender2.5/blender/source/blender/editors/screen/screen_ops.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/screen/screen_ops.c	2008-11-24 14:18:01 UTC (rev 17557)
+++ branches/blender2.5/blender/source/blender/editors/screen/screen_ops.c	2008-11-24 15:51:55 UTC (rev 17558)
@@ -466,8 +466,8 @@
 	int x, y;
 
 	/* required properties */
-	x= RNA_int_get(op->rna, "x");
-	y= RNA_int_get(op->rna, "y");
+	x= RNA_int_get(op->ptr, "x");
+	y= RNA_int_get(op->ptr, "y");
 
 	/* setup */
 	actedge= screen_find_active_scredge(C->screen, x, y);
@@ -523,7 +523,7 @@
 	sAreaMoveData *md= op->customdata;
 	int delta;
 	
-	delta= RNA_int_get(op->rna, "delta");
+	delta= RNA_int_get(op->ptr, "delta");
 	area_move_apply_do(C, md->origval, delta, md->dir, md->bigger, md->smaller);
 }
 
@@ -552,8 +552,8 @@
 /* interaction callback */
 static int area_move_invoke(bContext *C, wmOperator *op, wmEvent *event)
 {
-	RNA_int_default(op->rna, "x", event->x);
-	RNA_int_default(op->rna, "y", event->y);
+	RNA_int_set(op->ptr, "x", event->x);
+	RNA_int_set(op->ptr, "y", event->y);
 
 	if(!area_move_init(C, op)) 
 		return OPERATOR_PASS_THROUGH;
@@ -568,7 +568,7 @@
 {
 	WM_event_remove_modal_handler(&C->window->handlers, op);				
 
-	RNA_int_set(op->rna, "delta", 0);
+	RNA_int_set(op->ptr, "delta", 0);
 	area_move_apply(C, op);
 	area_move_exit(C, op);
 
@@ -583,14 +583,14 @@
 
 	md= op->customdata;
 
-	x= RNA_int_get(op->rna, "x");
-	y= RNA_int_get(op->rna, "y");
+	x= RNA_int_get(op->ptr, "x");
+	y= RNA_int_get(op->ptr, "y");
 
 	/* execute the events */
 	switch(event->type) {
 		case MOUSEMOVE:
 			delta= (md->dir == 'v')? event->x - x: event->y - y;
-			RNA_int_set(op->rna, "delta", delta);

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list