From d79930a6f5f7d00b2b500b7cafeca4beb119000c Mon Sep 17 00:00:00 2001 From: Jonathan Moore Liles Date: Fri, 16 Oct 2020 19:58:29 -0700 Subject: [PATCH] Clean up some inconsistencies in themes. --- src/Cairo_Theme.cxx | 43 ++++++++++++++++++++++++++++++------------- src/Clean_Theme.cxx | 15 ++++++++++----- src/Crystal_Theme.cxx | 18 +++++++++--------- src/Gleam_Theme.cxx | 37 +++++++++++++------------------------ src/Vector_Theme.cxx | 5 ++++- 5 files changed, 66 insertions(+), 52 deletions(-) diff --git a/src/Cairo_Theme.cxx b/src/Cairo_Theme.cxx index 8f7c5a4..8a6593b 100644 --- a/src/Cairo_Theme.cxx +++ b/src/Cairo_Theme.cxx @@ -91,28 +91,37 @@ static void draw_rectf(int x, int y, int w, int h, Fl_Color bc, double radius = rect_path( x, y, w, h, radius ); - uchar r,g,b; + uchar r,g,b, br,bg,bb; cairo_color( bc ); Fl::get_color( fl_color(), r, g, b ); - - float rf = r * BSCALE; - float gf = g * BSCALE; - float bf = b * BSCALE; - + + Fl::get_color( FL_BACKGROUND_COLOR, br, bg, bb ); + + float rf = r * BSCALE, + gf = g * BSCALE, + bf = b * BSCALE, + brf = br * BSCALE, + bgf = bg * BSCALE, + bbf = bb * BSCALE; + cairo_pattern_t *grad = 0; if ( fl_boxes_use_gradients ) { - grad = cairo_pattern_create_linear( x, y, x, y + h );//, 350.0, 350.0); + /* grad = cairo_pattern_create_linear( x, y, x, y + h );//, 350.0, 350.0); */ + grad = cairo_pattern_create_linear( x, y, x, y + 5 );//, 350.0, 350.0); - cairo_pattern_add_color_stop_rgb( grad, 0.0, rf, gf, bf ); - cairo_pattern_add_color_stop_rgb( grad, 0.4, rf, gf, bf ); - cairo_pattern_add_color_stop_rgb( grad, 0.8, rf + 0.1, gf + 0.1, bf + 0.1 ); + /* cairo_pattern_add_color_stop_rgb( grad, 0.8, rf + 0.05, gf + 0.05, bf + 0.05 ); */ + /* cairo_pattern_add_color_stop_rgb( grad, 0.2, rf + 0.05, gf + 0.05, bf + 0.05 ); */ + /* cairo_pattern_add_color_stop_rgb( grad, 0.0, rf + 0.2, gf + 0.2, bf + 0.2 ); */ + + cairo_pattern_add_color_stop_rgb( grad, 1.0, rf + 0.05, gf + 0.05, bf + 0.05 ); + cairo_pattern_add_color_stop_rgb( grad, 0.0, rf + 0.2, gf + 0.2, bf + 0.2 ); - cairo_set_source( cr, grad ); + cairo_set_source( cr, grad ); } else { @@ -122,8 +131,16 @@ static void draw_rectf(int x, int y, int w, int h, Fl_Color bc, double radius = cairo_fill_preserve (cr); cairo_set_line_width (cr, DX); - Fl::get_color( fl_color_average( FL_FOREGROUND_COLOR, FL_BACKGROUND_COLOR, 0.1f), - r,g,b); + if ( brf + bgf + bbf > 1.5f ) + { + Fl::get_color( fl_color_average( FL_BLACK, fl_color(), 0.5f), + r,g,b); + } + else + { + Fl::get_color( fl_color_average( FL_BLACK, fl_color(), 0.8f), + r,g,b); + } cairo_set_source_rgba(cr, r*BSCALE,g*BSCALE,b*BSCALE,1); diff --git a/src/Clean_Theme.cxx b/src/Clean_Theme.cxx index 05e0f50..7db9c2a 100644 --- a/src/Clean_Theme.cxx +++ b/src/Clean_Theme.cxx @@ -27,7 +27,7 @@ static void clean_color(Fl_Color c) { - c = fl_color_average( FL_GRAY, c, 0.2 ); + c = fl_color_average( FL_WHITE, c, 0.15f ); if (Fl::draw_box_active()) fl_color(c); @@ -35,6 +35,11 @@ static void clean_color(Fl_Color c) fl_color(fl_inactive(c)); } +static Fl_Color border_color (Fl_Color c) +{ + return fl_color_average( FL_BLACK, FL_BACKGROUND_COLOR,0.70f); +} + static void rect(int x, int y, int w, int h, Fl_Color bc) { fl_rect( x, y, w, h, bc ); @@ -48,13 +53,13 @@ static void rectf ( int x, int y,int w, int h, Fl_Color bc ) static void up_frame(int x, int y, int w, int h, Fl_Color c) { - rect(x, y, w, h, fl_color_average( FL_WHITE, c, 0.2 ) ); + rect(x, y, w, h, border_color( c )); } static void up_box(int x, int y, int w, int h, Fl_Color c) { rectf(x, y, w, h, c ); - rect(x, y, w, h, fl_color_average( FL_WHITE, c, 0.2 ) ); + rect(x, y, w, h, border_color( c )); } static void down_frame(int x, int y, int w, int h, Fl_Color c) @@ -68,7 +73,7 @@ static void down_box(int x, int y, int w, int h, Fl_Color c) FL_BACKGROUND_COLOR == c || FL_BACKGROUND2_COLOR == c ? fl_darker(c) : c ); - rect(x, y, w, h, fl_color_average( FL_WHITE, c, 0.2 ) ); + rect(x, y, w, h, border_color( c )); } static void flat_box( int x, int y, int w, int h, Fl_Color c ) @@ -79,7 +84,7 @@ static void flat_box( int x, int y, int w, int h, Fl_Color c ) static void border_box( int x, int y, int w, int h, Fl_Color c ) { rectf( x, y, w, h, c ); - rect(x, y, w, h, fl_color_average( FL_WHITE, c, 0.2 ) ); + rect(x, y, w, h, border_color( c )); } static void diff --git a/src/Crystal_Theme.cxx b/src/Crystal_Theme.cxx index 08b3010..df5fac0 100644 --- a/src/Crystal_Theme.cxx +++ b/src/Crystal_Theme.cxx @@ -275,7 +275,7 @@ shade_round ( int x, int y, int w, int h, const char *c, Fl_Color bc ) static void up_frame ( int x, int y, int w, int h, Fl_Color c ) { - frame_rect( x, y, w, h - 1, "KLDIIJLM", c ); + frame_rect( x, y, w, h - 1, "MLJIIDLK", c ); } @@ -306,8 +306,8 @@ thin_up_box ( int x, int y, int w, int h, Fl_Color c ) { if ( w > 4 && h > 4 ) { - shade_rect( x + 1, y + 1, w - 2, h - 3, "RQOQSUWQ", c ); - frame_rect( x, y, w, h - 1, "IJLM", c ); + shade_rect( x + 1, y + 1, w - 2, h - 3, "QWUSQOQR", c ); + frame_rect( x, y, w, h - 1, "MLJI", c ); } else narrow_thin_box( x, y, w, h, c ); @@ -319,7 +319,7 @@ up_box ( int x, int y, int w, int h, Fl_Color c ) { if ( w > 8 && h > 8 ) { - shade_rect( x + 1, y + 1, w - 2, h - 3, "RVQNOPQRSTUVWVQ", c ); + shade_rect( x + 1, y + 1, w - 2, h - 3, "QVWVUTSRQPONQVR", c ); // shade_rect( x + 1, y + 1, w - 2, h - 3, "STUVWVQRWXVUVVQ", c ); // shade_rect( x + 1, y + 1, w - 2, h - 3, "FISPPQQRSSTTUPJ", c ); @@ -334,15 +334,15 @@ up_box ( int x, int y, int w, int h, Fl_Color c ) static void up_round ( int x, int y, int w, int h, Fl_Color c ) { - shade_round( x, y, w, h, "RVQNOPQRSTUVWVQ", c ); - frame_round( x, y, w, h, "IJLM", c ); + shade_round( x, y, w, h, "QVWVUTSRQPONQVR", c ); + frame_round( x, y, w, h, "MLJI", c ); } static void down_frame ( int x, int y, int w, int h, Fl_Color c ) { - frame_rect( x, y, w, h - 1, "LLLLTTRR", c ); + frame_rect( x, y, w, h - 1, "RRTTLLLL", c ); } @@ -368,8 +368,8 @@ down_box ( int x, int y, int w, int h, Fl_Color c ) static void down_round ( int x, int y, int w, int h, Fl_Color c ) { - shade_round( x, y, w, h, "STUVWWWVT", c ); - frame_round( x, y, w, h, "IJLM", c ); + shade_round( x, y, w, h, "TVWWWVUTS", c ); + frame_round( x, y, w, h, "MLJI", c ); } static void diff --git a/src/Gleam_Theme.cxx b/src/Gleam_Theme.cxx index b867267..e99ef6a 100644 --- a/src/Gleam_Theme.cxx +++ b/src/Gleam_Theme.cxx @@ -46,30 +46,19 @@ static void frame_rect(int x, int y, int w, int h, Fl_Color bc) static void shade_rect_up(int x, int y, int w, int h, Fl_Color bc) { - // Draws the shiny - float third = (float) h / 3; - gleam_color(bc); - fl_rectf(x, y, w, third + 1); - - //gleam_color(fl_color_average(bc, FL_WHITE, .90f)); - //fl_rectf(x, y, w, half + 1); - - float step_size = 0.10 / ((float) h - third); - int j = 0; - //step_size = (.1 / (float) half); - //printf("1 / %i = %f \n", half, (1.0/half)); - - /** - * This loop generates the nice gradient at the bottom of the - * widget - **/ - for (float k = 1; k >= .90; k -= step_size) - { - j++; - gleam_color(fl_color_average(bc, FL_WHITE, k)); - fl_line(x, y + j + third - 1, x + w - 1, y + j + third - 1); - } - + // Draws the shiny + const float third = 5; + gleam_color(bc); + fl_rectf(x, y, w, third + 1); + const float step_size = 0.10; + float k = 0.5f; + + for (int j = 0; j < third; k -= step_size, j++ ) + { + gleam_color(fl_color_average( FL_WHITE, bc, k)); + fl_line(x, y + j, x + w - 1, y + j); + } + } static void frame_rect_up(int x, int y, int w, int h, Fl_Color bc) diff --git a/src/Vector_Theme.cxx b/src/Vector_Theme.cxx index 96cbf73..92bd066 100644 --- a/src/Vector_Theme.cxx +++ b/src/Vector_Theme.cxx @@ -55,7 +55,10 @@ static Fl_Color border_color ( Fl_Color c ) static Fl_Color interior_color ( Fl_Color c ) { /* return fl_color_average( FL_BACKGROUND_COLOR, c, 0.33f ); */ - return fl_color_average( FL_BACKGROUND_COLOR, c, 0.25f ); + /* if ( FL_BACKGROUND_COLOR == c ) */ + return fl_color_average( FL_FOREGROUND_COLOR, c, 0.05f ); + /* else */ + /* return fl_color_average( FL_BACKGROUND_COLOR, c, 0.25f ); */ } static Fl_Color outer_border_color ( Fl_Color c ) -- 2.11.4.GIT