Browse Source

Permit removal of Track_Widgets.

tags/non-daw-v1.1.0
Jonathan Moore Liles 17 years ago
parent
commit
f5aaee31f7
4 changed files with 34 additions and 0 deletions
  1. +7
    -0
      Audio_Track.H
  2. +7
    -0
      Region.H
  3. +11
    -0
      Track.C
  4. +9
    -0
      Track.H

+ 7
- 0
Audio_Track.H View File

@@ -21,6 +21,8 @@

#include "Track.H"

#include <FL/Fl_Input.H>

class Audio_Track : public Track
{

@@ -28,6 +30,11 @@ public:

Audio_Track ( int X, int Y, int W, int H ) : Track( X, Y, W, H )
{

/* Fl_Group *o = new Fl_Group( 0, 0, 100, H ); */
/* new Fl_Input( 0, 0, 100, 24, "name:" ); */
/* o->end(); */

}

/** event handler that supports DND of audio clips */


+ 7
- 0
Region.H View File

@@ -204,6 +204,13 @@ public:
ox = x() - X;
oy = y() - Y;

if ( Fl::event_state() & FL_CTRL &&
Fl::event_button() == 3 )
{
_track->queue_delete( this );
return 0;
}

return 1;
}
case FL_RELEASE:


+ 11
- 0
Track.C View File

@@ -25,6 +25,8 @@
#include <FL/fl_draw.H>


Track_Widget * Track::_queued_widget = NULL;

static bool
sort_func ( Track_Widget *lhs, Track_Widget *rhs )
{
@@ -163,6 +165,15 @@ Track::handle ( int m )
if ( retval && m == FL_RELEASE )
current_widget = NULL;

if ( _queued_widget )
{
remove( _queued_widget );
delete _queued_widget;
_queued_widget = NULL;
current_widget = NULL;
redraw();
}

return retval;
}
else


+ 9
- 0
Track.H View File

@@ -40,6 +40,8 @@ class Track : public Fl_Group
Track *_prev;
char *_name;

static Track_Widget * _queued_widget;

protected:

list <Track_Widget *> _widgets;
@@ -67,6 +69,13 @@ public:
void remove ( Track_Widget *r );
void add ( Track_Widget *r );

void queue_delete ( Track_Widget *r )
{
assert( ! _queued_widget );

_queued_widget = r;
}

virtual void snap ( Track_Widget *r );
virtual int handle ( int m );



Loading…
Cancel
Save