More work on undo.
This commit is contained in:
parent
aacd502f04
commit
618d78eaeb
|
@ -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 );
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
3
Track.C
3
Track.C
|
@ -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 */
|
||||||
|
|
12
main.C
12
main.C
|
@ -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() );
|
/* sprintf( pat, "undo %d", Loggable::undo_index() ); */
|
||||||
w->label( pat );
|
/* 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();
|
||||||
|
|
Loading…
Reference in New Issue