From 80005dcf8903e211f2f051acd85f3be19f65a99f Mon Sep 17 00:00:00 2001 From: Jonathan Moore Liles Date: Wed, 30 Apr 2008 19:38:49 -0500 Subject: [PATCH] Enhance the way sequence points are drawn. --- Timeline/Ruler_Sequence.H | 12 ++++++------ Timeline/Sequence.C | 2 +- Timeline/Sequence_Point.H | 14 ++++++++++++-- 3 files changed, 19 insertions(+), 9 deletions(-) diff --git a/Timeline/Ruler_Sequence.H b/Timeline/Ruler_Sequence.H index d0521a4..693cc57 100644 --- a/Timeline/Ruler_Sequence.H +++ b/Timeline/Ruler_Sequence.H @@ -33,12 +33,12 @@ public: // box( FL_UP_BOX ); } - void - draw ( void ) - { - Sequence::draw(); - timeline->draw_measure_BBT( x(), y(), w(), h(), FL_WHITE ); - } +/* void */ +/* draw ( void ) */ +/* { */ +/* // timeline->draw_measure_BBT( x(), y(), w(), h(), FL_WHITE ); */ +/* Sequence::draw(); */ +/* } */ int handle ( int m ) { diff --git a/Timeline/Sequence.C b/Timeline/Sequence.C index 2cba111..eb2691c 100644 --- a/Timeline/Sequence.C +++ b/Timeline/Sequence.C @@ -111,7 +111,7 @@ Sequence::draw ( void ) // printf( "track::draw %d,%d %dx%d\n", X,Y,W,H ); - timeline->draw_measure_lines( x(), y(), w(), h(), color() ); + timeline->draw_measure_lines( X, Y, W, H, color() ); for ( list ::const_iterator r = _widgets.begin(); r != _widgets.end(); r++ ) (*r)->draw_box(); diff --git a/Timeline/Sequence_Point.H b/Timeline/Sequence_Point.H index 509e2f3..dfcb4a0 100644 --- a/Timeline/Sequence_Point.H +++ b/Timeline/Sequence_Point.H @@ -56,10 +56,12 @@ public: Fl_Align align ( void ) const { return FL_ALIGN_RIGHT; } - /* FIXME: hack */ - virtual int x ( void ) const { const int x = Sequence_Widget::x(); if ( x == _track->x() ) return x - 3; else return x; } virtual int abs_w ( void ) const { return 10; } + + /* FIXME: hack */ + virtual int x ( void ) const { const int x = Sequence_Widget::x() - ( abs_w() >> 1 ); if ( x == _track->x() ) return x - 3; else return x; } + nframes_t length ( void ) const { return timeline->x_to_ts( abs_w() ); } Sequence_Point ( ) @@ -77,6 +79,14 @@ public: { Sequence_Widget::draw(); + const int x = Sequence_Widget::x(); + + const int y = this->y() + Fl::box_dy( box() ); + + fl_color( FL_WHITE ); + + fl_line( x, y, x, y + h() - Fl::box_dh( box() ) ); + draw_label( _label, align() ); } };