|
@@ -32,6 +32,7 @@ |
|
|
#include "FL/Fl_Theme.H" |
|
|
#include "FL/Fl_Theme.H" |
|
|
#include <math.h> |
|
|
#include <math.h> |
|
|
|
|
|
|
|
|
|
|
|
float fl_box_saturation = 0.6f; |
|
|
bool fl_boxes_use_gradients = true; |
|
|
bool fl_boxes_use_gradients = true; |
|
|
bool fl_debug_boxes = false; |
|
|
bool fl_debug_boxes = false; |
|
|
|
|
|
|
|
@@ -43,8 +44,12 @@ static void cairo_color(Fl_Color c) |
|
|
|
|
|
|
|
|
uchar r,g,b; |
|
|
uchar r,g,b; |
|
|
|
|
|
|
|
|
|
|
|
c = fl_color_average( c, FL_GRAY, fl_box_saturation ); |
|
|
|
|
|
|
|
|
Fl_Color bc = Fl::draw_box_active() ? c : fl_inactive( c ); |
|
|
Fl_Color bc = Fl::draw_box_active() ? c : fl_inactive( c ); |
|
|
|
|
|
|
|
|
|
|
|
fl_color( bc ); |
|
|
|
|
|
|
|
|
Fl::get_color( bc, r, g, b ); |
|
|
Fl::get_color( bc, r, g, b ); |
|
|
|
|
|
|
|
|
cairo_set_source_rgb( cr, r / 255.0, g / 255.0, b / 255.0 ); |
|
|
cairo_set_source_rgb( cr, r / 255.0, g / 255.0, b / 255.0 ); |
|
@@ -68,13 +73,13 @@ static void rect_path ( int x, int y, int w, int h, double radius ) |
|
|
cairo_close_path (cr); |
|
|
cairo_close_path (cr); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
static void draw_rect(int x, int y, int w, int h, Fl_Color bc, double radius = 3 ) |
|
|
|
|
|
|
|
|
static void draw_rect(int x, int y, int w, int h, Fl_Color bc, double radius = 2 ) |
|
|
{ |
|
|
{ |
|
|
cairo_t *cr = Fl::cairo_cc(); |
|
|
cairo_t *cr = Fl::cairo_cc(); |
|
|
|
|
|
|
|
|
rect_path( x, y, w, h, radius ); |
|
|
rect_path( x, y, w, h, radius ); |
|
|
|
|
|
|
|
|
uchar r,g,b; |
|
|
|
|
|
|
|
|
// uchar r,g,b; |
|
|
|
|
|
|
|
|
cairo_color( bc ); |
|
|
cairo_color( bc ); |
|
|
|
|
|
|
|
@@ -90,7 +95,7 @@ static void draw_rect(int x, int y, int w, int h, Fl_Color bc, double radius = 3 |
|
|
/* cairo_stroke( cr ); */ |
|
|
/* cairo_stroke( cr ); */ |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
static void draw_rectf(int x, int y, int w, int h, Fl_Color bc, double radius = 3 ) |
|
|
|
|
|
|
|
|
static void draw_rectf(int x, int y, int w, int h, Fl_Color bc, double radius = 2 ) |
|
|
{ |
|
|
{ |
|
|
/* // Draw the outline around the perimeter of the box */ |
|
|
/* // Draw the outline around the perimeter of the box */ |
|
|
/* fl_color(fl_color_average(FL_BLACK, FL_BACKGROUND_COLOR, .1)); */ |
|
|
/* fl_color(fl_color_average(FL_BLACK, FL_BACKGROUND_COLOR, .1)); */ |
|
@@ -101,7 +106,9 @@ static void draw_rectf(int x, int y, int w, int h, Fl_Color bc, double radius = |
|
|
|
|
|
|
|
|
uchar r,g,b; |
|
|
uchar r,g,b; |
|
|
|
|
|
|
|
|
Fl::get_color( Fl::draw_box_active() ? bc : fl_inactive( bc ), r, g, b ); |
|
|
|
|
|
|
|
|
cairo_color( bc ); |
|
|
|
|
|
|
|
|
|
|
|
Fl::get_color( fl_color(), r, g, b ); |
|
|
|
|
|
|
|
|
float rf = r / 255.0; |
|
|
float rf = r / 255.0; |
|
|
float gf = g / 255.0; |
|
|
float gf = g / 255.0; |
|
@@ -126,8 +133,8 @@ 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_source_rgba (cr, 0, 0, 0, 0.5); |
|
|
|
|
|
cairo_set_line_width (cr, 3); |
|
|
|
|
|
|
|
|
cairo_set_source_rgba (cr, 0, 0, 0, 0.3 ); |
|
|
|
|
|
cairo_set_line_width (cr, DX + 0.5 ); |
|
|
cairo_stroke (cr); |
|
|
cairo_stroke (cr); |
|
|
|
|
|
|
|
|
if ( grad ) |
|
|
if ( grad ) |
|
@@ -211,6 +218,8 @@ static void round_box(int x, int y, int w, int h, Fl_Color c) |
|
|
|
|
|
|
|
|
if ( w > 20 && h > 20 ) |
|
|
if ( w > 20 && h > 20 ) |
|
|
draw_rectf( x, y, w, h, c, 20.0 ); |
|
|
draw_rectf( x, y, w, h, c, 20.0 ); |
|
|
|
|
|
if ( w > 10 && h > 10 ) |
|
|
|
|
|
draw_rectf( x, y, w, h, c, 10.0 ); |
|
|
else |
|
|
else |
|
|
{ |
|
|
{ |
|
|
cairo_save( cr ); |
|
|
cairo_save( cr ); |
|
|