From 394d079706cde245215c9917858820dac0077e76 Mon Sep 17 00:00:00 2001 From: Jonathan Moore Liles Date: Sat, 8 Mar 2008 13:39:20 -0600 Subject: [PATCH] Draw control points with a polygon. --- Control_Point.H | 1 + Control_Track.H | 32 ++++++++++++++++++++++++++------ 2 files changed, 27 insertions(+), 6 deletions(-) diff --git a/Control_Point.H b/Control_Point.H index 3a948ac..491c14e 100644 --- a/Control_Point.H +++ b/Control_Point.H @@ -154,6 +154,7 @@ public: _y = (float)Y / parent()->h(); redraw(); } + track()->sort(); break; } } diff --git a/Control_Track.H b/Control_Track.H index fb5abea..b51e3ad 100644 --- a/Control_Track.H +++ b/Control_Track.H @@ -53,12 +53,32 @@ public: fl_color( selection_color() ); - fl_begin_line(); + fl_begin_complex_polygon(); - for ( list ::const_iterator r = _widgets.begin(); r != _widgets.end(); r++ ) - fl_vertex( (*r)->x(), (*r)->y() ); + list ::const_iterator e = _widgets.end(); + e--; - fl_end_line(); + if ( _widgets.size() ) + for ( list ::const_iterator r = _widgets.begin(); ; r++ ) + { + if ( r == _widgets.begin() ) + { + fl_vertex( x(), y() + h() ); + fl_vertex( x(), (*r)->y() ); + } + + fl_vertex( (*r)->x(), (*r)->y() ); + + if ( r == e ) + { + fl_vertex( x() + w(), (*r)->y() ); + fl_vertex( x() + w(), y() + h() ); + break; + } + + } + + fl_end_complex_polygon(); fl_line_style( FL_SOLID, 0 ); @@ -73,8 +93,8 @@ public: { int r = Track::handle( m ); - if ( r ) - return r; + if ( r ) + return r; switch ( m ) {