Browse Source

Clean up some issues with new scrolling optimization.

tags/non-daw-v1.1.0
Jonathan Moore Liles 17 years ago
parent
commit
9bb9f1bd9d
5 changed files with 18 additions and 7 deletions
  1. +2
    -1
      Region.C
  2. +1
    -0
      Region.H
  3. +2
    -0
      Timeline.H
  4. +2
    -1
      Track_Point.H
  5. +11
    -5
      Track_Widget.H

+ 2
- 1
Region.C View File

@@ -345,7 +345,8 @@ Region::draw ( int X, int Y, int W, int H )
fl_line( rx, Y, rx, Y + H );
fl_line( rx + rw - 1, Y, rx + rw - 1, Y + H );

draw_label( _clip->name(), (Fl_Align)(FL_ALIGN_LEFT | FL_ALIGN_BOTTOM /*| FL_ALIGN_CLIP*/ | FL_ALIGN_INSIDE) );
draw_label( _clip->name(), align() );



/* if ( _selected ) */


+ 1
- 0
Region.H View File

@@ -54,6 +54,7 @@ class Region : public Track_Widget
public:

Fl_Boxtype box ( void ) const { return Region::_box; }
Fl_Align align ( void ) const { return (Fl_Align)(FL_ALIGN_LEFT | FL_ALIGN_BOTTOM /*| FL_ALIGN_CLIP*/ | FL_ALIGN_INSIDE); }

Region ( const Region & rhs );
Region ( Audio_File *c );


+ 2
- 0
Timeline.H View File

@@ -161,11 +161,13 @@ struct Timeline : public Fl_Group
H = tracks->h();



/* fl_color( FL_RED ); */
/* fl_rect( X, Y, X + W, Y + H ); */

if ( damage() & FL_DAMAGE_ALL )
{
Fl_Group::draw();
draw_clip( this, X, tracks->y(), W, tracks->h() );
draw_clip( this, X, rulers->y(), W, rulers->h() );
return;


+ 2
- 1
Track_Point.H View File

@@ -30,6 +30,7 @@ protected:

public:

Fl_Align align ( void ) const { return FL_ALIGN_RIGHT; }
int abs_w ( void ) const { return 10; }
nframes_t length ( void ) const { return timeline->x_to_ts( abs_w() ); }

@@ -43,6 +44,6 @@ public:
{
Track_Widget::draw( x(), Y, w(), H );

draw_label( _label, FL_ALIGN_RIGHT );
draw_label( _label, align() );
}
};

+ 11
- 5
Track_Widget.H View File

@@ -95,11 +95,18 @@ public:
virtual nframes_t length ( void ) const { return _end - _start; }

virtual Fl_Boxtype box ( void ) const { return FL_UP_BOX; }
virtual Fl_Align align ( void ) const { return (Fl_Align)0; }

void
virtual void
redraw ( void )
{
_track->damage( FL_DAMAGE_EXPOSE, x(), y(), w(), h() );
if ( ! (align() & FL_ALIGN_INSIDE) )
{
// FIXME: to better..
_track->redraw();
}
else
_track->damage( FL_DAMAGE_EXPOSE, x(), y(), w(), h() );
}

/* just draw a simple box */
@@ -172,10 +179,9 @@ public:
if ( align & FL_ALIGN_CLIP ) fl_push_clip( X, Y, W, H );

int dx = 0;
int tx = timeline->ts_to_x( _offset );

if ( tx < scroll_x() )
dx = min( 32767, scroll_x() - tx );
if ( abs_x() < scroll_x() )
dx = min( 32767, scroll_x() - abs_x() );

lab.draw( X - dx, Y, W, H, align );



Loading…
Cancel
Save