From 1a89c40d7b715f5cc7a9805d2965b84c3f15c4e3 Mon Sep 17 00:00:00 2001 From: Jonathan Moore Liles Date: Sat, 26 Apr 2008 03:42:44 -0500 Subject: [PATCH] Permit user to pick track color. Journal track color. --- Timeline/Timeline.C | 9 +++++++-- Timeline/Track.C | 22 ++++++++++++++++++++++ Timeline/Track.H | 6 ++++++ 3 files changed, 35 insertions(+), 2 deletions(-) diff --git a/Timeline/Timeline.C b/Timeline/Timeline.C index 4427265..2dadb15 100644 --- a/Timeline/Timeline.C +++ b/Timeline/Timeline.C @@ -87,6 +87,8 @@ Timeline::Timeline ( int X, int Y, int W, int H, const char* L ) : Fl_Overlay_Wi X = Y = 0; + p1 = p2 = 0; + { Scalebar *o = new Scalebar( X, Y + H - 18, W - 18, 18 ); @@ -578,8 +580,11 @@ Timeline::draw_cursor ( nframes_t frame, Fl_Color color ) void Timeline::draw_playhead ( void ) { - draw_cursor( p1, FL_BLUE ); - draw_cursor( p2, FL_GREEN ); + if ( p1 != p2 ) + { + draw_cursor( p1, FL_BLUE ); + draw_cursor( p2, FL_GREEN ); + } draw_cursor( transport->frame, FL_RED ); } diff --git a/Timeline/Track.C b/Timeline/Track.C index df35276..9732639 100644 --- a/Timeline/Track.C +++ b/Timeline/Track.C @@ -29,6 +29,9 @@ #include "../FL/Fl_Sometimes_Input.H" #include +#include +// #include +#include int Track::_soloing = 0; @@ -419,6 +422,7 @@ Track::handle ( int m ) { "Quad", 0, 0, 0, FL_MENU_RADIO | ( c == 4 ? FL_MENU_VALUE : 0 ) }, { "...", 0, 0, 0, FL_MENU_RADIO | ( c == 3 || c > 4 ? FL_MENU_VALUE : 0 ) }, { 0 }, + { "Color" }, { "Remove", 0, 0, 0, transport->rolling ? FL_MENU_INACTIVE : 0 }, { 0 }, }; @@ -452,6 +456,20 @@ Track::handle ( int m ) } } else if ( r == &menu[ 6 ] ) + { + unsigned char r, g, b; + + Fl::get_color( color(), r, g, b ); + + if ( fl_color_chooser( "Track Color", r, g, b ) ) + { + color( fl_rgb_color( r, g, b ) ); + } + +// color( fl_show_colormap( color() ) ); + redraw(); + } + else if ( r == &menu[ 7 ] ) { int r = fl_choice( "Are you certain you want to remove track \"%s\"?", "Cancel", NULL, "Remove", name() ); @@ -465,12 +483,16 @@ Track::handle ( int m ) } } } + + return 1; } } default: return Fl_Group::handle( m ); } + + return 0; } diff --git a/Timeline/Track.H b/Timeline/Track.H index b967093..3a76bdb 100644 --- a/Timeline/Track.H +++ b/Timeline/Track.H @@ -140,6 +140,11 @@ public: configure_inputs( atoi( v ) ); else if ( ! strcmp( s, ":o" ) ) configure_outputs( atoi( v ) ); + else if ( ! strcmp( s, ":c" ) ) + { + color( (Fl_Color)atol( v ) ); + redraw(); + } else if ( ! strcmp( s, ":t" ) ) { int i; @@ -172,6 +177,7 @@ public: e.add( ":h", size() ); e.add( ":i", input.size() ); e.add( ":o", output.size() ); + e.add( ":c", color() ); } /* for loggable */