Revision: 23503
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=23503
Author:   aligorith
Date:     2009-09-27 08:14:42 +0200 (Sun, 27 Sep 2009)

Log Message:
-----------
Animation Editors - Moved the code for drawing the filtering toggles into a 
single function.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/animation/anim_draw.c
    trunk/blender/source/blender/editors/include/ED_anim_api.h
    trunk/blender/source/blender/editors/space_action/action_header.c
    trunk/blender/source/blender/editors/space_graph/graph_header.c
    trunk/blender/source/blender/editors/space_graph/graph_utils.c
    trunk/blender/source/blender/editors/space_nla/nla_header.c
    trunk/blender/source/blender/makesdna/DNA_action_types.h

Modified: trunk/blender/source/blender/editors/animation/anim_draw.c
===================================================================
--- trunk/blender/source/blender/editors/animation/anim_draw.c  2009-09-27 
04:22:04 UTC (rev 23502)
+++ trunk/blender/source/blender/editors/animation/anim_draw.c  2009-09-27 
06:14:42 UTC (rev 23503)
@@ -55,6 +55,7 @@
 
 #include "ED_anim_api.h"
 #include "ED_keyframes_edit.h"
+#include "ED_types.h"
 #include "ED_util.h"
 
 #include "WM_api.h"
@@ -316,3 +317,52 @@
 } 
 
 /* *************************************************** */
+/* ANIMATION EDITOR UI-WIDGETS */
+
+/* ui button event */
+#define B_REDR                 1
+
+/* standard header buttons for Animation Editors */
+short ANIM_headerUI_standard_buttons (const bContext *C, bDopeSheet *ads, 
uiBlock *block, short xco, short yco)
+{
+       ScrArea *sa= CTX_wm_area(C);
+       short nlaActive= ((sa) && (sa->spacetype==SPACE_NLA));
+       
+       /* check if the DopeSheet data exists, just in case... */
+       if (ads) {
+               /* more 'generic' filtering options */
+               if (nlaActive) uiBlockBeginAlign(block);
+                       uiDefIconButBitI(block, TOG, ADS_FILTER_ONLYSEL, 
B_REDR, ICON_RESTRICT_SELECT_OFF,      (short)(xco+=XIC),yco,XIC,YIC, 
&(ads->filterflag), 0, 0, 0, 0, "Only display selected Objects");
+                       if (nlaActive) uiDefIconButBitI(block, TOGN, 
ADS_FILTER_NLA_NOACT, B_REDR, ICON_ACTION, (short)(xco+=XIC),yco,XIC,YIC, 
&(ads->filterflag), 0, 0, 0, 0, "Include AnimData blocks with no NLA Data");
+               if (nlaActive) uiBlockEndAlign(block);
+               xco += 5;
+               
+               /* datatype based */
+               // TODO: only show the datablocks which exist
+               uiBlockBeginAlign(block);
+                       uiDefIconButBitI(block, TOGN, ADS_FILTER_NOSCE, B_REDR, 
ICON_SCENE_DATA,        (short)(xco+=XIC),yco,XIC,YIC, &(ads->filterflag), 0, 
0, 0, 0, "Display Scene Animation");
+                       uiDefIconButBitI(block, TOGN, ADS_FILTER_NOWOR, B_REDR, 
ICON_WORLD_DATA,        (short)(xco+=XIC),yco,XIC,YIC, &(ads->filterflag), 0, 
0, 0, 0, "Display World Animation");
+                       uiDefIconButBitI(block, TOGN, ADS_FILTER_NOSHAPEKEYS, 
B_REDR, ICON_SHAPEKEY_DATA,       (short)(xco+=XIC),yco,XIC,YIC, 
&(ads->filterflag), 0, 0, 0, 0, "Display ShapeKeys");
+                       uiDefIconButBitI(block, TOGN, ADS_FILTER_NOMAT, B_REDR, 
ICON_MATERIAL_DATA,     (short)(xco+=XIC),yco,XIC,YIC, &(ads->filterflag), 0, 
0, 0, 0, "Display Material Data");
+                       uiDefIconButBitI(block, TOGN, ADS_FILTER_NOLAM, B_REDR, 
ICON_LAMP_DATA, (short)(xco+=XIC),yco,XIC,YIC, &(ads->filterflag), 0, 0, 0, 0, 
"Display Lamp Data");
+                       uiDefIconButBitI(block, TOGN, ADS_FILTER_NOCAM, B_REDR, 
ICON_CAMERA_DATA,       (short)(xco+=XIC),yco,XIC,YIC, &(ads->filterflag), 0, 
0, 0, 0, "Display Camera Data");
+                       uiDefIconButBitI(block, TOGN, ADS_FILTER_NOCUR, B_REDR, 
ICON_CURVE_DATA,        (short)(xco+=XIC),yco,XIC,YIC, &(ads->filterflag), 0, 
0, 0, 0, "Display Curve Data");
+                       uiDefIconButBitI(block, TOGN, ADS_FILTER_NOMBA, B_REDR, 
ICON_META_DATA, (short)(xco+=XIC),yco,XIC,YIC, &(ads->filterflag), 0, 0, 0, 0, 
"Display MetaBall Data");
+                       uiDefIconButBitI(block, TOGN, ADS_FILTER_NOARM, B_REDR, 
ICON_ARMATURE_DATA,     (short)(xco+=XIC),yco,XIC,YIC, &(ads->filterflag), 0, 
0, 0, 0, "Display Armature Data");
+                       uiDefIconButBitI(block, TOGN, ADS_FILTER_NOPART, 
B_REDR, ICON_PARTICLE_DATA,    (short)(xco+=XIC),yco,XIC,YIC, 
&(ads->filterflag), 0, 0, 0, 0, "Display Particle Data");
+               uiBlockEndAlign(block);
+               xco += 30;
+       }
+       else {
+               // XXX this case shouldn't happen at all... for now, just pad 
out same amount of space
+               printf("ERROR: dopesheet data not available when drawing 
Animation Editor header \n");
+               xco += 11*XIC + 30;
+       }
+       
+       // TODO: include auto-snapping menu here too...
+       
+       /* return the width of the buttons */
+       return xco;
+}
+
+/* *************************************************** */

Modified: trunk/blender/source/blender/editors/include/ED_anim_api.h
===================================================================
--- trunk/blender/source/blender/editors/include/ED_anim_api.h  2009-09-27 
04:22:04 UTC (rev 23502)
+++ trunk/blender/source/blender/editors/include/ED_anim_api.h  2009-09-27 
06:14:42 UTC (rev 23503)
@@ -42,11 +42,14 @@
 struct Scene;
 struct Object;
 
+struct bDopeSheet;
+
 struct bActionGroup;
 struct FCurve;
 struct FModifier;
 
 struct uiBlock;
+struct uiLayout;
 
 /* ************************************************ */
 /* ANIMATION CHANNEL FILTERING */
@@ -394,11 +397,14 @@
 /* main call to draw preview range curtains */
 void ANIM_draw_previewrange(const struct bContext *C, struct View2D *v2d);
 
+/* ------------- Preview Range Drawing -------------- */
+
+/* standard header buttons for Animation Editors */
+short ANIM_headerUI_standard_buttons(const struct bContext *C, struct 
bDopeSheet *ads, struct uiBlock *block, short xco, short yco);
+
 /* ************************************************* */
 /* F-MODIFIER TOOLS */
 
-struct uiLayout;
-
 /* draw a given F-Modifier for some layout/UI-Block */
 void ANIM_uiTemplate_fmodifier_draw(struct uiLayout *layout, struct ID *id, 
ListBase *modifiers, struct FModifier *fcm);
 

Modified: trunk/blender/source/blender/editors/space_action/action_header.c
===================================================================
--- trunk/blender/source/blender/editors/space_action/action_header.c   
2009-09-27 04:22:04 UTC (rev 23502)
+++ trunk/blender/source/blender/editors/space_action/action_header.c   
2009-09-27 06:14:42 UTC (rev 23503)
@@ -336,24 +336,7 @@
                        /* FILTERING OPTIONS */
                        xco -= 10;
                        
-                       //uiBlockBeginAlign(block);
-                               uiDefIconButBitI(block, TOG, 
ADS_FILTER_ONLYSEL, B_REDR, ICON_RESTRICT_SELECT_OFF,      
(short)(xco+=XIC),yco,XIC,YIC, &(saction->ads.filterflag), 0, 0, 0, 0, "Only 
display selected Objects");
-                       //uiBlockEndAlign(block);
-                       xco += 5;
-                       
-                       uiBlockBeginAlign(block);
-                               uiDefIconButBitI(block, TOGN, ADS_FILTER_NOSCE, 
B_REDR, ICON_SCENE_DATA,        (short)(xco+=XIC),yco,XIC,YIC, 
&(saction->ads.filterflag), 0, 0, 0, 0, "Display Scene Animation");
-                               uiDefIconButBitI(block, TOGN, ADS_FILTER_NOWOR, 
B_REDR, ICON_WORLD_DATA,        (short)(xco+=XIC),yco,XIC,YIC, 
&(saction->ads.filterflag), 0, 0, 0, 0, "Display World Animation");
-                               uiDefIconButBitI(block, TOGN, 
ADS_FILTER_NOSHAPEKEYS, B_REDR, ICON_SHAPEKEY_DATA,       
(short)(xco+=XIC),yco,XIC,YIC, &(saction->ads.filterflag), 0, 0, 0, 0, "Display 
ShapeKeys");
-                               uiDefIconButBitI(block, TOGN, ADS_FILTER_NOMAT, 
B_REDR, ICON_MATERIAL_DATA,     (short)(xco+=XIC),yco,XIC,YIC, 
&(saction->ads.filterflag), 0, 0, 0, 0, "Display Materials");
-                               uiDefIconButBitI(block, TOGN, ADS_FILTER_NOLAM, 
B_REDR, ICON_LAMP_DATA, (short)(xco+=XIC),yco,XIC,YIC, 
&(saction->ads.filterflag), 0, 0, 0, 0, "Display Lamps");
-                               uiDefIconButBitI(block, TOGN, ADS_FILTER_NOCAM, 
B_REDR, ICON_CAMERA_DATA,       (short)(xco+=XIC),yco,XIC,YIC, 
&(saction->ads.filterflag), 0, 0, 0, 0, "Display Cameras");
-                               uiDefIconButBitI(block, TOGN, ADS_FILTER_NOCUR, 
B_REDR, ICON_CURVE_DATA,        (short)(xco+=XIC),yco,XIC,YIC, 
&(saction->ads.filterflag), 0, 0, 0, 0, "Display Curves");
-                               uiDefIconButBitI(block, TOGN, ADS_FILTER_NOMBA, 
B_REDR, ICON_META_DATA, (short)(xco+=XIC),yco,XIC,YIC, 
&(saction->ads.filterflag), 0, 0, 0, 0, "Display MetaBalls");
-                               uiDefIconButBitI(block, TOGN, ADS_FILTER_NOARM, 
B_REDR, ICON_ARMATURE_DATA,     (short)(xco+=XIC),yco,XIC,YIC, 
&(saction->ads.filterflag), 0, 0, 0, 0, "Display Armature/Bone");
-                               uiDefIconButBitI(block, TOGN, 
ADS_FILTER_NOPART, B_REDR, ICON_PARTICLE_DATA,    
(short)(xco+=XIC),yco,XIC,YIC, &(saction->ads.filterflag), 0, 0, 0, 0, "Display 
Particles");
-                       uiBlockEndAlign(block);
-                       xco += 30;
+                       xco= ANIM_headerUI_standard_buttons(C, &saction->ads, 
block, xco, yco);
                }
                else if (saction->mode == SACTCONT_ACTION) {
                        uiLayout *layout;

Modified: trunk/blender/source/blender/editors/space_graph/graph_header.c
===================================================================
--- trunk/blender/source/blender/editors/space_graph/graph_header.c     
2009-09-27 04:22:04 UTC (rev 23502)
+++ trunk/blender/source/blender/editors/space_graph/graph_header.c     
2009-09-27 06:14:42 UTC (rev 23503)
@@ -298,30 +298,7 @@
        xco+= 120;
        
        /* filtering buttons */
-       if (sipo->ads) {
-               //uiBlockBeginAlign(block);
-                       uiDefIconButBitI(block, TOG, ADS_FILTER_ONLYSEL, 
B_REDR, ICON_RESTRICT_SELECT_OFF,      (short)(xco+=XIC),yco,XIC,YIC, 
&(sipo->ads->filterflag), 0, 0, 0, 0, "Only display selected Objects");
-               //uiBlockEndAlign(block);
-               xco += 5;
-               
-               uiBlockBeginAlign(block);
-                       uiDefIconButBitI(block, TOGN, ADS_FILTER_NOSCE, B_REDR, 
ICON_SCENE_DATA,        (short)(xco+=XIC),yco,XIC,YIC, 
&(sipo->ads->filterflag), 0, 0, 0, 0, "Display Scene Animation");
-                               uiDefIconButBitI(block, TOGN, ADS_FILTER_NOWOR, 
B_REDR, ICON_WORLD_DATA,        (short)(xco+=XIC),yco,XIC,YIC, 
&(sipo->ads->filterflag), 0, 0, 0, 0, "Display World Animation");
-                       uiDefIconButBitI(block, TOGN, ADS_FILTER_NOSHAPEKEYS, 
B_REDR, ICON_SHAPEKEY_DATA,       (short)(xco+=XIC),yco,XIC,YIC, 
&(sipo->ads->filterflag), 0, 0, 0, 0, "Display ShapeKeys");
-                       uiDefIconButBitI(block, TOGN, ADS_FILTER_NOMAT, B_REDR, 
ICON_MATERIAL_DATA,     (short)(xco+=XIC),yco,XIC,YIC, 
&(sipo->ads->filterflag), 0, 0, 0, 0, "Display Materials");
-                       uiDefIconButBitI(block, TOGN, ADS_FILTER_NOLAM, B_REDR, 
ICON_LAMP_DATA, (short)(xco+=XIC),yco,XIC,YIC, &(sipo->ads->filterflag), 0, 0, 
0, 0, "Display Lamps");
-                       uiDefIconButBitI(block, TOGN, ADS_FILTER_NOCAM, B_REDR, 
ICON_CAMERA_DATA,       (short)(xco+=XIC),yco,XIC,YIC, 
&(sipo->ads->filterflag), 0, 0, 0, 0, "Display Cameras");
-                       uiDefIconButBitI(block, TOGN, ADS_FILTER_NOCUR, B_REDR, 
ICON_CURVE_DATA,        (short)(xco+=XIC),yco,XIC,YIC, 
&(sipo->ads->filterflag), 0, 0, 0, 0, "Display Curves");
-                       uiDefIconButBitI(block, TOGN, ADS_FILTER_NOMBA, B_REDR, 
ICON_META_DATA, (short)(xco+=XIC),yco,XIC,YIC, &(sipo->ads->filterflag), 0, 0, 
0, 0, "Display MetaBalls");
-                       uiDefIconButBitI(block, TOGN, ADS_FILTER_NOARM, B_REDR, 
ICON_ARMATURE_DATA,     (short)(xco+=XIC),yco,XIC,YIC, 
&(sipo->ads->filterflag), 0, 0, 0, 0, "Display Armature/Bone data");
-                       uiDefIconButBitI(block, TOGN, ADS_FILTER_NOPART, 
B_REDR, ICON_PARTICLE_DATA,    (short)(xco+=XIC),yco,XIC,YIC, 
&(sipo->ads->filterflag), 0, 0, 0, 0, "Display Particles");
-               uiBlockEndAlign(block);
-               xco += 30;
-       }
-       else {
-               // XXX this case shouldn't happen at all... for now, just pad 
out same amount of space
-               xco += 10*XIC + 30;
-       }
+       xco= ANIM_headerUI_standard_buttons(C, sipo->ads, block, xco, yco);
        
        /* auto-snap selector */
        if (sipo->flag & SIPO_DRAWTIME) {


@@ Diff output truncated at 10240 characters. @@

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

Reply via email to