| @@ -48,7 +48,7 @@ protected: | |||||
| asprintf( &sa[i++], ":track 0x%X", _track ? _track->id() : 0 ); | asprintf( &sa[i++], ":track 0x%X", _track ? _track->id() : 0 ); | ||||
| asprintf( &sa[i++], ":x %lu", _offset ); | asprintf( &sa[i++], ":x %lu", _offset ); | ||||
| asprintf( &sa[i++], ":tempo %f", _tempo ); | |||||
| asprintf( &sa[i++], ":tempo %.2f", _tempo ); | |||||
| sa[i] = NULL; | sa[i] = NULL; | ||||
| @@ -69,7 +69,7 @@ protected: | |||||
| if ( ! strcmp( s, ":x" ) ) | if ( ! strcmp( s, ":x" ) ) | ||||
| _offset = atol( v ); | _offset = atol( v ); | ||||
| else | else | ||||
| if ( ! strcmp( s, ":tepmo" ) ) | |||||
| if ( ! strcmp( s, ":tempo" ) ) | |||||
| _tempo = atof( v ); | _tempo = atof( v ); | ||||
| else | else | ||||
| if ( ! strcmp( s, ":track" ) ) | if ( ! strcmp( s, ":track" ) ) | ||||
| @@ -92,6 +92,7 @@ protected: | |||||
| timeline->rulers->redraw(); | timeline->rulers->redraw(); | ||||
| timeline->tracks->redraw(); | timeline->tracks->redraw(); | ||||
| _make_label(); | _make_label(); | ||||
| } | } | ||||
| @@ -69,7 +69,7 @@ Timeline::Timeline ( int X, int Y, int W, int H, const char* L ) : Fl_Group( X, | |||||
| xoffset = 0; | xoffset = 0; | ||||
| { | { | ||||
| Scalebar *o = new Scalebar( X, H - 18, W - 18, 18 ); | |||||
| Scalebar *o = new Scalebar( X, Y + H - 18, W - 18, 18 ); | |||||
| o->range( 0, 48000 * 2 ); | o->range( 0, 48000 * 2 ); | ||||
| o->zoom_range( 2, 8192 ); | o->zoom_range( 2, 8192 ); | ||||
| @@ -81,7 +81,7 @@ Timeline::Timeline ( int X, int Y, int W, int H, const char* L ) : Fl_Group( X, | |||||
| } | } | ||||
| { | { | ||||
| Fl_Scrollbar *o = new Fl_Scrollbar( W - 18, Y, 18, H - 18 ); | |||||
| Fl_Scrollbar *o = new Fl_Scrollbar( X + W - 18, Y, 18, H - 18 ); | |||||
| o->type( FL_VERTICAL ); | o->type( FL_VERTICAL ); | ||||
| o->step( 10 ); | o->step( 10 ); | ||||
| @@ -90,7 +90,7 @@ Timeline::Timeline ( int X, int Y, int W, int H, const char* L ) : Fl_Group( X, | |||||
| } | } | ||||
| { | { | ||||
| Fl_Pack *o = new Fl_Pack( 0, 0, W - vscroll->w(), H - hscroll->h(), "rulers" ); | |||||
| Fl_Pack *o = new Fl_Pack( X, Y, W - vscroll->w(), H - hscroll->h(), "rulers" ); | |||||
| o->type( Fl_Pack::VERTICAL ); | o->type( Fl_Pack::VERTICAL ); | ||||
| { | { | ||||
| @@ -104,9 +104,10 @@ Track::add ( Track_Widget *r ) | |||||
| r->track()->redraw(); | r->track()->redraw(); | ||||
| } | } | ||||
| r->track( this ); | |||||
| _widgets.push_back( r ); | _widgets.push_back( r ); | ||||
| r->track( this ); | |||||
| sort(); | |||||
| } | } | ||||
| /* snap /r/ to nearest edge */ | /* snap /r/ to nearest edge */ | ||||
| @@ -53,13 +53,14 @@ Timeline *timeline; | |||||
| void cb_undo ( Fl_Widget *w, void *v ) | void cb_undo ( Fl_Widget *w, void *v ) | ||||
| { | { | ||||
| static char pat[20]; | |||||
| /* static char pat[20]; */ | |||||
| Loggable::undo(); | Loggable::undo(); | ||||
| sprintf( pat, "undo %d", Loggable::undo_index() ); | |||||
| w->label( pat ); | |||||
| /* sprintf( pat, "undo %d", Loggable::undo_index() ); */ | |||||
| /* w->label( pat ); */ | |||||
| } | } | ||||
| int | int | ||||
| @@ -76,7 +77,7 @@ main ( int argc, char **argv ) | |||||
| Loggable::register_create( "Time_Point", &Time_Point::create ); | Loggable::register_create( "Time_Point", &Time_Point::create ); | ||||
| timeline = new Timeline( 0, 0, 800, 600, "Timeline" ); | |||||
| timeline = new Timeline( 0, 24, 800, 600 - 24, "Timeline" ); | |||||
| // Region *wave = new Region( Clip::from_file( "streambass8.wav" ) ); | // Region *wave = new Region( Clip::from_file( "streambass8.wav" ) ); | ||||
| @@ -85,7 +86,8 @@ main ( int argc, char **argv ) | |||||
| // timeline->scrollbar = new Scalebar( 0, 600 - 24, 800, 24 ); | // timeline->scrollbar = new Scalebar( 0, 600 - 24, 800, 24 ); | ||||
| Fl_Button *o = new Fl_Button( 0, 0, 50, 50, "undo" ); | |||||
| Fl_Button *o = new Fl_Button( 0, 0, 50, 24, "undo" ); | |||||
| o->shortcut( FL_CTRL + 'z' ); | |||||
| o->callback( cb_undo, 0 ); | o->callback( cb_undo, 0 ); | ||||
| main_window->end(); | main_window->end(); | ||||