From 707e898d36356bd2e1e63de26bc9274ca14c5649 Mon Sep 17 00:00:00 2001 From: Jonathan Moore Liles Date: Tue, 29 Apr 2008 16:16:09 -0500 Subject: [PATCH] Add Select None option to the GUI. --- Timeline/Sequence_Widget.H | 10 ++++++++++ Timeline/TLE.fl | 16 +++++++++++++--- Timeline/Timeline.C | 19 +++++++++++++------ Timeline/Timeline.H | 6 ++++++ 4 files changed, 42 insertions(+), 9 deletions(-) diff --git a/Timeline/Sequence_Widget.H b/Timeline/Sequence_Widget.H index 9854cf5..d8e1857 100644 --- a/Timeline/Sequence_Widget.H +++ b/Timeline/Sequence_Widget.H @@ -205,6 +205,16 @@ public: delete _selection.front(); } + static void + select_none ( void ) + { + while ( _selection.size() ) + { + _selection.front()->redraw(); + _selection.pop_front(); + } + } + static Sequence_Widget *current ( void ) { return Sequence_Widget::_current; } static Sequence_Widget *pushed ( void ) { return Sequence_Widget::_pushed; } diff --git a/Timeline/TLE.fl b/Timeline/TLE.fl index 28a6862..d702a77 100644 --- a/Timeline/TLE.fl +++ b/Timeline/TLE.fl @@ -114,7 +114,7 @@ free( path );} {} label {Non-DAW - Timeline} open xywh {577 94 1024 768} type Double resizable xclass {Non-DAW} visible } { - Fl_Menu_Bar menubar { + Fl_Menu_Bar menubar {open xywh {0 0 1024 25} } { Submenu {} { @@ -167,7 +167,17 @@ exit( 0 );} MenuItem {} { label Undo callback {Loggable::undo();} - xywh {0 0 40 25} shortcut 0x4007a + xywh {0 0 40 25} shortcut 0x4007a divider + } + MenuItem {} { + label {Select None} + callback {timeline->select_none();} + xywh {10 10 40 25} shortcut 0x50061 + } + MenuItem {} { + label {Delete Selected} + callback {timeline->delete_selected();} selected + xywh {20 20 40 25} shortcut 0xffff } } Submenu {} { @@ -510,7 +520,7 @@ delete win;} class Timeline } Fl_Value_Output xruns_output { - label {xruns:} selected + label {xruns:} xywh {980 2 44 20} maximum 40000 step 1 } } diff --git a/Timeline/Timeline.C b/Timeline/Timeline.C index ee6843d..7feb8b6 100644 --- a/Timeline/Timeline.C +++ b/Timeline/Timeline.C @@ -742,7 +742,7 @@ Timeline::draw_overlay ( void ) /** select all widgets in inside rectangle /r/ */ void -Timeline::select( const Rectangle &r ) +Timeline::select ( const Rectangle &r ) { const int Y = r.y; @@ -755,6 +755,18 @@ Timeline::select( const Rectangle &r ) } } +void +Timeline::delete_selected ( void ) +{ + Sequence_Widget::delete_selected(); +} + +void +Timeline::select_none ( void ) +{ + Sequence_Widget::select_none(); +} + int Timeline::handle ( int m ) { @@ -776,11 +788,6 @@ Timeline::handle ( int m ) switch ( Fl::event_key() ) { case FL_Delete: - { - Sequence_Widget::delete_selected(); - - return 1; - } case FL_Home: case FL_End: /* keep scrollbar from eating these. */ diff --git a/Timeline/Timeline.H b/Timeline/Timeline.H index 9a48a2e..4e3fed9 100644 --- a/Timeline/Timeline.H +++ b/Timeline/Timeline.H @@ -158,6 +158,10 @@ public: void select( const Rectangle &r ); + + void delete_selected ( void ); + void select_none ( void ); + void add_track ( Track *track ); void remove_track ( Track *track ); @@ -172,6 +176,8 @@ public: void zoom_in ( void ); void zoom_out ( void ); + + private: friend class Engine; // FIXME: only Engine::process() needs to be friended.x