From f7514d2fcf6aad3e834166f48ada51e645c52919 Mon Sep 17 00:00:00 2001 From: Jonathan Moore Liles Date: Sun, 27 Apr 2008 23:42:05 -0500 Subject: [PATCH] Redraw timeline background properly when scrolling. --- Timeline/Makefile | 2 -- Timeline/Timeline.C | 23 ++++++----------------- Timeline/Track.C | 10 +++------- 3 files changed, 9 insertions(+), 26 deletions(-) diff --git a/Timeline/Makefile b/Timeline/Makefile index c95dffb..94b3c1b 100644 --- a/Timeline/Makefile +++ b/Timeline/Makefile @@ -41,8 +41,6 @@ include ../make.inc #LIBS:=$(LIBS) -ljack -lpthread timeline: $(OBJS) - echo $(SRCS) >/dev/stderr - echo $(OBJS) >/dev/stderr $(CXX) $(CXXFLAGS) $(INCLUDES) $(LIBS) -ljack -lpthread $(OBJS) -o $@ -L../FL -lfl_widgets clean: diff --git a/Timeline/Timeline.C b/Timeline/Timeline.C index 26a38ef..8dd80b2 100644 --- a/Timeline/Timeline.C +++ b/Timeline/Timeline.C @@ -165,9 +165,9 @@ Timeline::Timeline ( int X, int Y, int W, int H, const char* L ) : Fl_Overlay_Wi _length = -1; { - Fl_Pack *o = new Fl_Pack( X, rulers->y() + rulers->h(), W - vscroll->w(), 5000 ); + Fl_Pack *o = new Fl_Pack( X, rulers->y() + rulers->h(), W - vscroll->w(), 1 ); o->type( Fl_Pack::VERTICAL ); - o->spacing( 0 ); + o->spacing( 1 ); tracks = o; o->end(); @@ -426,26 +426,16 @@ Timeline::draw_clip ( void * v, int X, int Y, int W, int H ) { Timeline *tl = (Timeline *)v; -// printf( "draw_clip: %d,%d %dx%d\n", X, Y, W, H ); fl_push_clip( X, Y, W, H ); - fl_color( rand() ); - fl_rectf( X, Y, X + W, Y + H ); +/* fl_color( rand() ); */ +/* fl_rectf( X, Y, X + W, Y + H ); */ + tl->draw_box(); tl->draw_child( *tl->rulers ); - /* headers */ - fl_push_clip( tl->tracks->x(), tl->rulers->y() + tl->rulers->h(), Track::width(), tl->h() - tl->rulers->h() - tl->hscroll->h() ); tl->draw_child( *tl->tracks ); - fl_pop_clip(); - - /* track bodies */ - fl_push_clip( tl->tracks->x() + Track::width(), tl->rulers->y() + tl->rulers->h(), tl->tracks->w() - Track::width(), tl->h() - tl->rulers->h() - tl->hscroll->h() ); - tl->draw_child( *tl->tracks ); - fl_pop_clip(); - -// tl->draw_child( *tl->tracks ); fl_pop_clip(); } @@ -562,12 +552,11 @@ Timeline::draw ( void ) if ( damage() & FL_DAMAGE_CHILD ) { - fl_push_clip( rulers->x(), rulers->y(), rulers->w(), rulers->h() ); update_child( *rulers ); fl_pop_clip(); - fl_push_clip( tracks->x(), rulers->y() + rulers->h(), tracks->w(), hscroll->y() - (rulers->y() + rulers->h()) ); + fl_push_clip( tracks->x(), tracks->y(), tracks->w(), h() - rulers->h() - hscroll->h() ); update_child( *tracks ); fl_pop_clip(); diff --git a/Timeline/Track.C b/Timeline/Track.C index c4e632f..e39e0bf 100644 --- a/Timeline/Track.C +++ b/Timeline/Track.C @@ -179,14 +179,13 @@ Track::init ( void ) o->add( "Show all takes", 0, 0, 0, FL_MENU_TOGGLE ); o->add( "New", 0, 0, 0, FL_MENU_DIVIDER ); - } o->end(); } { Fl_Box *o = new Fl_Box( 0, 76, 149, 38 ); - o->box( FL_FLAT_BOX ); + o->box( FL_NO_BOX ); Fl_Group::current()->resizable( o ); } @@ -215,10 +214,6 @@ Track::init ( void ) } end(); -/* /\* FIXME: should be configurable, but where? *\/ */ -/* create_outputs( 2 ); */ -/* create_inputs( 2 ); */ - playback_ds = new Playback_DS( this, engine->frame_rate(), engine->nframes(), output.size() ); record_ds = new Record_DS( this, engine->frame_rate(), engine->nframes(), input.size() ); } @@ -286,8 +281,9 @@ Track::resize ( void ) else controls->show(); + /* FIXME: why is this necessary? */ if ( parent() ) - parent()->redraw(); + parent()->parent()->redraw(); } void