Browse Source

Add remove-selected binding. Work on transactions.

tags/non-daw-v1.1.0
Jonathan Moore Liles 17 years ago
parent
commit
5048f70e50
6 changed files with 44 additions and 0 deletions
  1. +1
    -0
      Audio_Track.H
  2. +17
    -0
      Timeline.C
  3. +19
    -0
      Track.C
  4. +2
    -0
      Track.H
  5. +3
    -0
      Track_Header.H
  6. +2
    -0
      Track_Widget.H

+ 1
- 0
Audio_Track.H View File

@@ -35,5 +35,6 @@ public:


int handle ( int m ); int handle ( int m );
void dump ( void ); void dump ( void );
void remove_selected ( void );


}; };

+ 17
- 0
Timeline.C View File

@@ -412,6 +412,23 @@ Timeline::handle ( int m )


switch ( m ) switch ( m )
{ {
case FL_KEYBOARD:
{
switch ( Fl::event_key() )
{
case FL_Delete:
{
for ( int i = tracks->children(); i--; )
{
Track_Header *t = (Track_Header*)tracks->child( i );

t->track()->remove_selected();
}
return 1;
}

}
}


/* case FL_MOUSEWHEEL: */ /* case FL_MOUSEWHEEL: */
/* { */ /* { */


+ 19
- 0
Track.C View File

@@ -82,6 +82,25 @@ Track::remove ( Track_Widget *r )
} }




void
Track::remove_selected ( void )
{
Loggable::block_start();

for ( list <Track_Widget *>::iterator r = _widgets.begin(); r != _widgets.end(); )
if ( (*r)->selected() )
{
Track_Widget *t = *r;
_widgets.erase( r++ );
delete t;
}
else
++r;

Loggable::block_end();
}


Track_Widget * Track_Widget *
Track::event_widget ( void ) Track::event_widget ( void )
{ {


+ 2
- 0
Track.H View File

@@ -112,6 +112,8 @@ public:
void remove ( Track_Widget *r ); void remove ( Track_Widget *r );
void add ( Track_Widget *r ); void add ( Track_Widget *r );


void remove_selected ( void );

const list <Track_Widget *> widgets ( void ) const { return _widgets; } const list <Track_Widget *> widgets ( void ) const { return _widgets; }


void queue_delete ( Track_Widget *r ) void queue_delete ( Track_Widget *r )


+ 3
- 0
Track_Header.H View File

@@ -48,6 +48,8 @@ private:


int _size; int _size;


enum { AUDIO } _type;

public: public:


Fl_Input * name_field; Fl_Input * name_field;
@@ -198,6 +200,7 @@ public:
static int width(); static int width();


void track( Track * t ); void track( Track * t );
Track * track ( void ) { return _track; }


int handle ( int m ) int handle ( int m )
{ {


+ 2
- 0
Track_Widget.H View File

@@ -59,6 +59,8 @@ public:
_track->remove( this ); _track->remove( this );
} }


bool selected ( void ) { return _selected; }

Fl_Group * parent ( void ) const { return _track; } Fl_Group * parent ( void ) const { return _track; }


int scroll_x ( void ) const { return timeline->ts_to_x( timeline->xoffset ); } int scroll_x ( void ) const { return timeline->ts_to_x( timeline->xoffset ); }


Loading…
Cancel
Save