Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrecht Van Lommel <brechtvanlommel@pandora.be>2008-11-24 18:51:55 +0300
committerBrecht Van Lommel <brechtvanlommel@pandora.be>2008-11-24 18:51:55 +0300
commit2a8484bc24f0ac31bcc48c96d2ea12c03c257dab (patch)
treed4f39e9f940cb9f9ef49191794998463a1185a53 /source/blender/windowmanager
parent0c625e20ad070560ce4ea8fb78096a3119a8357e (diff)
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. • 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
Diffstat (limited to 'source/blender/windowmanager')
-rw-r--r--source/blender/windowmanager/intern/wm.c10
-rw-r--r--source/blender/windowmanager/intern/wm_event_system.c5
-rw-r--r--source/blender/windowmanager/intern/wm_operators.c14
3 files changed, 14 insertions, 15 deletions
diff --git a/source/blender/windowmanager/intern/wm.c b/source/blender/windowmanager/intern/wm.c
index 8a18cb71893..bc7f70d08ef 100644
--- a/source/blender/windowmanager/intern/wm.c
+++ b/source/blender/windowmanager/intern/wm.c
@@ -62,8 +62,8 @@ void wm_operator_free(wmOperator *op)
op->properties= NULL;
}
- if(op->rna)
- MEM_freeN(op->rna);
+ if(op->ptr)
+ MEM_freeN(op->ptr);
MEM_freeN(op);
}
@@ -74,9 +74,9 @@ void wm_operator_register(wmWindowManager *wm, wmOperator *op)
{
int tot;
- if(op->rna) {
- MEM_freeN(op->rna);
- op->rna= NULL;
+ if(op->ptr) {
+ MEM_freeN(op->ptr);
+ op->ptr= NULL;
}
BLI_addtail(&wm->operators, op);
diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c
index c10faa6cadf..061a784ea91 100644
--- a/source/blender/windowmanager/intern/wm_event_system.c
+++ b/source/blender/windowmanager/intern/wm_event_system.c
@@ -299,9 +299,8 @@ int WM_operator_invoke(bContext *C, wmOperatorType *ot, wmEvent *event)
op->type= ot;
- op->rna= MEM_callocN(sizeof(PointerRNA), "wmOperatorPtrRNA");
- op->rna->type= op->type->rna;
- op->rna->data= op;
+ op->ptr= MEM_callocN(sizeof(PointerRNA), "wmOperatorPtrRNA");
+ RNA_pointer_create(&RNA_WindowManager, &C->wm->id, ot->srna, op, op->ptr);
if(op->type->invoke)
retval= (*op->type->invoke)(C, op, event);
diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c
index 32800ff31dc..953965fd144 100644
--- a/source/blender/windowmanager/intern/wm_operators.c
+++ b/source/blender/windowmanager/intern/wm_operators.c
@@ -74,9 +74,9 @@ void WM_operatortype_append(void (*opfunc)(wmOperatorType*))
wmOperatorType *ot;
ot= MEM_callocN(sizeof(wmOperatorType), "operatortype");
- ot->rna= RNA_def_struct(&BLENDER_RNA, "", "Operator", "");
+ ot->srna= RNA_def_struct(&BLENDER_RNA, "", "Operator", "");
opfunc(ot);
- RNA_def_struct_identifier(ot->rna, ot->idname, ot->name);
+ RNA_def_struct_identifier(ot->srna, ot->idname, ot->name);
BLI_addtail(&global_ops, ot);
}
@@ -159,12 +159,12 @@ static void border_select_apply(bContext *C, wmOperator *op, int event_type)
rcti *rect= gesture->customdata;
/* operator arguments and storage. */
- RNA_int_default(op->rna, "xmin", rect->xmin);
- RNA_int_default(op->rna, "ymin", rect->ymin);
- RNA_int_default(op->rna, "xmax", rect->xmax);
- RNA_int_default(op->rna, "ymax", rect->ymax);
+ RNA_int_set(op->ptr, "xmin", rect->xmin);
+ RNA_int_set(op->ptr, "ymin", rect->ymin);
+ RNA_int_set(op->ptr, "xmax", rect->xmax);
+ RNA_int_set(op->ptr, "ymax", rect->ymax);
- RNA_int_default(op->rna, "event_type", event_type);
+ RNA_int_set(op->ptr, "event_type", event_type);
op->type->exec(C, op);
}