@@ -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 ); | rect_path( x, y, w, h, radius ); | ||||
uchar r,g,b; | |||||
uchar r,g,b, br,bg,bb; | |||||
cairo_color( bc ); | cairo_color( bc ); | ||||
Fl::get_color( fl_color(), r, g, b ); | 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; | cairo_pattern_t *grad = 0; | ||||
if ( fl_boxes_use_gradients ) | 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 | 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_fill_preserve (cr); | ||||
cairo_set_line_width (cr, DX); | 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); | cairo_set_source_rgba(cr, r*BSCALE,g*BSCALE,b*BSCALE,1); | ||||
@@ -27,7 +27,7 @@ | |||||
static void clean_color(Fl_Color c) | 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()) | if (Fl::draw_box_active()) | ||||
fl_color(c); | fl_color(c); | ||||
@@ -35,6 +35,11 @@ static void clean_color(Fl_Color c) | |||||
fl_color(fl_inactive(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) | static void rect(int x, int y, int w, int h, Fl_Color bc) | ||||
{ | { | ||||
fl_rect( x, y, w, h, 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) | 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) | static void up_box(int x, int y, int w, int h, Fl_Color c) | ||||
{ | { | ||||
rectf(x, y, w, h, 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) | 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_BACKGROUND_COLOR == c || FL_BACKGROUND2_COLOR == c | ||||
? fl_darker(c) | ? fl_darker(c) | ||||
: 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 ) | 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 ) | static void border_box( int x, int y, int w, int h, Fl_Color c ) | ||||
{ | { | ||||
rectf( x, y, w, h, 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 | static void | ||||
@@ -275,7 +275,7 @@ shade_round ( int x, int y, int w, int h, const char *c, Fl_Color bc ) | |||||
static void | static void | ||||
up_frame ( int x, int y, int w, int h, Fl_Color c ) | 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 ) | 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 | else | ||||
narrow_thin_box( x, y, w, h, c ); | 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 ) | 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, "STUVWVQRWXVUVVQ", c ); | ||||
// shade_rect( x + 1, y + 1, w - 2, h - 3, "FISPPQQRSSTTUPJ", 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 | static void | ||||
up_round ( int x, int y, int w, int h, Fl_Color c ) | 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 | static void | ||||
down_frame ( int x, int y, int w, int h, Fl_Color c ) | 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 | static void | ||||
down_round ( int x, int y, int w, int h, Fl_Color c ) | 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 | 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) | 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) | 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 ) | 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.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 ) | static Fl_Color outer_border_color ( Fl_Color c ) | ||||