Browse Source

Tweak Cairo theme.

tags/v1.3.1000
Jonathan Moore Liles 13 years ago
parent
commit
ab1131fedd
1 changed files with 15 additions and 6 deletions
  1. +15
    -6
      src/Cairo_Theme.cxx

+ 15
- 6
src/Cairo_Theme.cxx View File

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


Loading…
Cancel
Save