@@ -33,6 +33,14 @@ public: | |||||
{ | { | ||||
} | } | ||||
Track * clone_empty ( void ) | |||||
{ | |||||
Audio_Track *t = new Audio_Track( x(), y(), w(), h() ); | |||||
return t; | |||||
} | |||||
const char *class_name ( void ) { return "Audio_Track"; } | const char *class_name ( void ) { return "Audio_Track"; } | ||||
int handle ( int m ); | int handle ( int m ); | ||||
@@ -94,6 +94,13 @@ public: | |||||
log_create(); | log_create(); | ||||
} | } | ||||
/* const Track & operator= ( const Track & rhs ) */ | |||||
/* { */ | |||||
/* if ( *this = rhs ) */ | |||||
/* return; */ | |||||
/* } */ | |||||
virtual ~Track ( ) | virtual ~Track ( ) | ||||
{ | { | ||||
/* FIXME: what to do with regions? */ | /* FIXME: what to do with regions? */ | ||||
@@ -102,6 +109,9 @@ public: | |||||
log_destroy(); | log_destroy(); | ||||
} | } | ||||
static Track_Widget *pushed ( void ) { return _pushed; }; | static Track_Widget *pushed ( void ) { return _pushed; }; | ||||
static Track_Widget *belowmouse ( void ) { return _belowmouse; }; | static Track_Widget *belowmouse ( void ) { return _belowmouse; }; | ||||
@@ -126,6 +136,16 @@ public: | |||||
Track_Widget * overlaps ( Track_Widget *r ); | Track_Widget * overlaps ( Track_Widget *r ); | ||||
virtual Track * clone ( void ) | |||||
{ | |||||
assert( 0 ); | |||||
} | |||||
virtual Track * clone_empty ( void ) | |||||
{ | |||||
return NULL; | |||||
} | |||||
virtual void snap ( Track_Widget *r ); | virtual void snap ( Track_Widget *r ); | ||||
virtual int handle ( int m ); | virtual int handle ( int m ); | ||||
virtual void draw ( void ); | virtual void draw ( void ); | ||||
@@ -60,10 +60,14 @@ Track_Header::cb_button ( Fl_Widget *w ) | |||||
{ | { | ||||
int v = take_menu->value(); | int v = take_menu->value(); | ||||
if ( v == 0 ) | |||||
switch ( v ) | |||||
{ | { | ||||
show_all_takes( take_menu->menu()[ v ].value() ); | |||||
return; | |||||
case 0: /* show all takes */ | |||||
show_all_takes( take_menu->menu()[ v ].value() ); | |||||
return; | |||||
case 1: /* new */ | |||||
track( track()->clone_empty() ); | |||||
return; | |||||
} | } | ||||
const char *s = take_menu->menu()[ v ].text; | const char *s = take_menu->menu()[ v ].text; | ||||
@@ -147,7 +151,10 @@ Track_Header::Track_Header ( int X, int Y, int W, int H, const char *L ) : | |||||
o->color( FL_LIGHT1 ); | o->color( FL_LIGHT1 ); | ||||
o->align( FL_ALIGN_LEFT | FL_ALIGN_INSIDE ); | o->align( FL_ALIGN_LEFT | FL_ALIGN_INSIDE ); | ||||
o->callback( cb_button, this ); | o->callback( cb_button, this ); | ||||
o->add( "Show all takes", 0, 0, 0, FL_MENU_TOGGLE ); | o->add( "Show all takes", 0, 0, 0, FL_MENU_TOGGLE ); | ||||
o->add( "New", 0, 0, 0, FL_MENU_DIVIDER ); | |||||
} | } | ||||
o->end(); | o->end(); | ||||
} | } | ||||