diff --git a/Timeline/Control_Sequence.C b/Timeline/Control_Sequence.C index 81cfd55..724c2a3 100644 --- a/Timeline/Control_Sequence.C +++ b/Timeline/Control_Sequence.C @@ -46,6 +46,7 @@ void Control_Sequence::init ( void ) { _track = NULL; + _highlighted = false; color( fl_darker( FL_YELLOW ) ); } @@ -136,6 +137,7 @@ Control_Sequence::draw_curve ( bool flip, bool filled ) } } + void Control_Sequence::draw ( void ) { @@ -211,8 +213,9 @@ Control_Sequence::draw ( void ) timeline->draw_measure_lines( x(), y(), w(), h(), color() ); - for ( list ::const_iterator r = _widgets.begin(); r != _widgets.end(); r++ ) - (*r)->draw_box(); + if ( _highlighted ) + for ( list ::const_iterator r = _widgets.begin(); r != _widgets.end(); r++ ) + (*r)->draw_box(); fl_pop_clip(); } @@ -220,6 +223,20 @@ Control_Sequence::draw ( void ) int Control_Sequence::handle ( int m ) { + switch ( m ) + { + case FL_ENTER: + _highlighted = true; + redraw(); + return 1; + case FL_LEAVE: + _highlighted = false; + redraw(); + return 1; + default: + break; + } + int r = Sequence::handle( m ); if ( r ) diff --git a/Timeline/Control_Sequence.H b/Timeline/Control_Sequence.H index caaf1c5..ef0bd19 100644 --- a/Timeline/Control_Sequence.H +++ b/Timeline/Control_Sequence.H @@ -25,6 +25,8 @@ class Control_Sequence : public Sequence { + bool _highlighted; + void init ( void ); protected: diff --git a/Timeline/Sequence.C b/Timeline/Sequence.C index 9056b8d..7f7c74f 100644 --- a/Timeline/Sequence.C +++ b/Timeline/Sequence.C @@ -351,6 +351,9 @@ Sequence::handle ( int m ) return 1; case FL_UNFOCUS: return 1; + case FL_ENTER: + case FL_LEAVE: + return 1; case FL_DND_ENTER: printf( "enter\n" ); if ( Sequence_Widget::pushed() && Sequence_Widget::pushed()->track()->class_name() == class_name() )