|
|
|
@@ -28,40 +28,40 @@ |
|
|
|
#include "Track_Header.H" |
|
|
|
|
|
|
|
void |
|
|
|
cb_hscroll ( Fl_Widget *w, void *v ) |
|
|
|
Timeline::cb_scroll ( Fl_Widget *w, void *v ) |
|
|
|
{ |
|
|
|
Scalebar *sb = (Scalebar*)w; |
|
|
|
((Timeline*)v)->cb_scroll( w ); |
|
|
|
} |
|
|
|
|
|
|
|
if ( sb->zoom_changed() ) |
|
|
|
void |
|
|
|
Timeline::cb_scroll ( Fl_Widget *w ) |
|
|
|
{ |
|
|
|
if ( w == vscroll ) |
|
|
|
{ |
|
|
|
timeline->fpp = sb->zoom() * 1; |
|
|
|
tracks->position( tracks->x(), (rulers->y() + rulers->h()) - vscroll->value() ); |
|
|
|
|
|
|
|
int maxx = timeline->ts_to_x( timeline->length ); |
|
|
|
sb->range( 0, maxx ); |
|
|
|
yposition = vscroll->value(); |
|
|
|
|
|
|
|
timeline->redraw(); |
|
|
|
vscroll->value( vscroll->value(), 30, 0, min( tracks->h(), tracks->h() - h() - rulers->h() ) ); |
|
|
|
|
|
|
|
damage( FL_DAMAGE_SCROLL ); |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
timeline->position( sb->value() ); |
|
|
|
} |
|
|
|
|
|
|
|
printf( "%lu\n", timeline->xoffset ); |
|
|
|
} |
|
|
|
|
|
|
|
void |
|
|
|
cb_vscroll ( Fl_Widget *w, void *v ) |
|
|
|
{ |
|
|
|
Fl_Scrollbar *sb = (Fl_Scrollbar*)w; |
|
|
|
|
|
|
|
timeline->tracks->position( timeline->tracks->x(), (timeline->rulers->y() + timeline->rulers->h()) - sb->value() ); |
|
|
|
timeline->yposition = sb->value(); |
|
|
|
|
|
|
|
// timeline->vscroll->range( 0, timeline->tracks->h() - timeline->h() - timeline->rulers->h() ); |
|
|
|
if ( hscroll->zoom_changed() ) |
|
|
|
{ |
|
|
|
fpp = hscroll->zoom() * 1; |
|
|
|
|
|
|
|
sb->value( sb->value(), 30, 0, min( timeline->tracks->h(), timeline->tracks->h() - timeline->h() - timeline->rulers->h() ) ); |
|
|
|
int maxx = ts_to_x( length ); |
|
|
|
hscroll->range( 0, maxx ); |
|
|
|
|
|
|
|
timeline->damage( FL_DAMAGE_SCROLL ); |
|
|
|
redraw(); |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
position( hscroll->value() ); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@@ -81,7 +81,7 @@ Timeline::Timeline ( int X, int Y, int W, int H, const char* L ) : Fl_Overlay_Wi |
|
|
|
o->zoom_range( 2, 8192 ); |
|
|
|
o->zoom( 256 ); |
|
|
|
o->type( FL_HORIZONTAL ); |
|
|
|
o->callback( cb_hscroll, 0 ); |
|
|
|
o->callback( cb_scroll, this ); |
|
|
|
|
|
|
|
hscroll = o; |
|
|
|
} |
|
|
|
@@ -91,7 +91,7 @@ Timeline::Timeline ( int X, int Y, int W, int H, const char* L ) : Fl_Overlay_Wi |
|
|
|
|
|
|
|
o->type( FL_VERTICAL ); |
|
|
|
// o->step( 10 ); |
|
|
|
o->callback( cb_vscroll, 0 ); |
|
|
|
o->callback( cb_scroll, this ); |
|
|
|
vscroll = o; |
|
|
|
} |
|
|
|
|
|
|
|
@@ -144,7 +144,6 @@ Timeline::Timeline ( int X, int Y, int W, int H, const char* L ) : Fl_Overlay_Wi |
|
|
|
|
|
|
|
sample_rate = 44100; |
|
|
|
fpp = 256; |
|
|
|
_beats_per_minute = 120; |
|
|
|
length = sample_rate * 60 * 2; |
|
|
|
|
|
|
|
{ |
|
|
|
|