Permit removal of Track_Widgets.
This commit is contained in:
parent
408bf5b296
commit
f5aaee31f7
|
@ -21,6 +21,8 @@
|
||||||
|
|
||||||
#include "Track.H"
|
#include "Track.H"
|
||||||
|
|
||||||
|
#include <FL/Fl_Input.H>
|
||||||
|
|
||||||
class Audio_Track : public Track
|
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 )
|
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 */
|
/** event handler that supports DND of audio clips */
|
||||||
|
|
7
Region.H
7
Region.H
|
@ -204,6 +204,13 @@ public:
|
||||||
ox = x() - X;
|
ox = x() - X;
|
||||||
oy = y() - Y;
|
oy = y() - Y;
|
||||||
|
|
||||||
|
if ( Fl::event_state() & FL_CTRL &&
|
||||||
|
Fl::event_button() == 3 )
|
||||||
|
{
|
||||||
|
_track->queue_delete( this );
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
case FL_RELEASE:
|
case FL_RELEASE:
|
||||||
|
|
11
Track.C
11
Track.C
|
@ -25,6 +25,8 @@
|
||||||
#include <FL/fl_draw.H>
|
#include <FL/fl_draw.H>
|
||||||
|
|
||||||
|
|
||||||
|
Track_Widget * Track::_queued_widget = NULL;
|
||||||
|
|
||||||
static bool
|
static bool
|
||||||
sort_func ( Track_Widget *lhs, Track_Widget *rhs )
|
sort_func ( Track_Widget *lhs, Track_Widget *rhs )
|
||||||
{
|
{
|
||||||
|
@ -163,6 +165,15 @@ Track::handle ( int m )
|
||||||
if ( retval && m == FL_RELEASE )
|
if ( retval && m == FL_RELEASE )
|
||||||
current_widget = NULL;
|
current_widget = NULL;
|
||||||
|
|
||||||
|
if ( _queued_widget )
|
||||||
|
{
|
||||||
|
remove( _queued_widget );
|
||||||
|
delete _queued_widget;
|
||||||
|
_queued_widget = NULL;
|
||||||
|
current_widget = NULL;
|
||||||
|
redraw();
|
||||||
|
}
|
||||||
|
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
9
Track.H
9
Track.H
|
@ -40,6 +40,8 @@ class Track : public Fl_Group
|
||||||
Track *_prev;
|
Track *_prev;
|
||||||
char *_name;
|
char *_name;
|
||||||
|
|
||||||
|
static Track_Widget * _queued_widget;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
list <Track_Widget *> _widgets;
|
list <Track_Widget *> _widgets;
|
||||||
|
@ -67,6 +69,13 @@ public:
|
||||||
void remove ( Track_Widget *r );
|
void remove ( Track_Widget *r );
|
||||||
void add ( 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 void snap ( Track_Widget *r );
|
||||||
virtual int handle ( int m );
|
virtual int handle ( int m );
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue