[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [23847] trunk/blender/source/blender: RNA:
Brecht Van Lommel
brecht at blender.org
Wed Oct 14 21:19:44 CEST 2009
Revision: 23847
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=23847
Author: blendix
Date: 2009-10-14 21:19:43 +0200 (Wed, 14 Oct 2009)
Log Message:
-----------
RNA:
* Enums with an _itemf callback now never get context NULL passed in,
rather a fixed list of enum items are defined which should contain
all items (if possible), from which the _itemf callback can then use
a subset.
Modified Paths:
--------------
trunk/blender/source/blender/editors/armature/poselib.c
trunk/blender/source/blender/editors/mesh/editmesh_mods.c
trunk/blender/source/blender/editors/mesh/editmesh_tools.c
trunk/blender/source/blender/editors/object/object_add.c
trunk/blender/source/blender/editors/object/object_group.c
trunk/blender/source/blender/editors/object/object_modifier.c
trunk/blender/source/blender/editors/object/object_vgroup.c
trunk/blender/source/blender/makesrna/intern/rna_access.c
trunk/blender/source/blender/makesrna/intern/rna_constraint.c
trunk/blender/source/blender/makesrna/intern/rna_define.c
trunk/blender/source/blender/makesrna/intern/rna_image.c
trunk/blender/source/blender/makesrna/intern/rna_material.c
trunk/blender/source/blender/makesrna/intern/rna_object.c
trunk/blender/source/blender/makesrna/intern/rna_object_force.c
trunk/blender/source/blender/makesrna/intern/rna_particle.c
trunk/blender/source/blender/makesrna/intern/rna_rna.c
trunk/blender/source/blender/makesrna/intern/rna_sculpt_paint.c
trunk/blender/source/blender/makesrna/intern/rna_space.c
trunk/blender/source/blender/makesrna/intern/rna_texture.c
Modified: trunk/blender/source/blender/editors/armature/poselib.c
===================================================================
--- trunk/blender/source/blender/editors/armature/poselib.c 2009-10-14 18:51:00 UTC (rev 23846)
+++ trunk/blender/source/blender/editors/armature/poselib.c 2009-10-14 19:19:43 UTC (rev 23847)
@@ -432,9 +432,6 @@
int totitem= 0;
int i= 0;
- if (C == NULL)
- return NULL;
-
memset(&item_tmp, 0, sizeof(item_tmp));
/* check that the action exists */
@@ -448,12 +445,10 @@
}
}
- if (i > 0) {
- *free= 1;
- return item;
- }
- else
- return NULL;
+ RNA_enum_item_end(&item, &totitem);
+ *free= 1;
+
+ return item;
}
static int poselib_remove_exec (bContext *C, wmOperator *op)
Modified: trunk/blender/source/blender/editors/mesh/editmesh_mods.c
===================================================================
--- trunk/blender/source/blender/editors/mesh/editmesh_mods.c 2009-10-14 18:51:00 UTC (rev 23846)
+++ trunk/blender/source/blender/editors/mesh/editmesh_mods.c 2009-10-14 19:19:43 UTC (rev 23847)
@@ -658,16 +658,45 @@
/* selects new faces/edges/verts based on the existing selection */
-/* FACES GROUP */
+/* VERT GROUP */
+#define SIMVERT_NORMAL 0
+#define SIMVERT_FACE 1
+#define SIMVERT_VGROUP 2
+#define SIMVERT_TOT 3
+
+/* EDGE GROUP */
+
+#define SIMEDGE_LENGTH 101
+#define SIMEDGE_DIR 102
+#define SIMEDGE_FACE 103
+#define SIMEDGE_FACE_ANGLE 104
+#define SIMEDGE_CREASE 105
+#define SIMEDGE_SEAM 106
+#define SIMEDGE_SHARP 107
+#define SIMEDGE_TOT 108
+
+/* FACE GROUP */
+
#define SIMFACE_MATERIAL 201
#define SIMFACE_IMAGE 202
#define SIMFACE_AREA 203
#define SIMFACE_PERIMETER 204
#define SIMFACE_NORMAL 205
#define SIMFACE_COPLANAR 206
+#define SIMFACE_TOT 207
-static EnumPropertyItem prop_simface_types[] = {
+static EnumPropertyItem prop_similar_types[] = {
+ {SIMVERT_NORMAL, "NORMAL", 0, "Normal", ""},
+ {SIMVERT_FACE, "FACE", 0, "Amount of Vertices in Face", ""},
+ {SIMVERT_VGROUP, "VGROUP", 0, "Vertex Groups", ""},
+ {SIMEDGE_LENGTH, "LENGTH", 0, "Length", ""},
+ {SIMEDGE_DIR, "DIR", 0, "Direction", ""},
+ {SIMEDGE_FACE, "FACE", 0, "Amount of Vertices in Face", ""},
+ {SIMEDGE_FACE_ANGLE, "FACE_ANGLE", 0, "Face Angles", ""},
+ {SIMEDGE_CREASE, "CREASE", 0, "Crease", ""},
+ {SIMEDGE_SEAM, "SEAM", 0, "Seam", ""},
+ {SIMEDGE_SHARP, "SHARP", 0, "Sharpness", ""},
{SIMFACE_MATERIAL, "MATERIAL", 0, "Material", ""},
{SIMFACE_IMAGE, "IMAGE", 0, "Image", ""},
{SIMFACE_AREA, "AREA", 0, "Area", ""},
@@ -831,27 +860,6 @@
/* ***************************************************** */
-/* EDGE GROUP */
-
-#define SIMEDGE_LENGTH 101
-#define SIMEDGE_DIR 102
-#define SIMEDGE_FACE 103
-#define SIMEDGE_FACE_ANGLE 104
-#define SIMEDGE_CREASE 105
-#define SIMEDGE_SEAM 106
-#define SIMEDGE_SHARP 107
-
-static EnumPropertyItem prop_simedge_types[] = {
- {SIMEDGE_LENGTH, "LENGTH", 0, "Length", ""},
- {SIMEDGE_DIR, "DIR", 0, "Direction", ""},
- {SIMEDGE_FACE, "FACE", 0, "Amount of Vertices in Face", ""},
- {SIMEDGE_FACE_ANGLE, "FACE_ANGLE", 0, "Face Angles", ""},
- {SIMEDGE_CREASE, "CREASE", 0, "Crease", ""},
- {SIMEDGE_SEAM, "SEAM", 0, "Seam", ""},
- {SIMEDGE_SHARP, "SHARP", 0, "Sharpness", ""},
- {0, NULL, 0, NULL, NULL}
-};
-
static int similar_edge_select__internal(ToolSettings *ts, EditMesh *em, int mode)
{
EditEdge *eed, *base_eed=NULL;
@@ -1073,25 +1081,6 @@
/* ********************************* */
-/*
-VERT GROUP
- mode 1: same normal
- mode 2: same number of face users
- mode 3: same vertex groups
-*/
-
-#define SIMVERT_NORMAL 0
-#define SIMVERT_FACE 1
-#define SIMVERT_VGROUP 2
-
-static EnumPropertyItem prop_simvertex_types[] = {
- {SIMVERT_NORMAL, "NORMAL", 0, "Normal", ""},
- {SIMVERT_FACE, "FACE", 0, "Amount of Vertices in Face", ""},
- {SIMVERT_VGROUP, "VGROUP", 0, "Vertex Groups", ""},
- {0, NULL, 0, NULL, NULL}
-};
-
-
static int similar_vert_select_exec(bContext *C, wmOperator *op)
{
ToolSettings *ts= CTX_data_tool_settings(C);
@@ -1243,37 +1232,30 @@
static EnumPropertyItem *select_similar_type_itemf(bContext *C, PointerRNA *ptr, int *free)
{
- Object *obedit;
+ Object *obedit= CTX_data_edit_object(C);
EnumPropertyItem *item= NULL;
- int totitem= 0;
-
- if(C) {
- obedit= CTX_data_edit_object(C);
+ int a, totitem= 0;
- if(obedit && obedit->type == OB_MESH) {
- EditMesh *em= BKE_mesh_get_editmesh(obedit->data);
+ if(obedit && obedit->type == OB_MESH) {
+ EditMesh *em= BKE_mesh_get_editmesh(obedit->data);
- if(em->selectmode & SCE_SELECT_VERTEX)
- RNA_enum_items_add(&item, &totitem, prop_simvertex_types);
- else if(em->selectmode & SCE_SELECT_EDGE)
- RNA_enum_items_add(&item, &totitem, prop_simedge_types);
- else if(em->selectmode & SCE_SELECT_FACE)
- RNA_enum_items_add(&item, &totitem, prop_simface_types);
- RNA_enum_item_end(&item, &totitem);
-
- *free= 1;
-
- return item;
+ if(em->selectmode & SCE_SELECT_VERTEX) {
+ for(a=SIMVERT_NORMAL; a<=SIMVERT_TOT; a++)
+ RNA_enum_items_add_value(&item, &totitem, prop_similar_types, a);
}
+ else if(em->selectmode & SCE_SELECT_EDGE) {
+ for(a=SIMEDGE_LENGTH; a<=SIMEDGE_TOT; a++)
+ RNA_enum_items_add_value(&item, &totitem, prop_similar_types, a);
+ }
+ else if(em->selectmode & SCE_SELECT_FACE) {
+ for(a=SIMFACE_MATERIAL; a<=SIMFACE_TOT; a++)
+ RNA_enum_items_add_value(&item, &totitem, prop_similar_types, a);
+ }
}
- /* needed for doc generation */
- RNA_enum_items_add(&item, &totitem, prop_simvertex_types);
- RNA_enum_items_add(&item, &totitem, prop_simedge_types);
- RNA_enum_items_add(&item, &totitem, prop_simface_types);
RNA_enum_item_end(&item, &totitem);
*free= 1;
-
+
return item;
}
@@ -1295,7 +1277,7 @@
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
/* properties */
- prop= RNA_def_enum(ot->srna, "type", prop_simvertex_types, SIMVERT_NORMAL, "Type", "");
+ prop= RNA_def_enum(ot->srna, "type", prop_similar_types, SIMVERT_NORMAL, "Type", "");
RNA_def_enum_funcs(prop, select_similar_type_itemf);
}
Modified: trunk/blender/source/blender/editors/mesh/editmesh_tools.c
===================================================================
--- trunk/blender/source/blender/editors/mesh/editmesh_tools.c 2009-10-14 18:51:00 UTC (rev 23846)
+++ trunk/blender/source/blender/editors/mesh/editmesh_tools.c 2009-10-14 19:19:43 UTC (rev 23847)
@@ -5856,14 +5856,10 @@
static EnumPropertyItem *merge_type_itemf(bContext *C, PointerRNA *ptr, int *free)
{
- Object *obedit;
+ Object *obedit= CTX_data_edit_object(C);
EnumPropertyItem *item= NULL;
int totitem= 0;
-
- if(!C) /* needed for docs */
- return merge_type_items;
-
- obedit= CTX_data_edit_object(C);
+
if(obedit && obedit->type == OB_MESH) {
EditMesh *em= BKE_mesh_get_editmesh(obedit->data);
@@ -5882,14 +5878,12 @@
RNA_enum_items_add_value(&item, &totitem, merge_type_items, 3);
RNA_enum_items_add_value(&item, &totitem, merge_type_items, 4);
RNA_enum_items_add_value(&item, &totitem, merge_type_items, 5);
- RNA_enum_item_end(&item, &totitem);
+ }
- *free= 1;
+ RNA_enum_item_end(&item, &totitem);
+ *free= 1;
- return item;
- }
-
- return NULL;
+ return item;
}
void MESH_OT_merge(wmOperatorType *ot)
Modified: trunk/blender/source/blender/editors/object/object_add.c
===================================================================
--- trunk/blender/source/blender/editors/object/object_add.c 2009-10-14 18:51:00 UTC (rev 23846)
+++ trunk/blender/source/blender/editors/object/object_add.c 2009-10-14 19:19:43 UTC (rev 23847)
@@ -608,9 +608,6 @@
int i= 0;
Group *group;
- if(C==NULL)
- return NULL;
-
memset(&item_tmp, 0, sizeof(item_tmp));
for(group= CTX_data_main(C)->group.first; group; group= group->id.next) {
@@ -619,13 +616,10 @@
RNA_enum_item_add(&item, &totitem, &item_tmp);
}
- if(i>0) {
- *free= 1;
- return item;
- }
- else {
- return NULL;
- }
+ RNA_enum_item_end(&item, &totitem);
+ *free= 1;
+
+ return item;
}
static int group_instance_add_exec(bContext *C, wmOperator *op)
Modified: trunk/blender/source/blender/editors/object/object_group.c
===================================================================
--- trunk/blender/source/blender/editors/object/object_group.c 2009-10-14 18:51:00 UTC (rev 23846)
+++ trunk/blender/source/blender/editors/object/object_group.c 2009-10-14 19:19:43 UTC (rev 23847)
@@ -275,18 +275,14 @@
static EnumPropertyItem *group_itemf(bContext *C, PointerRNA *ptr, int *free)
{
+ Main *bmain= CTX_data_main(C);
+ Group *group;
EnumPropertyItem tmp = {0, "", 0, "", ""};
EnumPropertyItem *item= NULL;
- Main *bmain;
- Group *group;
int a, totitem= 0;
- if(!C) /* needed for docs */
- return group_items;
-
RNA_enum_items_add_value(&item, &totitem, group_items, -1);
- bmain= CTX_data_main(C);
if(bmain->group.first)
RNA_enum_item_add_separator(&item, &totitem);
@@ -298,7 +294,6 @@
}
RNA_enum_item_end(&item, &totitem);
-
*free= 1;
return item;
Modified: trunk/blender/source/blender/editors/object/object_modifier.c
===================================================================
--- trunk/blender/source/blender/editors/object/object_modifier.c 2009-10-14 18:51:00 UTC (rev 23846)
+++ trunk/blender/source/blender/editors/object/object_modifier.c 2009-10-14 19:19:43 UTC (rev 23847)
@@ -440,12 +440,12 @@
static EnumPropertyItem *modifier_add_itemf(bContext *C, PointerRNA *ptr, int *free)
{
+ Object *ob= CTX_data_active_object(C);
EnumPropertyItem *item= NULL, *md_item;
ModifierTypeInfo *mti;
- Object *ob;
int totitem= 0, a;
- if(!C || !(ob= CTX_data_active_object(C))) /* needed for docs */
+ if(!ob)
return modifier_type_items;
for(a=0; modifier_type_items[a].identifier; a++) {
@@ -466,7 +466,6 @@
}
RNA_enum_item_end(&item, &totitem);
-
*free= 1;
return item;
Modified: trunk/blender/source/blender/editors/object/object_vgroup.c
===================================================================
--- trunk/blender/source/blender/editors/object/object_vgroup.c 2009-10-14 18:51:00 UTC (rev 23846)
+++ trunk/blender/source/blender/editors/object/object_vgroup.c 2009-10-14 19:19:43 UTC (rev 23847)
@@ -1233,13 +1233,13 @@
static EnumPropertyItem *vgroup_itemf(bContext *C, PointerRNA *ptr, int *free)
{
- Object *ob;
+ Object *ob= CTX_data_pointer_get_type(C, "object", &RNA_Object).data;
EnumPropertyItem tmp = {0, "", 0, "", ""};
EnumPropertyItem *item= NULL;
bDeformGroup *def;
int a, totitem= 0;
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list