| @@ -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); | |||
| @@ -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 | |||
| @@ -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 | |||
| @@ -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) | |||
| @@ -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 ) | |||