Revision: 21582
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=21582
Author:   blendix
Date:     2009-07-14 19:35:07 +0200 (Tue, 14 Jul 2009)

Log Message:
-----------
RNA

* RNA_enum_items_add_value and RNA_enum_item_add_separator utility
  functions, to add an item from an existing array with a certain
  value, and to add a separator.

Modified Paths:
--------------
    branches/blender2.5/blender/source/blender/editors/mesh/editmesh_tools.c
    
branches/blender2.5/blender/source/blender/editors/transform/transform_orientations.c
    branches/blender2.5/blender/source/blender/makesrna/RNA_define.h
    branches/blender2.5/blender/source/blender/makesrna/intern/rna_define.c

Modified: 
branches/blender2.5/blender/source/blender/editors/mesh/editmesh_tools.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/mesh/editmesh_tools.c    
2009-07-14 17:31:50 UTC (rev 21581)
+++ branches/blender2.5/blender/source/blender/editors/mesh/editmesh_tools.c    
2009-07-14 17:35:07 UTC (rev 21582)
@@ -5796,20 +5796,13 @@
 
 static EnumPropertyItem *merge_type_itemf(bContext *C, PointerRNA *ptr, int 
*free)
 {      
+       Object *obedit;
        EnumPropertyItem *item= NULL;
        int totitem= 0;
        
-       Object *obedit;
+       if(!C) /* needed for docs */
+               return merge_type_items;
        
-       if(C==NULL) {
-               /* needed for doc generation */
-               RNA_enum_items_add(&item, &totitem, merge_type_items);
-               RNA_enum_item_end(&item, &totitem);
-               
-               *free= 1;
-               return item;
-       }
-       
        obedit= CTX_data_edit_object(C);
        if(obedit && obedit->type == OB_MESH) {
                EditMesh *em= BKE_mesh_get_editmesh(obedit->data);
@@ -5817,18 +5810,18 @@
                if(em->selectmode & SCE_SELECT_VERTEX) {
                        if(em->selected.first && em->selected.last &&
                                ((EditSelection*)em->selected.first)->type == 
EDITVERT && ((EditSelection*)em->selected.last)->type == EDITVERT) {
-                               RNA_enum_item_add(&item, &totitem, 
&merge_type_items[0]);
-                               RNA_enum_item_add(&item, &totitem, 
&merge_type_items[1]);
+                               RNA_enum_items_add_value(&item, &totitem, 
merge_type_items, 6);
+                               RNA_enum_items_add_value(&item, &totitem, 
merge_type_items, 1);
                        }
                        else if(em->selected.first && 
((EditSelection*)em->selected.first)->type == EDITVERT)
-                               RNA_enum_item_add(&item, &totitem, 
&merge_type_items[1]);
+                               RNA_enum_items_add_value(&item, &totitem, 
merge_type_items, 1);
                        else if(em->selected.last && 
((EditSelection*)em->selected.last)->type == EDITVERT)
-                               RNA_enum_item_add(&item, &totitem, 
&merge_type_items[0]);
+                               RNA_enum_items_add_value(&item, &totitem, 
merge_type_items, 6);
                }
 
-               RNA_enum_item_add(&item, &totitem, &merge_type_items[2]);
-               RNA_enum_item_add(&item, &totitem, &merge_type_items[3]);
-               RNA_enum_item_add(&item, &totitem, &merge_type_items[4]);
+               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;

Modified: 
branches/blender2.5/blender/source/blender/editors/transform/transform_orientations.c
===================================================================
--- 
branches/blender2.5/blender/source/blender/editors/transform/transform_orientations.c
       2009-07-14 17:31:50 UTC (rev 21581)
+++ 
branches/blender2.5/blender/source/blender/editors/transform/transform_orientations.c
       2009-07-14 17:35:07 UTC (rev 21582)
@@ -366,7 +366,6 @@
        EnumPropertyItem normal = {V3D_MANIP_NORMAL, "NORMAL", 0, "Normal", ""};
        EnumPropertyItem local = {V3D_MANIP_LOCAL, "LOCAL", 0, "Local", ""};
        EnumPropertyItem view = {V3D_MANIP_VIEW, "VIEW", 0, "View", ""};
-       EnumPropertyItem sepr = {0, "", 0, NULL, NULL};
        EnumPropertyItem tmp = {0, "", 0, "", ""};
        EnumPropertyItem *item= NULL;
        int i = V3D_MANIP_CUSTOM, totitem= 0;
@@ -386,7 +385,7 @@
        }
                
        if(ts)
-               RNA_enum_item_add(&item, &totitem, &sepr);
+               RNA_enum_item_add_separator(&item, &totitem);
 
        for(; ts; ts = ts->next) {
                tmp.identifier = "CUSTOM";

Modified: branches/blender2.5/blender/source/blender/makesrna/RNA_define.h
===================================================================
--- branches/blender2.5/blender/source/blender/makesrna/RNA_define.h    
2009-07-14 17:31:50 UTC (rev 21581)
+++ branches/blender2.5/blender/source/blender/makesrna/RNA_define.h    
2009-07-14 17:35:07 UTC (rev 21582)
@@ -164,7 +164,9 @@
  * strings are not freed, assumed pointing to static location. */
 
 void RNA_enum_item_add(EnumPropertyItem **items, int *totitem, 
EnumPropertyItem *item);
+void RNA_enum_item_add_separator(EnumPropertyItem **items, int *totitem);
 void RNA_enum_items_add(EnumPropertyItem **items, int *totitem, 
EnumPropertyItem *item);
+void RNA_enum_items_add_value(EnumPropertyItem **items, int *totitem, 
EnumPropertyItem *item, int value);
 void RNA_enum_item_end(EnumPropertyItem **items, int *totitem);
 
 #ifdef __cplusplus

Modified: 
branches/blender2.5/blender/source/blender/makesrna/intern/rna_define.c
===================================================================
--- branches/blender2.5/blender/source/blender/makesrna/intern/rna_define.c     
2009-07-14 17:31:50 UTC (rev 21581)
+++ branches/blender2.5/blender/source/blender/makesrna/intern/rna_define.c     
2009-07-14 17:35:07 UTC (rev 21582)
@@ -2284,12 +2284,25 @@
        *totitem= tot+1;
 }
 
+void RNA_enum_item_add_separator(EnumPropertyItem **items, int *totitem)
+{
+       static EnumPropertyItem sepr = {0, "", 0, NULL, NULL};
+       RNA_enum_item_add(items, totitem, &sepr);
+}
+
 void RNA_enum_items_add(EnumPropertyItem **items, int *totitem, 
EnumPropertyItem *item)
 {
        for(; item->identifier; item++)
                RNA_enum_item_add(items, totitem, item);
 }
 
+void RNA_enum_items_add_value(EnumPropertyItem **items, int *totitem, 
EnumPropertyItem *item, int value)
+{
+       for(; item->identifier; item++)
+               if(item->value == value)
+                       RNA_enum_item_add(items, totitem, item);
+}
+
 void RNA_enum_item_end(EnumPropertyItem **items, int *totitem)
 {
        static EnumPropertyItem empty = {0, NULL, 0, NULL, NULL};


_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to