[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [18215] branches/blender2.5/blender/source /blender: RNA
Brecht Van Lommel
brecht at blender.org
Thu Jan 1 16:52:53 CET 2009
Revision: 18215
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=18215
Author: blendix
Date: 2009-01-01 16:52:51 +0100 (Thu, 01 Jan 2009)
Log Message:
-----------
RNA
* Added support for sending notifiers and updates when setting
RNA properties. Per property, there is a notifier NC_/ND_ flag,
and a function that is called. Currently only used for
Object.loc/rot/size.
* RNA_property_update that does this is not automatically called
in every _set function, it has do be done separate, and is being
done by buttons with RNA data.
* Perhaps for python there could be a trick to accumulate these
flags rather than update each time, though for now the python
RNA code could just do them everytime. Did not add these calls
in the python code yet because it needs context, not sure where
to get that from?
Modified Paths:
--------------
branches/blender2.5/blender/source/blender/editors/interface/interface.c
branches/blender2.5/blender/source/blender/editors/interface/interface_handlers.c
branches/blender2.5/blender/source/blender/makesrna/RNA_access.h
branches/blender2.5/blender/source/blender/makesrna/RNA_define.h
branches/blender2.5/blender/source/blender/makesrna/SConscript
branches/blender2.5/blender/source/blender/makesrna/intern/CMakeLists.txt
branches/blender2.5/blender/source/blender/makesrna/intern/Makefile
branches/blender2.5/blender/source/blender/makesrna/intern/SConscript
branches/blender2.5/blender/source/blender/makesrna/intern/makesrna.c
branches/blender2.5/blender/source/blender/makesrna/intern/rna_ID.c
branches/blender2.5/blender/source/blender/makesrna/intern/rna_access.c
branches/blender2.5/blender/source/blender/makesrna/intern/rna_controller.c
branches/blender2.5/blender/source/blender/makesrna/intern/rna_define.c
branches/blender2.5/blender/source/blender/makesrna/intern/rna_fluidsim.c
branches/blender2.5/blender/source/blender/makesrna/intern/rna_internal_types.h
branches/blender2.5/blender/source/blender/makesrna/intern/rna_mesh.c
branches/blender2.5/blender/source/blender/makesrna/intern/rna_modifier.c
branches/blender2.5/blender/source/blender/makesrna/intern/rna_object.c
branches/blender2.5/blender/source/blender/makesrna/intern/rna_property.c
branches/blender2.5/blender/source/blender/makesrna/intern/rna_rna.c
branches/blender2.5/blender/source/blender/makesrna/intern/rna_sensor.c
branches/blender2.5/blender/source/blender/makesrna/intern/rna_sequence.c
branches/blender2.5/blender/source/blender/makesrna/intern/rna_wm.c
Modified: branches/blender2.5/blender/source/blender/editors/interface/interface.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/interface/interface.c 2009-01-01 14:57:04 UTC (rev 18214)
+++ branches/blender2.5/blender/source/blender/editors/interface/interface.c 2009-01-01 15:52:51 UTC (rev 18215)
@@ -1584,8 +1584,8 @@
value= ui_get_but_val(but);
if(ui_is_but_float(but)) {
- if(value == FLT_MAX) sprintf(but->drawstr, "%sFLT_MAX", but->str);
- else if(value == -FLT_MAX) sprintf(but->drawstr, "%s-FLT_MAX", but->str);
+ if(value == FLT_MAX) sprintf(but->drawstr, "%sinf", but->str);
+ else if(value == -FLT_MAX) sprintf(but->drawstr, "%s-inf", but->str);
else if(but->a2) { /* amount of digits defined */
if(but->a2==1) sprintf(but->drawstr, "%s%.1f", but->str, value);
else if(but->a2==2) sprintf(but->drawstr, "%s%.2f", but->str, value);
Modified: branches/blender2.5/blender/source/blender/editors/interface/interface_handlers.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/interface/interface_handlers.c 2009-01-01 14:57:04 UTC (rev 18214)
+++ branches/blender2.5/blender/source/blender/editors/interface/interface_handlers.c 2009-01-01 15:52:51 UTC (rev 18215)
@@ -148,6 +148,9 @@
const char *opname;
int opcontext;
IDProperty *opproperties;
+
+ PointerRNA rnapoin;
+ PropertyRNA *rnaprop;
} uiAfterFunc;
static void button_activate_state(bContext *C, uiBut *but, uiHandleButtonState state);
@@ -168,7 +171,7 @@
* handling is done, i.e. menus are closed, in order to avoid conflicts
* with these functions removing the buttons we are working with */
- if(but->func || block->handle_func || (but->type == BUTM && block->butm_func) || but->opname) {
+ if(but->func || block->handle_func || (but->type == BUTM && block->butm_func) || but->opname || but->rnaprop) {
after= MEM_callocN(sizeof(uiAfterFunc), "uiAfterFunc");
after->func= but->func;
@@ -189,6 +192,9 @@
after->opcontext= but->opcontext;
after->opproperties= but->opproperties;
+ after->rnapoin= but->rnapoin;
+ after->rnaprop= but->rnaprop;
+
but->opname= NULL;
but->opcontext= 0;
but->opproperties= NULL;
@@ -221,6 +227,9 @@
IDP_FreeProperty(after->opproperties);
MEM_freeN(after->opproperties);
}
+
+ if(after->rnapoin.data)
+ RNA_property_update(C, &after->rnapoin, after->rnaprop);
}
BLI_freelistN(&funcs);
Modified: branches/blender2.5/blender/source/blender/makesrna/RNA_access.h
===================================================================
--- branches/blender2.5/blender/source/blender/makesrna/RNA_access.h 2009-01-01 14:57:04 UTC (rev 18214)
+++ branches/blender2.5/blender/source/blender/makesrna/RNA_access.h 2009-01-01 15:52:51 UTC (rev 18215)
@@ -269,7 +269,7 @@
int RNA_property_editable(PointerRNA *ptr, PropertyRNA *prop);
int RNA_property_evaluated(PointerRNA *ptr, PropertyRNA *prop);
-void RNA_property_notify(PropertyRNA *prop, struct bContext *C, PointerRNA *ptr);
+void RNA_property_update(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop);
/* Property Data */
Modified: branches/blender2.5/blender/source/blender/makesrna/RNA_define.h
===================================================================
--- branches/blender2.5/blender/source/blender/makesrna/RNA_define.h 2009-01-01 14:57:04 UTC (rev 18214)
+++ branches/blender2.5/blender/source/blender/makesrna/RNA_define.h 2009-01-01 15:52:51 UTC (rev 18215)
@@ -44,10 +44,11 @@
void RNA_def_struct_sdna_from(StructRNA *srna, const char *structname, const char *propname);
void RNA_def_struct_name_property(StructRNA *srna, PropertyRNA *prop);
void RNA_def_struct_flag(StructRNA *srna, int flag);
-void RNA_def_struct_funcs(StructRNA *srna, const char *notify, const char *refine);
+void RNA_def_struct_refine_func(StructRNA *srna, const char *refine);
void RNA_def_struct_identifier(StructRNA *srna, const char *identifier);
void RNA_def_struct_ui_text(StructRNA *srna, const char *name, const char *description);
void RNA_struct_free(BlenderRNA *brna, StructRNA *srna);
+
/* Property */
PropertyRNA *RNA_def_property(StructRNA *srna, const char *identifier, int type, int subtype);
@@ -83,7 +84,9 @@
void RNA_def_property_ui_text(PropertyRNA *prop, const char *name, const char *description);
void RNA_def_property_ui_range(PropertyRNA *prop, double min, double max, double step, int precision);
-void RNA_def_property_funcs(PropertyRNA *prop, const char *notify, const char *editable);
+void RNA_def_property_update(PropertyRNA *prop, int noteflag, const char *updatefunc);
+void RNA_def_property_editable_func(PropertyRNA *prop, const char *editable);
+
void RNA_def_property_boolean_funcs(PropertyRNA *prop, const char *get, const char *set);
void RNA_def_property_int_funcs(PropertyRNA *prop, const char *get, const char *set, const char *range);
void RNA_def_property_float_funcs(PropertyRNA *prop, const char *get, const char *set, const char *range);
Modified: branches/blender2.5/blender/source/blender/makesrna/SConscript
===================================================================
--- branches/blender2.5/blender/source/blender/makesrna/SConscript 2009-01-01 14:57:04 UTC (rev 18214)
+++ branches/blender2.5/blender/source/blender/makesrna/SConscript 2009-01-01 15:52:51 UTC (rev 18215)
@@ -7,5 +7,6 @@
objs += o
incs = '#/intern/guardedalloc ../blenkernel ../blenlib ../makesdna intern .'
+incs += ' ../windowmanager'
env.BlenderLib ( 'bf_rna', objs, Split(incs), [], libtype=['core'], priority = [195] )
Modified: branches/blender2.5/blender/source/blender/makesrna/intern/CMakeLists.txt
===================================================================
--- branches/blender2.5/blender/source/blender/makesrna/intern/CMakeLists.txt 2009-01-01 14:57:04 UTC (rev 18214)
+++ branches/blender2.5/blender/source/blender/makesrna/intern/CMakeLists.txt 2009-01-01 15:52:51 UTC (rev 18215)
@@ -66,7 +66,7 @@
../../../../intern/guardedalloc/intern/mallocn.c
../../../../intern/guardedalloc/intern/mmap_win.c)
-INCLUDE_DIRECTORIES(../../../../intern/guardedalloc .. ../../makesdna ../../blenkernel ../../blenlib .)
+INCLUDE_DIRECTORIES(../../../../intern/guardedalloc .. ../../makesdna ../../blenkernel ../../blenlib ../../windowmanager .)
FILE(GLOB INC_FILES ../*.h ../../makesdna/*.h)
# Build makesrna executable
Modified: branches/blender2.5/blender/source/blender/makesrna/intern/Makefile
===================================================================
--- branches/blender2.5/blender/source/blender/makesrna/intern/Makefile 2009-01-01 14:57:04 UTC (rev 18214)
+++ branches/blender2.5/blender/source/blender/makesrna/intern/Makefile 2009-01-01 15:52:51 UTC (rev 18215)
@@ -34,6 +34,7 @@
CPPFLAGS += -I../../blenlib
CPPFLAGS += -I../../blenkernel
CPPFLAGS += -I../../makesdna
+CPPFLAGS += -I../../windowmanager
CPPFLAGS += -I..
CPPFLAGS += -I.
Modified: branches/blender2.5/blender/source/blender/makesrna/intern/SConscript
===================================================================
--- branches/blender2.5/blender/source/blender/makesrna/intern/SConscript 2009-01-01 14:57:04 UTC (rev 18214)
+++ branches/blender2.5/blender/source/blender/makesrna/intern/SConscript 2009-01-01 15:52:51 UTC (rev 18215)
@@ -3,7 +3,7 @@
import os
Import ('env')
-cflags = ''
+cflags = '-Wall'
defines = []
root_build_dir=env['BF_BUILDDIR']
@@ -22,7 +22,8 @@
'../../blenlib',
'../../blenkernel',
'../../makesdna',
- '../../makesrna'])
+ '../../makesrna',
+ '../../windowmanager'])
if env['OURPLATFORM'] == 'linuxcross':
makesrna_tool.Replace(CC='gcc')
Modified: branches/blender2.5/blender/source/blender/makesrna/intern/makesrna.c
===================================================================
--- branches/blender2.5/blender/source/blender/makesrna/intern/makesrna.c 2009-01-01 14:57:04 UTC (rev 18214)
+++ branches/blender2.5/blender/source/blender/makesrna/intern/makesrna.c 2009-01-01 15:52:51 UTC (rev 18215)
@@ -785,7 +785,7 @@
rna_print_c_string(f, prop->name); fprintf(f, ",\n\t");
rna_print_c_string(f, prop->description); fprintf(f, ",\n");
fprintf(f, "\t%s, %s, %d,\n", rna_property_typename(prop->type), rna_property_subtypename(prop->subtype), prop->arraylength);
- fprintf(f, "\t%s, %s},\n", rna_function_string(prop->notify), rna_function_string(prop->editable));
+ fprintf(f, "\t%s, %d, %s},\n", rna_function_string(prop->update), prop->noteflag, rna_function_string(prop->editable));
switch(prop->type) {
case PROP_BOOLEAN: {
@@ -876,7 +876,7 @@
if(srna->from) fprintf(f, "\t&RNA_%s,\n", (char*)srna->from);
else fprintf(f, "\tNULL,\n");
- fprintf(f, "\t%s, %s,\n", rna_function_string(srna->notify), rna_function_string(srna->refine));
+ fprintf(f, "\t%s,\n", rna_function_string(srna->refine));
prop= srna->properties.first;
if(prop) fprintf(f, "\t{(PropertyRNA*)&rna_%s_%s, ", srna->identifier, prop->identifier);
Modified: branches/blender2.5/blender/source/blender/makesrna/intern/rna_ID.c
===================================================================
--- branches/blender2.5/blender/source/blender/makesrna/intern/rna_ID.c 2009-01-01 14:57:04 UTC (rev 18214)
+++ branches/blender2.5/blender/source/blender/makesrna/intern/rna_ID.c 2009-01-01 15:52:51 UTC (rev 18215)
@@ -166,7 +166,7 @@
RNA_def_struct_ui_text(srna, "ID", "Used as a basis for dealing with many types with unique names, garbage collection and linked libraries");
RNA_def_struct_flag(srna, STRUCT_ID);
- RNA_def_struct_funcs(srna, NULL, "rna_ID_refine");
+ RNA_def_struct_refine_func(srna, "rna_ID_refine");
prop= RNA_def_property(srna, "name", PROP_STRING, PROP_NONE);
RNA_def_property_flag(prop, PROP_NOT_EDITABLE); /* must be unique */
Modified: branches/blender2.5/blender/source/blender/makesrna/intern/rna_access.c
===================================================================
--- branches/blender2.5/blender/source/blender/makesrna/intern/rna_access.c 2009-01-01 14:57:04 UTC (rev 18214)
+++ branches/blender2.5/blender/source/blender/makesrna/intern/rna_access.c 2009-01-01 15:52:51 UTC (rev 18215)
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list