| @@ -32,59 +32,72 @@ | |||||
| * dimensions of real FLTK widgets are limited to 16-bits, which is | * dimensions of real FLTK widgets are limited to 16-bits, which is | ||||
| * far too little for our purposes */ | * far too little for our purposes */ | ||||
| class Region | |||||
| /* Base class for virtual widget on a track */ | |||||
| class TrackWidget | |||||
| { | { | ||||
| Track *_track; /* track this region belongs to */ | |||||
| protected: | |||||
| Clip *_clip; /* clip this region represents */ | |||||
| Track *_track; /* track this region belongs to */ | |||||
| nframes_t _offset; /* where on the timeline */ | nframes_t _offset; /* where on the timeline */ | ||||
| nframes_t _start; /* first sample from clip */ | nframes_t _start; /* first sample from clip */ | ||||
| nframes_t _end; /* last sample from clip */ | nframes_t _end; /* last sample from clip */ | ||||
| float _scale; /* amplitude adjustment */ | |||||
| bool _selected; | bool _selected; | ||||
| Fl_Color _color; /* color of waveform */ | Fl_Color _color; /* color of waveform */ | ||||
| Fl_Color _box_color; /* color of background (box) */ | Fl_Color _box_color; /* color of background (box) */ | ||||
| static Fl_Color _selection_color; | |||||
| static Fl_Color selection_color ( void ) { return _selection_color; } | |||||
| static void selection_color ( Fl_Color v ) { _selection_color = v; } | |||||
| enum trim_e { NO, LEFT, RIGHT }; | |||||
| void trim ( enum trim_e t, int X ); | |||||
| void init ( void ); | |||||
| public: | public: | ||||
| Region ( const Region & rhs ); | |||||
| Region ( Clip *c ); | |||||
| Fl_Group * parent ( void ) const { return _track; } | |||||
| int y ( void ) const { return _track->y(); } | int y ( void ) const { return _track->y(); } | ||||
| int h ( void ) const { return _track->h(); } | int h ( void ) const { return _track->h(); } | ||||
| int x ( void ) const { return _track->x() + timeline.ts_to_x( _offset - timeline.xoffset ); } | int x ( void ) const { return _track->x() + timeline.ts_to_x( _offset - timeline.xoffset ); } | ||||
| int w ( void ) const { return timeline.ts_to_x( _end - _start ); } | int w ( void ) const { return timeline.ts_to_x( _end - _start ); } | ||||
| Fl_Group * parent ( void ) const { return _track; } | |||||
| Fl_Color color ( void ) { return _color; } | Fl_Color color ( void ) { return _color; } | ||||
| Fl_Color box_color ( void ) { return _box_color; } | Fl_Color box_color ( void ) { return _box_color; } | ||||
| int handle ( int m ); | |||||
| void draw ( int X, int Y, int W, int H ); | |||||
| void resize ( void ); | |||||
| Track * track ( void ) const { return _track; } | Track * track ( void ) const { return _track; } | ||||
| void track ( Track *t ) { _track = t; } | void track ( Track *t ) { _track = t; } | ||||
| nframes_t offset ( void ) const { return _offset; } | nframes_t offset ( void ) const { return _offset; } | ||||
| void offset ( nframes_t o ) { _offset = o; } | void offset ( nframes_t o ) { _offset = o; } | ||||
| void end ( nframes_t v ) { _end = v; } | |||||
| nframes_t end ( void ) const { return _end; } | |||||
| void start ( nframes_t v ) { _start = v; } | |||||
| nframes_t start ( void ) const { return _start; } | |||||
| nframes_t length ( void ) const { return _end - _start; } | nframes_t length ( void ) const { return _end - _start; } | ||||
| }; | |||||
| class Region : public TrackWidget | |||||
| { | |||||
| Clip *_clip; /* clip this region represents */ | |||||
| float _scale; /* amplitude adjustment */ | |||||
| static Fl_Color _selection_color; | |||||
| static Fl_Color selection_color ( void ) { return _selection_color; } | |||||
| static void selection_color ( Fl_Color v ) { _selection_color = v; } | |||||
| enum trim_e { NO, LEFT, RIGHT }; | |||||
| void trim ( enum trim_e t, int X ); | |||||
| void init ( void ); | |||||
| public: | |||||
| Region ( const Region & rhs ); | |||||
| Region ( Clip *c ); | |||||
| int handle ( int m ); | |||||
| void draw ( int X, int Y, int W, int H ); | |||||
| void resize ( void ); | |||||
| void end ( nframes_t v ) { _end = v; } | |||||
| }; | }; | ||||