Browse Source

Cleanup timeline class a little.

tags/non-daw-v1.1.0
Jonathan Moore Liles 18 years ago
parent
commit
613cbaa2a4
4 changed files with 37 additions and 40 deletions
  1. +2
    -5
      Tempo_Point.H
  2. +2
    -3
      Time_Point.H
  3. +26
    -27
      Timeline.C
  4. +7
    -5
      Timeline.H

+ 2
- 5
Tempo_Point.H View File

@@ -89,9 +89,7 @@ protected:

free( sa );

timeline->rulers->redraw();
timeline->tracks->redraw();

timeline->redraw();

_make_label();
}
@@ -142,8 +140,7 @@ public:
if ( m == FL_RELEASE )
{
_track->sort();
timeline->rulers->redraw();
timeline->tracks->redraw();
timeline->redraw();
}
return r;
}


+ 2
- 3
Time_Point.H View File

@@ -112,8 +112,7 @@ protected:

free( sa );

timeline->rulers->redraw();
timeline->tracks->redraw();
timeline->redraw();

_make_label();
}
@@ -161,7 +160,7 @@ public:
if ( m == FL_RELEASE )
{
_track->sort();
timeline->tracks->redraw();
timeline->redraw();
}
return r;
}


+ 26
- 27
Timeline.C View File

@@ -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;

{


+ 7
- 5
Timeline.H View File

@@ -61,9 +61,8 @@ struct Rectangle
Rectangle ( int X, int Y, int W, int H ) : x( X ), y( Y ), w( W ), h( H ) {}
};

struct Timeline : public Fl_Overlay_Window
class Timeline : public Fl_Overlay_Window
{

static void draw_clip ( void * v, int X, int Y, int W, int H );

int _old_xposition;
@@ -88,6 +87,12 @@ struct Timeline : public Fl_Overlay_Window
Tempo_Track *tempo_track;
Time_Track *time_track;


static void cb_scroll ( Fl_Widget *w, void *v );
void cb_scroll ( Fl_Widget *w );

public:

float fpp; /* frames per pixel */
// nframes_t fpp;

@@ -99,9 +104,6 @@ struct Timeline : public Fl_Overlay_Window

int yposition;

int _beats_per_bar;
float _beats_per_minute;

Timeline ( int X, int Y, int W, int H, const char *L=0 );

int


Loading…
Cancel
Save