Browse Source

Fix some color blending issues in Cairo and Clean themes.

tags/v1.3.1000
Jonathan Moore Liles 12 years ago
parent
commit
7a936c570d
2 changed files with 7 additions and 49 deletions
  1. +3
    -44
      src/Cairo_Theme.cxx
  2. +4
    -5
      src/Clean_Theme.cxx

+ 3
- 44
src/Cairo_Theme.cxx View File

@@ -28,7 +28,7 @@
#include "FL/Fl_Theme.H"
#include <math.h>

float fl_box_saturation = 0.6f;
float fl_box_saturation = 0.2f;
bool fl_boxes_use_gradients = true;
bool fl_debug_boxes = false;

@@ -67,7 +67,7 @@ static void rect_path ( int x, int y, int w, int h, double radius )
cairo_close_path (cr);
}

static void draw_rect(int x, int y, int w, int h, Fl_Color bc, double radius = 2 )
static void draw_rect(int x, int y, int w, int h, Fl_Color bc, double radius = 1.5 )
{
cairo_t *cr = Fl::cairo_cc();

@@ -80,7 +80,7 @@ static void draw_rect(int x, int y, int w, int h, Fl_Color bc, double radius = 2
cairo_set_line_width (cr, 1);
}

static void draw_rectf(int x, int y, int w, int h, Fl_Color bc, double radius = 2 )
static void draw_rectf(int x, int y, int w, int h, Fl_Color bc, double radius = 1.5 )
{
/* // Draw the outline around the perimeter of the box */
/* fl_color(fl_color_average(FL_BLACK, FL_BACKGROUND_COLOR, .1)); */
@@ -178,50 +178,9 @@ static void thin_down_box(int x, int y, int w, int h, Fl_Color c)
down_box(x, y, w, h, fl_lighter(c));
}

static void round_box(int x, int y, int w, int h, Fl_Color c)
{
cairo_t *cr = Fl::cairo_cc();

if ( w > 20 && h > 20 )
draw_rectf( x, y, w, h, c, 20.0 );
if ( w > 10 && h > 10 )
draw_rectf( x, y, w, h, c, 10.0 );
else
{
cairo_save( cr );
cairo_translate( cr, x + w / 2, y + w / 2 );
cairo_scale( cr, w, h );
cairo_arc( cr, 0, 0, 0.5, 0, M_PI * 2 );
cairo_restore( cr );

cairo_color( c );
cairo_fill_preserve( cr );
cairo_set_source_rgb( cr, 0, 0, 0 );
cairo_set_line_width( cr, 1 );
cairo_stroke( cr );
}
}

static void round_shadow_box(int x, int y, int w, int h, Fl_Color c)
{
cairo_t *cr = Fl::cairo_cc();

rect_path( x + 5, y + 5, w, h, 10.0 );

cairo_set_source_rgba( cr, 0, 0, 0, 0.5 );
cairo_fill( cr );
draw_rectf( x, y, w, h, c, 10.0 );
}


static void
init_theme ( void )
{
Fl::set_boxtype( _FL_RSHADOW_BOX, round_shadow_box, 5,5,10,10 );
Fl::set_boxtype( _FL_ROUNDED_BOX, round_box, 4,4, 8,8 );
Fl::set_boxtype( FL_UP_BOX, up_box, DX,DX,DX*2,DX*2 );
Fl::set_boxtype( FL_DOWN_BOX, down_box, DX,DX,DX*2,DX*2 );
Fl::set_boxtype( FL_THIN_UP_BOX, up_box, DX,DX,DX*2,DX*2 );


+ 4
- 5
src/Clean_Theme.cxx View File

@@ -27,7 +27,7 @@

static void clean_color(Fl_Color c)
{
c = fl_color_average( FL_GRAY, c, 0.4 );
c = fl_color_average( FL_GRAY, c, 0.2 );

if (Fl::draw_box_active())
fl_color(c);
@@ -37,13 +37,12 @@ static void clean_color(Fl_Color c)

static void rect(int x, int y, int w, int h, Fl_Color bc)
{
// clean_color( bc );
fl_rect( x, y, w, h, bc );
}

static void rectf ( int x, int y,int w, int h, Fl_Color bc )
{
clean_color(fl_color_average( FL_WHITE, bc, 0.05 ) );
clean_color( bc );
fl_rectf( x, y, w, h );
}

@@ -65,8 +64,8 @@ static void down_frame(int x, int y, int w, int h, Fl_Color c)

static void down_box(int x, int y, int w, int h, Fl_Color c)
{
rectf(x, y, w, h, fl_color_average( FL_WHITE, c, 0.2 ) );
rect(x, y, w, h, fl_color_average( FL_WHITE, c, 0.4 ) );
rectf(x, y, w, h, c );
rect(x, y, w, h, fl_color_average( FL_WHITE, c, 0.2 ) );
}

static void flat_box( int x, int y, int w, int h, Fl_Color c )


Loading…
Cancel
Save