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. @@ _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs