Revision: 17422
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=17422
Author:   aligorith
Date:     2008-11-12 12:06:44 +0100 (Wed, 12 Nov 2008)

Log Message:
-----------
AnimSys2: Current frame number indicator

Added an (optional) frame number indicator beside the current frame indicator 
(green line) in Action/NLA/IPO editors. This can be turned on/off from the View 
menu. It draws as a green box containing the current frame number, and is 
attached to the bottom indicator line. 

Notes:
* The placement in the IPO Editor is still quite non-optimal
* The aim of this was to make it easier to see what frame is the current frame. 
However, this may be too obstructive for some people.

Modified Paths:
--------------
    branches/animsys2/source/blender/include/BDR_drawaction.h
    branches/animsys2/source/blender/makesdna/DNA_action_types.h
    branches/animsys2/source/blender/makesdna/DNA_space_types.h
    branches/animsys2/source/blender/src/drawaction.c
    branches/animsys2/source/blender/src/drawipo.c
    branches/animsys2/source/blender/src/header_action.c
    branches/animsys2/source/blender/src/header_ipo.c
    branches/animsys2/source/blender/src/header_nla.c

Modified: branches/animsys2/source/blender/include/BDR_drawaction.h
===================================================================
--- branches/animsys2/source/blender/include/BDR_drawaction.h   2008-11-12 
08:46:08 UTC (rev 17421)
+++ branches/animsys2/source/blender/include/BDR_drawaction.h   2008-11-12 
11:06:44 UTC (rev 17422)
@@ -75,6 +75,7 @@
 /* ******************************* Methods ****************************** */
 
 /* Action Generics */
+void draw_cfra_number(float cfra);
 void draw_cfra_action(void);
 
 /* Channel Drawing */

Modified: branches/animsys2/source/blender/makesdna/DNA_action_types.h
===================================================================
--- branches/animsys2/source/blender/makesdna/DNA_action_types.h        
2008-11-12 08:46:08 UTC (rev 17421)
+++ branches/animsys2/source/blender/makesdna/DNA_action_types.h        
2008-11-12 11:06:44 UTC (rev 17422)
@@ -277,7 +277,9 @@
                /* hack for moving pose-markers (temp flag)  */
        SACTION_POSEMARKERS_MOVE = (1<<6),
                /* don't draw action channels using group colours (where 
applicable) */
-       SACTION_NODRAWGCOLORS = (1<<7)
+       SACTION_NODRAWGCOLORS = (1<<7),
+               /* don't draw current frame number beside frame indicator */
+       SACTION_NODRAWCFRANUM = (1<<8),
 } SACTION_FLAG;        
 
 /* SpaceAction Mode Settings */

Modified: branches/animsys2/source/blender/makesdna/DNA_space_types.h
===================================================================
--- branches/animsys2/source/blender/makesdna/DNA_space_types.h 2008-11-12 
08:46:08 UTC (rev 17421)
+++ branches/animsys2/source/blender/makesdna/DNA_space_types.h 2008-11-12 
11:06:44 UTC (rev 17422)
@@ -544,6 +544,8 @@
 #define SIPO_LOCK_VIEW                 (1<<0)
 #define SIPO_NOTRANSKEYCULL            (1<<1)
 #define SIPO_NOHANDLES                 (1<<2)
+#define SIPO_NODRAWCFRANUM             (1<<3)
+#define SIPO_DRAWTIME                  (1<<4)
 
 /* SpaceText flags (moved from DNA_text_types.h) */
 
@@ -638,6 +640,7 @@
 #define SNLA_ACTIVELAYERS      2
 #define SNLA_DRAWTIME          4
 #define SNLA_NOTRANSKEYCULL    8
+#define SNLA_NODRAWCFRANUM     16
 
 /* time->flag */
        /* show timing in frames instead of in seconds */

Modified: branches/animsys2/source/blender/src/drawaction.c
===================================================================
--- branches/animsys2/source/blender/src/drawaction.c   2008-11-12 08:46:08 UTC 
(rev 17421)
+++ branches/animsys2/source/blender/src/drawaction.c   2008-11-12 11:06:44 UTC 
(rev 17422)
@@ -79,6 +79,7 @@
 #include "BIF_gl.h"
 #include "BIF_glutil.h"
 #include "BIF_keyframing.h"
+#include "BIF_language.h"
 #include "BIF_resources.h"
 #include "BIF_screen.h"
 #include "BIF_mywindow.h"
@@ -93,6 +94,7 @@
 #include "BSE_drawview.h"
 #include "BSE_editaction_types.h"
 #include "BSE_editipo.h"
+#include "BSE_headerbuttons.h"
 #include "BSE_time.h"
 #include "BSE_view.h"
 
@@ -389,6 +391,65 @@
 
 /********************************** Current Frame **************************** 
*/
 
+void draw_cfra_number(float cfra)
+{
+       float xscale, yscale, x, y;
+       short slen, time=0;
+       char str[32];
+       
+       /* check if current spacetype allows drawing */
+       switch (curarea->spacetype) {
+               case SPACE_ACTION: /* action editor */
+                       if (G.saction->flag & SACTION_NODRAWCFRANUM)
+                               return;
+                       else if (G.saction->flag & SACTION_DRAWTIME)
+                               time= 1;
+                       break;
+               case SPACE_NLA: /* nla editor */
+                       if (G.snla->flag & SNLA_NODRAWCFRANUM)
+                               return;
+                       else if (G.snla->flag & SNLA_DRAWTIME)
+                               time= 1;
+                       break;
+               case SPACE_IPO: /* ipo editor */
+                       if (G.sipo->flag & SIPO_NODRAWCFRANUM)
+                               return;
+                       else if (G.sipo->flag & SIPO_DRAWTIME)
+                               time= 1;
+                       break;
+                       
+               default: /* other spaces don't support this */
+                       return;
+       }
+       
+       /* because the frame number text is subject to the same scaling as the 
contents of the view */
+       view2d_getscale(G.v2d, &xscale, &yscale);
+       glScalef(1.0/xscale, 1.0/yscale, 1.0);
+       
+       if (time) 
+               sprintf(str, "   %.2f", FRA2TIME(CFRA));
+       else 
+               sprintf(str, "   %d", CFRA);
+       slen= GetButStringLength(str);
+       
+       /* get starting coordinates for drawing */
+       x= cfra * xscale;
+       y= G.v2d->cur.ymin;
+       
+       /* draw green box around/behind text */
+       BIF_ThemeColor(TH_CFRAME);
+       BIF_ThemeColorShadeAlpha(TH_CFRAME, 0, -100);
+       glRectf(x,  y,  x+slen,  y+20);
+       
+       /* draw current frame number - black text */
+       BIF_ThemeColor(TH_TEXT);
+       ui_rasterpos_safe(x, y+3, 1.0);
+       BIF_DrawString(G.fonts, str, 0);
+       
+       /* restore scaling */
+       glScalef(xscale, yscale, 1.0);
+}
+
 void draw_cfra_action (void)
 {
        Object *ob;
@@ -423,6 +484,9 @@
        }
        
        glLineWidth(1.0);
+       
+       /* Draw current frame number in a little box*/
+       draw_cfra_number(vec[0]);
 }
 
 /********************************** Left-Hand Panel + Generics 
**************************** */

Modified: branches/animsys2/source/blender/src/drawipo.c
===================================================================
--- branches/animsys2/source/blender/src/drawipo.c      2008-11-12 08:46:08 UTC 
(rev 17421)
+++ branches/animsys2/source/blender/src/drawipo.c      2008-11-12 11:06:44 UTC 
(rev 17422)
@@ -79,6 +79,8 @@
 #include "BIF_editaction.h"
 #include "BIF_language.h"
 
+#include "BDR_drawaction.h"
+
 #include "BSE_drawipo.h"
 #include "BSE_view.h"
 #include "BSE_editipo.h"
@@ -1221,7 +1223,7 @@
                
                qobj    = gluNewQuadric(); 
                gluQuadricDrawStyle(qobj, GLU_SILHOUETTE); 
-               gluDisk(qobj, 0.0,  0.8, 12, 1);
+               gluDisk(qobj, 0.07,  0.8, 12, 1);
                gluDeleteQuadric(qobj);  
                
                glEndList();
@@ -1763,6 +1765,9 @@
        }
        
        glLineWidth(1.0);
+       
+       /* Draw current frame number in a little box */
+       draw_cfra_number(vec[0]);
 }
 
 static void draw_ipokey(SpaceIpo *sipo)
@@ -2404,8 +2409,6 @@
                calc_ipogrid(); 
                draw_ipogrid();
                
-               draw_cfra(sipo);
-               
                /* ipokeys */
                if(sipo->showkey) {
                        //if(sipo->ipokey.first==0) make_ipokey();
@@ -2437,12 +2440,15 @@
                if (NLA_IPO_SCALED)
                        actstrip_map_ipo_keys(OBACT, sipo->ipo, 1, 0);
                
-               /* Draw 'curtains' for preview */
-               draw_anim_preview_timespace();
+               /* draw current frame */
+               draw_cfra(sipo);
                
                /* draw markers */
                draw_markers_timespace(SCE_MARKERS, 0);
                
+               /* Draw 'curtains' for preview */
+               draw_anim_preview_timespace();
+               
                /* restore viewport */
                mywinset(sa->win);
                

Modified: branches/animsys2/source/blender/src/header_action.c
===================================================================
--- branches/animsys2/source/blender/src/header_action.c        2008-11-12 
08:46:08 UTC (rev 17421)
+++ branches/animsys2/source/blender/src/header_action.c        2008-11-12 
11:06:44 UTC (rev 17422)
@@ -97,6 +97,7 @@
        ACTMENU_VIEW_PREVKEYFRAME,
        ACTMENU_VIEW_TIME,
        ACTMENU_VIEW_NOHIDE,
+       ACTMENU_VIEW_FRANUM,
        ACTMENU_VIEW_TRANSDELDUPS,
        ACTMENU_VIEW_HORIZOPTIMISE,
        ACTMENU_VIEW_GCOLORS,
@@ -358,6 +359,9 @@
                case ACTMENU_VIEW_NOHIDE: /* Show hidden channels */
                        G.saction->flag ^= SACTION_NOHIDE;
                        break;
+               case ACTMENU_VIEW_FRANUM: /* Show current frame number beside 
indicator */
+                       G.saction->flag ^= SACTION_NODRAWCFRANUM;
+                       break;
                case ACTMENU_VIEW_NEXTKEYFRAME: /* Jump to next keyframe */
                        nextprev_action_keyframe(1);
                        break;
@@ -408,12 +412,22 @@
                                                "Show Frames|Ctrl T", 0, 
yco-=20, 
                                                menuwidth, 19, NULL, 0.0, 0.0, 
1, 
                                                ACTMENU_VIEW_TIME, "");
+                                               
+               uiDefIconTextBut(block, BUTM, 1, (G.saction->flag & 
SACTION_NODRAWCFRANUM)?ICON_CHECKBOX_DEHLT:ICON_CHECKBOX_HLT,  
+                               "Show Current Time Code|", 0, yco-=20, 
+                               menuwidth, 19, NULL, 0.0, 0.0, 1, 
+                               ACTMENU_VIEW_FRANUM, "");
        }
        else {
                uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, 
                                                "Show Seconds|Ctrl T", 0, 
yco-=20, 
                                                menuwidth, 19, NULL, 0.0, 0.0, 
1, 
                                                ACTMENU_VIEW_TIME, "");
+                                               
+               uiDefIconTextBut(block, BUTM, 1, (G.saction->flag & 
SACTION_NODRAWCFRANUM)?ICON_CHECKBOX_DEHLT:ICON_CHECKBOX_HLT, 
+                               "Show Current Frame Number|", 0, yco-=20, 
+                               menuwidth, 19, NULL, 0.0, 0.0, 1, 
+                               ACTMENU_VIEW_FRANUM, "");
        }
        
        uiDefBut(block, SEPR, 0, "",        0, yco-=6, menuwidth, 6, NULL, 0.0, 
0.0, 0, 0, "");

Modified: branches/animsys2/source/blender/src/header_ipo.c
===================================================================
--- branches/animsys2/source/blender/src/header_ipo.c   2008-11-12 08:46:08 UTC 
(rev 17421)
+++ branches/animsys2/source/blender/src/header_ipo.c   2008-11-12 11:06:44 UTC 
(rev 17422)
@@ -729,6 +729,9 @@
        case 16: /* Show/Hide handles */
                G.sipo->flag ^= SIPO_NOHANDLES;
                break;
+       case 17: /* Show current frame number beside indicator */
+               G.sipo->flag ^= SIPO_NODRAWCFRANUM;
+               break;
        }
 }
 
@@ -754,6 +757,8 @@
                                         "AutoMerge Keyframes|", 0, yco-=20, 
menuwidth, 19, NULL, 0.0, 0.0, 1, 15, "");
        uiDefIconTextBut(block, BUTM, 1, (G.sipo->flag & 
SIPO_NOHANDLES)?ICON_CHECKBOX_DEHLT:ICON_CHECKBOX_HLT, 
                                         "Show Handles|Ctrl H", 0, yco-=20, 
menuwidth, 19, NULL, 0.0, 0.0, 1, 16, "");
+       uiDefIconTextBut(block, BUTM, 1, (G.sipo->flag & 
SIPO_NODRAWCFRANUM)?ICON_CHECKBOX_DEHLT:ICON_CHECKBOX_HLT, 
+                                        "Show Handles|Ctrl H", 0, yco-=20, 
menuwidth, 19, NULL, 0.0, 0.0, 1, 17, "");
        
        uiDefBut(block, SEPR, 0, "",        0, yco-=6, menuwidth, 6, NULL, 0.0, 
0.0, 0, 0, "");
 

Modified: branches/animsys2/source/blender/src/header_nla.c
===================================================================
--- branches/animsys2/source/blender/src/header_nla.c   2008-11-12 08:46:08 UTC 
(rev 17421)
+++ branches/animsys2/source/blender/src/header_nla.c   2008-11-12 11:06:44 UTC 
(rev 17422)
@@ -131,6 +131,9 @@
        case 10: /* AutoMerge Keyframes */
                G.snla->flag ^= SNLA_NOTRANSKEYCULL;
                break;
+       case 11: /* Show current frame number beside indicator */
+               G.snla->flag ^= SNLA_NODRAWCFRANUM;
+               break;
        }
 }
 
@@ -145,11 +148,18 @@
                
        uiDefIconTextBut(block, BUTM, 1, (G.snla->flag & 
SNLA_ALLKEYED)?ICON_CHECKBOX_DEHLT:ICON_CHECKBOX_HLT, 
                                         "Only Objects On Visible Layers|", 0, 
yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 6, "");
-               
+       
        if (G.snla->flag & SNLA_DRAWTIME) {
                uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Show Frames|Ctrl 
T", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 7, "");
-       } else {
+               
+               uiDefIconTextBut(block, BUTM, 1, (G.snla->flag & 
SNLA_NODRAWCFRANUM)?ICON_CHECKBOX_DEHLT:ICON_CHECKBOX_HLT,  
+                               "Show Current Time Code|", 0, yco-=20, 
menuwidth, 19, NULL, 0.0, 0.0, 1, 11, "");
+       }
+       else {
                uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Show 
Seconds|Ctrl T", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 7, "");
+               
+               uiDefIconTextBut(block, BUTM, 1, (G.snla->flag & 
SNLA_NODRAWCFRANUM)?ICON_CHECKBOX_DEHLT:ICON_CHECKBOX_HLT, 

@@ Diff output truncated at 10240 characters. @@

_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to