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