Add Track_Point class for track widgets with no meaningful length.
This commit is contained in:
parent
4a266bc86a
commit
a1dd1192cc
55
Region.H
55
Region.H
|
@ -75,6 +75,10 @@ public:
|
|||
virtual int w ( void ) const { return timeline.ts_to_x( _end - _start ); }
|
||||
// int w ( void ) const { return timeline.ts_to_x( (_end - _start) - ( timeline.xoffset - _offset) ); }
|
||||
|
||||
int abs_x ( void ) const { return timeline.ts_to_x( timeline.xoffset ); }
|
||||
int abs_w ( void ) const { return timeline.ts_to_x( _end - _start ); }
|
||||
|
||||
|
||||
Fl_Color color ( void ) { return _color; }
|
||||
Fl_Color box_color ( void ) { return _box_color; }
|
||||
|
||||
|
@ -218,26 +222,23 @@ public:
|
|||
};
|
||||
|
||||
|
||||
class Tempo_Point : public Track_Widget
|
||||
{
|
||||
float _tempo;
|
||||
class Track_Point : public Track_Widget
|
||||
{
|
||||
|
||||
public:
|
||||
protected:
|
||||
|
||||
/* Tempo_Point ( ) */
|
||||
/* { */
|
||||
/* _tempo = 120; */
|
||||
/* } */
|
||||
char *_label;
|
||||
|
||||
Tempo_Point ( nframes_t when, float bpm )
|
||||
{
|
||||
_tempo = bpm;
|
||||
_offset = when;
|
||||
}
|
||||
public:
|
||||
|
||||
int w ( void ) const { return 10; }
|
||||
nframes_t length ( void ) const { return timeline.x_to_ts( w() ); }
|
||||
|
||||
Track_Point ( )
|
||||
{
|
||||
_label = NULL;
|
||||
}
|
||||
|
||||
void
|
||||
draw ( int X, int Y, int W, int H )
|
||||
{
|
||||
|
@ -246,16 +247,36 @@ public:
|
|||
|
||||
Track_Widget::draw( x(), Y, w(), H );
|
||||
|
||||
draw_label( _label, FL_ALIGN_RIGHT );
|
||||
}
|
||||
};
|
||||
|
||||
char pat[40];
|
||||
class Tempo_Point : public Track_Point
|
||||
{
|
||||
float _tempo;
|
||||
|
||||
snprintf( pat, 40, "%.1f", _tempo );
|
||||
void
|
||||
_make_label ( void )
|
||||
{
|
||||
if ( ! _label )
|
||||
_label = new char[40];
|
||||
|
||||
draw_label( pat, FL_ALIGN_RIGHT );
|
||||
snprintf( _label, 40, "%.1f", _tempo );
|
||||
}
|
||||
public:
|
||||
|
||||
Tempo_Point ( nframes_t when, float bpm )
|
||||
{
|
||||
_tempo = bpm;
|
||||
_offset = when;
|
||||
|
||||
_make_label();
|
||||
}
|
||||
|
||||
};
|
||||
~Tempo_Point ( )
|
||||
{ if ( _label ) delete[] _label; }
|
||||
|
||||
};
|
||||
|
||||
class Region : public Track_Widget
|
||||
{
|
||||
|
|
10
main.C
10
main.C
|
@ -36,19 +36,11 @@
|
|||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
Fl_Color velocity_colors[128];
|
||||
|
||||
#include "Track.H"
|
||||
#include "Timeline.H"
|
||||
|
||||
#include "const.h"
|
||||
|
||||
void
|
||||
init_colors ( void )
|
||||
{
|
||||
for ( int i = 128; i--; )
|
||||
velocity_colors[i] = fl_rgb_color( 23, 255 - i * 2, 32 );
|
||||
}
|
||||
|
||||
Timeline timeline;
|
||||
|
||||
|
@ -106,8 +98,6 @@ int
|
|||
main ( int argc, char **argv )
|
||||
{
|
||||
|
||||
init_colors();
|
||||
|
||||
Fl_Double_Window *main_window = new Fl_Double_Window( 0, 0, 800, 600 );
|
||||
|
||||
timeline.scroll = new Fl_Scroll( 0, 24, 800, 600 - (24 * 2) );
|
||||
|
|
Loading…
Reference in New Issue