Browse Source

Fix control track scrolling issues.

tags/non-daw-v1.1.0
Jonathan Moore Liles 17 years ago
parent
commit
43b244a2db
3 changed files with 17 additions and 2 deletions
  1. +1
    -0
      Control_Point.H
  2. +1
    -1
      Control_Track.H
  3. +15
    -1
      Track_Widget.H

+ 1
- 0
Control_Point.H View File

@@ -159,6 +159,7 @@ public:
return r; return r;
} }


int x ( void ) const { return line_x(); }
int y ( void ) const { return parent()->y() + ((float)parent()->h() * _y); } int y ( void ) const { return parent()->y() + ((float)parent()->h() * _y); }
int w ( void ) const { return 6; } int w ( void ) const { return 6; }
int h ( void ) const { return 6; } int h ( void ) const { return 6; }


+ 1
- 1
Control_Track.H View File

@@ -48,7 +48,7 @@ public:


fl_clip_box( x(), y(), w(), h(), X, Y, W, H ); fl_clip_box( x(), y(), w(), h(), X, Y, W, H );


fl_line_style( FL_SOLID, 2 );
fl_line_style( FL_SOLID, 4 );


fl_color( FL_RED ); fl_color( FL_RED );




+ 15
- 1
Track_Widget.H View File

@@ -147,7 +147,15 @@ public:
virtual int y ( void ) const { return _track->y(); } virtual int y ( void ) const { return _track->y(); }
virtual int h ( void ) const { return _track->h(); } virtual int h ( void ) const { return _track->h(); }


int x ( void ) const { return _offset < timeline->xoffset ? _track->x() - 1 : min( 32767, _track->x() + timeline->ts_to_x( _offset - timeline->xoffset ) ); }
/* used by regions */
virtual int x ( void ) const { return _offset < timeline->xoffset ? _track->x() - 1 : min( 32767, _track->x() + timeline->ts_to_x( _offset - timeline->xoffset ) ); }

/* use this as x() when you need to draw lines between widgets */
int line_x ( void ) const
{
return _offset < timeline->xoffset ? max( -32768, _track->x() - timeline->ts_to_x( timeline->xoffset - _offset )) : min( 32767, _track->x() + timeline->ts_to_x( _offset - timeline->xoffset ) );
}

virtual int w ( void ) const virtual int w ( void ) const
{ {
int tx = timeline->ts_to_x( _offset ); int tx = timeline->ts_to_x( _offset );
@@ -199,12 +207,18 @@ public:
virtual void virtual void
draw_box ( int X, int Y, int W, int H ) draw_box ( int X, int Y, int W, int H )
{ {
if ( x() > X + W || x() + w() < X )
return;

fl_draw_box( box(), x(), y(), w(), h(), _box_color ); fl_draw_box( box(), x(), y(), w(), h(), _box_color );
} }


virtual void virtual void
draw ( int X, int Y, int W, int H ) draw ( int X, int Y, int W, int H )
{ {
if ( x() > X + W || x() + w() < X )
return;

draw_box( X, Y, W, H ); draw_box( X, Y, W, H );
} }




Loading…
Cancel
Save