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

Reply via email to