Cleanup region mouseover.
This commit is contained in:
parent
e0e6cb7379
commit
a6e65c8159
|
@ -71,7 +71,7 @@ Audio_Track::handle ( int m )
|
||||||
|
|
||||||
|
|
||||||
if ( ! strcmp( text, "Region" ) )
|
if ( ! strcmp( text, "Region" ) )
|
||||||
return 0;
|
return 1;
|
||||||
|
|
||||||
char *file;
|
char *file;
|
||||||
|
|
||||||
|
|
6
Region.C
6
Region.C
|
@ -85,7 +85,6 @@ Region::init ( void )
|
||||||
_end = 0;
|
_end = 0;
|
||||||
_scale = 1.0f;
|
_scale = 1.0f;
|
||||||
_clip = NULL;
|
_clip = NULL;
|
||||||
_current = false;
|
|
||||||
|
|
||||||
_box_color = FL_CYAN;
|
_box_color = FL_CYAN;
|
||||||
_color = FL_BLUE;
|
_color = FL_BLUE;
|
||||||
|
@ -103,7 +102,6 @@ Region::Region ( const Region & rhs )
|
||||||
_scale = rhs._scale;
|
_scale = rhs._scale;
|
||||||
_box_color = rhs._box_color;
|
_box_color = rhs._box_color;
|
||||||
_color = rhs._color;
|
_color = rhs._color;
|
||||||
_current = false;
|
|
||||||
|
|
||||||
log_create();
|
log_create();
|
||||||
}
|
}
|
||||||
|
@ -224,12 +222,10 @@ Region::handle ( int m )
|
||||||
switch ( m )
|
switch ( m )
|
||||||
{
|
{
|
||||||
case FL_ENTER:
|
case FL_ENTER:
|
||||||
_current = true;
|
|
||||||
Track_Widget::handle( m );
|
Track_Widget::handle( m );
|
||||||
redraw();
|
redraw();
|
||||||
break;
|
break;
|
||||||
case FL_LEAVE:
|
case FL_LEAVE:
|
||||||
_current = false;
|
|
||||||
Track_Widget::handle( m );
|
Track_Widget::handle( m );
|
||||||
redraw();
|
redraw();
|
||||||
break;
|
break;
|
||||||
|
@ -476,7 +472,7 @@ Region::draw ( int X, int Y, int W, int H )
|
||||||
|
|
||||||
draw_label( _clip->name(), align() );
|
draw_label( _clip->name(), align() );
|
||||||
|
|
||||||
if ( _current )
|
if ( current() )
|
||||||
{
|
{
|
||||||
char pat[40];
|
char pat[40];
|
||||||
|
|
||||||
|
|
4
Region.H
4
Region.H
|
@ -47,8 +47,6 @@ class Region : public Track_Widget
|
||||||
|
|
||||||
float _scale; /* amplitude adjustment */
|
float _scale; /* amplitude adjustment */
|
||||||
|
|
||||||
bool _current; /* region is receiving operations */
|
|
||||||
|
|
||||||
static Fl_Boxtype _box;
|
static Fl_Boxtype _box;
|
||||||
static Fl_Color _selection_color;
|
static Fl_Color _selection_color;
|
||||||
static Fl_Color selection_color ( void ) { return _selection_color; }
|
static Fl_Color selection_color ( void ) { return _selection_color; }
|
||||||
|
@ -153,6 +151,8 @@ protected:
|
||||||
init();
|
init();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool current ( void ) const { return this == Track::belowmouse(); }
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
/* for loggable */
|
/* for loggable */
|
||||||
|
|
34
Track.C
34
Track.C
|
@ -26,7 +26,8 @@
|
||||||
|
|
||||||
|
|
||||||
queue <Track_Widget *> Track::_delete_queue;
|
queue <Track_Widget *> Track::_delete_queue;
|
||||||
Track_Widget *Track::pushed = NULL;
|
Track_Widget *Track::_pushed = NULL;
|
||||||
|
Track_Widget *Track::_belowmouse = NULL;
|
||||||
|
|
||||||
void
|
void
|
||||||
Track::sort ( void )
|
Track::sort ( void )
|
||||||
|
@ -241,17 +242,14 @@ done:
|
||||||
int
|
int
|
||||||
Track::handle ( int m )
|
Track::handle ( int m )
|
||||||
{
|
{
|
||||||
// static Track_Widget *pushed;
|
|
||||||
static Track_Widget *belowmouse;
|
|
||||||
|
|
||||||
switch ( m )
|
switch ( m )
|
||||||
{
|
{
|
||||||
case FL_DND_ENTER:
|
case FL_DND_ENTER:
|
||||||
printf( "enter\n" );
|
printf( "enter\n" );
|
||||||
if ( pushed && pushed->track()->class_name() == class_name() )
|
if ( pushed() && pushed()->track()->class_name() == class_name() )
|
||||||
{
|
{
|
||||||
printf( "%s -> %s\n", pushed->track()->class_name(), class_name() );
|
add( pushed() );
|
||||||
add( pushed );
|
|
||||||
redraw();
|
redraw();
|
||||||
}
|
}
|
||||||
case FL_DND_LEAVE:
|
case FL_DND_LEAVE:
|
||||||
|
@ -260,11 +258,11 @@ Track::handle ( int m )
|
||||||
{
|
{
|
||||||
Track_Widget *r = event_widget();
|
Track_Widget *r = event_widget();
|
||||||
|
|
||||||
if ( r != belowmouse )
|
if ( r != belowmouse() )
|
||||||
{
|
{
|
||||||
if ( belowmouse )
|
if ( belowmouse() )
|
||||||
belowmouse->handle( FL_LEAVE );
|
belowmouse()->handle( FL_LEAVE );
|
||||||
belowmouse = r;
|
_belowmouse = r;
|
||||||
|
|
||||||
if ( r )
|
if ( r )
|
||||||
r->handle( FL_ENTER );
|
r->handle( FL_ENTER );
|
||||||
|
@ -274,17 +272,17 @@ Track::handle ( int m )
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
{
|
{
|
||||||
Track_Widget *r = pushed ? pushed : event_widget();
|
Track_Widget *r = pushed() ? pushed() : event_widget();
|
||||||
|
|
||||||
if ( r )
|
if ( r )
|
||||||
{
|
{
|
||||||
int retval = r->dispatch( m );
|
int retval = r->dispatch( m );
|
||||||
|
|
||||||
if ( retval && m == FL_PUSH )
|
if ( retval && m == FL_PUSH )
|
||||||
pushed = r;
|
_pushed = r;
|
||||||
|
|
||||||
if ( retval && m == FL_RELEASE )
|
if ( retval && m == FL_RELEASE )
|
||||||
pushed = NULL;
|
_pushed = NULL;
|
||||||
|
|
||||||
Loggable::block_start();
|
Loggable::block_start();
|
||||||
|
|
||||||
|
@ -295,12 +293,12 @@ Track::handle ( int m )
|
||||||
_delete_queue.pop();
|
_delete_queue.pop();
|
||||||
|
|
||||||
|
|
||||||
if ( pushed == t )
|
if ( pushed() == t )
|
||||||
pushed = NULL;
|
_pushed = NULL;
|
||||||
if ( belowmouse == t )
|
if ( belowmouse() == t )
|
||||||
{
|
{
|
||||||
belowmouse->handle( FL_LEAVE );
|
belowmouse()->handle( FL_LEAVE );
|
||||||
belowmouse = NULL;
|
_belowmouse = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
delete t;
|
delete t;
|
||||||
|
|
6
Track.H
6
Track.H
|
@ -42,7 +42,8 @@ class Track : public Fl_Group, public Loggable
|
||||||
char *_name;
|
char *_name;
|
||||||
|
|
||||||
static queue <Track_Widget *> _delete_queue;
|
static queue <Track_Widget *> _delete_queue;
|
||||||
static Track_Widget *pushed;
|
static Track_Widget *_pushed;
|
||||||
|
static Track_Widget *_belowmouse;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
|
@ -101,6 +102,9 @@ public:
|
||||||
log_destroy();
|
log_destroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static Track_Widget *pushed ( void ) { return _pushed; };
|
||||||
|
static Track_Widget *belowmouse ( void ) { return _belowmouse; };
|
||||||
|
|
||||||
const char * name ( void ) const { return _name; }
|
const char * name ( void ) const { return _name; }
|
||||||
void name ( char *s ) { if ( _name ) free( _name ); _name = s; }
|
void name ( char *s ) { if ( _name ) free( _name ); _name = s; }
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue