| @@ -452,7 +452,7 @@ Audio_Region::draw_box( void ) | |||
| } | |||
| Fl_Boxtype b; | |||
| Fl_Color c = color; | |||
| Fl_Color c = selected() ? selection_color : color; | |||
| if ( Audio_Region::show_box ) | |||
| { | |||
| @@ -462,14 +462,8 @@ Audio_Region::draw_box( void ) | |||
| { | |||
| b = FL_DOWN_FRAME; | |||
| } | |||
| if ( selected() ) | |||
| fl_draw_box( fl_down( b ), x(), y(), w(), h(), selection_color ); | |||
| else | |||
| fl_draw_box( b, x(), y(), w(), h(), c ); | |||
| /* used to draw fades here */ | |||
| /* draw fades */ | |||
| fl_draw_box( b, x(), y(), w(), h(), c ); | |||
| fl_pop_clip(); | |||
| } | |||
| @@ -633,16 +627,14 @@ Audio_Region::draw ( void ) | |||
| // DMESSAGE( "using cached peaks" ); | |||
| } | |||
| Fl_Color c = _color; | |||
| Fl_Color c = Fl::get_color( _color ); | |||
| // c = fl_color_average( FL_BLACK, FL_RED, 0.20 ); | |||
| c = fl_color_add_alpha( c, 220 ); | |||
| if ( peaks && pbuf ) | |||
| { | |||
| int ch = (h() - Fl::box_dh( box() )) / channels; | |||
| for ( int i = 0; i < channels; ++i ) | |||
| { | |||
| Waveform::draw( X + xo, | |||
| @@ -664,8 +656,6 @@ Audio_Region::draw ( void ) | |||
| } | |||
| while ( _loop && xo < W ); | |||
| timeline->draw_measure_lines( X, Y, W, H ); | |||
| if ( _loop && offset < _loop ) | |||
| { | |||
| const int lx = timeline->ts_to_x( _loop - offset ); | |||
| @@ -703,14 +693,7 @@ Audio_Region::draw ( void ) | |||
| /* fl_line( rx, Y, rx, Y + H ); */ | |||
| /* fl_line( rx + rw - 1, Y, rx + rw - 1, Y + H ); */ | |||
| if ( _clip->dummy() ) | |||
| { | |||
| char pat[256]; | |||
| snprintf( pat, sizeof( pat ), "Missing Source!: %s", _clip->name() ); | |||
| draw_label( pat, align() ); | |||
| } | |||
| else | |||
| draw_label( _clip->name(), align() ); | |||
| /* if ( current() ) */ | |||
| /* { */ | |||
| @@ -727,6 +710,19 @@ Audio_Region::draw ( void ) | |||
| } | |||
| void | |||
| Audio_Region::draw_label ( void ) | |||
| { | |||
| if ( _clip->dummy() ) | |||
| { | |||
| char pat[256]; | |||
| snprintf( pat, sizeof( pat ), "Missing Source!: %s", _clip->name() ); | |||
| draw_label( pat, align() ); | |||
| } | |||
| else | |||
| draw_label( _clip->name(), align() ); | |||
| } | |||
| /** split region at absolute frame /where/ */ | |||
| void | |||
| Audio_Region::split ( nframes_t where ) | |||
| @@ -119,8 +119,14 @@ protected: | |||
| virtual void get ( Log_Entry &e ) const; | |||
| virtual void set ( Log_Entry &e ); | |||
| void draw_label ( const char *label, Fl_Align align ) | |||
| { | |||
| Sequence_Widget::draw_label( label, align ); | |||
| } | |||
| int handle ( int m ); | |||
| void draw_box( void ); | |||
| void draw_label ( void ); | |||
| void draw_box ( void ); | |||
| void draw ( void ); | |||
| void resize ( void ); | |||
| @@ -152,7 +158,7 @@ public: | |||
| ~Audio_Region ( ); | |||
| Fl_Boxtype box ( void ) const { return Audio_Region::_box; } | |||
| Fl_Align align ( void ) const { return (Fl_Align)(FL_ALIGN_LEFT | FL_ALIGN_BOTTOM /*| FL_ALIGN_CLIP*/ | FL_ALIGN_INSIDE); } | |||
| Fl_Align align ( void ) const { return (Fl_Align)(FL_ALIGN_LEFT | FL_ALIGN_BOTTOM | FL_ALIGN_INSIDE | FL_ALIGN_CLIP ); } | |||
| void normalize ( void ); | |||
| void split ( nframes_t where ); | |||
| @@ -164,7 +164,6 @@ Audio_Sequence::draw ( void ) | |||
| { | |||
| if ( *o <= **r ) | |||
| { | |||
| /* if ( o->x() == (*r)->x() && o->w() == (*r)->w() ) */ | |||
| /* printf( "complete superposition\n" ); */ | |||
| @@ -189,8 +188,8 @@ Audio_Sequence::draw ( void ) | |||
| fl_push_clip( b.x, b.y, b.w, b.h ); | |||
| draw_box( FL_FLAT_BOX, b.x - 100, b.y, b.w + 200, b.h, c ); | |||
| draw_box( FL_UP_FRAME, b.x - 100, b.y, b.w + 200, b.h, c ); | |||
| Fl_Widget::draw_box( FL_FLAT_BOX, b.x - 100, b.y, b.w + 200, b.h, c ); | |||
| Fl_Widget::draw_box( FL_UP_FRAME, b.x - 100, b.y, b.w + 200, b.h, c ); | |||
| fl_pop_clip(); | |||
| @@ -310,13 +310,13 @@ Control_Sequence::draw_curve ( bool flip, bool filled ) | |||
| void | |||
| Control_Sequence::draw ( void ) | |||
| { | |||
| if ( ! fl_not_clipped( x(), y(), w(), h() ) ) | |||
| return; | |||
| // draw_box(); | |||
| fl_push_clip( x(), y(), w(), h() ); | |||
| /* draw the box with the ends cut off. */ | |||
| draw_box( box(), x() - Fl::box_dx( box() ), y(), w() + Fl::box_dw( box() ) + 1, h(), color() ); | |||
| // draw_box( box(), x() - Fl::box_dx( box() ), y(), w() + Fl::box_dw( box() ) + 1, h(), color() ); | |||
| const int bx = x(); | |||
| const int by = y() + Fl::box_dy( box() ); | |||
| @@ -387,7 +387,7 @@ Control_Sequence::draw ( void ) | |||
| fl_line_style( FL_SOLID, 0 ); | |||
| } | |||
| // timeline->draw_measure_lines( x(), y(), w(), h(), color ); | |||
| timeline->draw_measure_lines( X, Y, W, H ); | |||
| if ( interpolation() == None || _highlighted || Fl::focus() == this ) | |||
| for ( list <Sequence_Widget *>::const_iterator r = _widgets.begin(); r != _widgets.end(); r++ ) | |||
| @@ -255,42 +255,37 @@ Sequence::snap ( Sequence_Widget *r ) | |||
| } | |||
| void | |||
| Sequence::draw_box ( void ) | |||
| { | |||
| /* draw the box with the ends cut off. */ | |||
| Fl_Widget::draw_box( box(), x() - Fl::box_dx( box() ) - 1, y(), w() + Fl::box_dw( box() ) + 2, h(), color() ); | |||
| } | |||
| void | |||
| Sequence::draw ( void ) | |||
| { | |||
| fl_push_clip( x(), y(), w(), h() ); | |||
| if ( ! fl_not_clipped( x(), y(), w(), h() ) ) | |||
| return; | |||
| draw_box(); | |||
| fl_push_clip( x(), y(), w(), h() ); | |||
| for ( list <Sequence_Widget *>::const_iterator r = _widgets.begin(); r != _widgets.end(); ++r ) | |||
| (*r)->draw_box(); | |||
| /* draw the box with the ends cut off. */ | |||
| draw_box( box(), x() - Fl::box_dx( box() ) - 1, y(), w() + Fl::box_dw( box() ) + 2, h(), color() ); | |||
| for ( list <Sequence_Widget *>::const_iterator r = _widgets.begin(); r != _widgets.end(); ++r ) | |||
| (*r)->draw(); | |||
| int X, Y, W, H; | |||
| fl_clip_box( x(), y(), w(), h(), X, Y, W, H ); | |||
| /* if ( Sequence_Widget::pushed() && Sequence_Widget::pushed()->sequence() == this ) */ | |||
| /* { */ | |||
| /* /\* make sure the Sequence_Widget::pushed widget is above all others *\/ */ | |||
| /* remove( Sequence_Widget::pushed() ); */ | |||
| /* add( Sequence_Widget::pushed() ); */ | |||
| /* } */ | |||
| // printf( "track::draw %d,%d %dx%d\n", X,Y,W,H ); | |||
| timeline->draw_measure_lines( X, Y, W, H ); | |||
| for ( list <Sequence_Widget *>::const_iterator r = _widgets.begin(); r != _widgets.end(); ++r ) | |||
| (*r)->draw_box(); | |||
| for ( list <Sequence_Widget *>::const_iterator r = _widgets.begin(); r != _widgets.end(); ++r ) | |||
| (*r)->draw(); | |||
| (*r)->draw_label(); | |||
| fl_pop_clip(); | |||
| } | |||
| #include "FL/test_press.H" | |||
| @@ -136,6 +136,7 @@ public: | |||
| virtual void snap ( Sequence_Widget *r ); | |||
| virtual int handle ( int m ); | |||
| virtual void draw ( void ); | |||
| virtual void draw_box ( void ); | |||
| virtual nframes_t process ( nframes_t ) { return 0; } | |||
| @@ -247,7 +247,7 @@ Sequence_Region::handle ( int m ) | |||
| void | |||
| Sequence_Region::draw_box ( void ) | |||
| { | |||
| fl_draw_box( box(), line_x(), y(), abs_w(), h(), box_color() ); | |||
| fl_draw_box( box(), line_x(), y(), abs_w(), h(), fl_color_add_alpha( box_color(), 127 ) ); | |||
| } | |||
| void | |||
| @@ -230,6 +230,11 @@ Sequence_Widget::start ( nframes_t where ) | |||
| } | |||
| } | |||
| void | |||
| Sequence_Widget::draw_label ( void ) | |||
| { | |||
| } | |||
| void | |||
| Sequence_Widget::draw_label ( const char *label, Fl_Align align, Fl_Color color, int xo, int yo ) | |||
| { | |||
| @@ -281,6 +281,7 @@ public: | |||
| virtual void draw_box ( void ); | |||
| virtual void draw ( void ); | |||
| virtual void draw_label ( void ); | |||
| bool | |||
| operator< ( const Sequence_Widget & rhs ) const | |||
| @@ -839,8 +839,6 @@ Track::draw ( void ) | |||
| fl_clip_box( x(), y(), w(), h(), X, Y, W, H ); | |||
| timeline->draw_measure_lines( X, Y, W, H ); | |||
| if ( _selected ) | |||
| { | |||
| Fl_Color c = color(); | |||
| @@ -854,7 +852,6 @@ Track::draw ( void ) | |||
| else | |||
| Fl_Group::draw(); | |||
| fl_pop_clip(); | |||
| } | |||