This is an automated email from the git hooks/post-receive script. peter pushed a commit to branch peter/refresh-gtk2 in repository xfce/gtk-xfce-engine.
commit c9b5e1537aac1eb3994b7cbbf16b0b7898844aac Author: Peter de Ridder <pe...@xfce.org> Date: Sun Dec 15 22:03:51 2013 +0100 Added flat_border style property. --- src/xfce_rc_style.c | 11 + src/xfce_rc_style.h | 2 + src/xfce_theme_draw.c | 788 ++++++++++++++++++++++++++----------------------- 3 files changed, 435 insertions(+), 366 deletions(-) diff --git a/src/xfce_rc_style.c b/src/xfce_rc_style.c index 99db22c..a732b69 100644 --- a/src/xfce_rc_style.c +++ b/src/xfce_rc_style.c @@ -77,6 +77,7 @@ theme_symbols[] = { "southern_diagonal", TOKEN_SOUTHERN_DIAGONAL }, { "shade_start", TOKEN_SHADE_START }, { "shade_end", TOKEN_SHADE_END }, + { "flat_border", TOKEN_FLATBORDER }, { "true", TOKEN_TRUE}, { "TRUE", TOKEN_TRUE}, { "false", TOKEN_FALSE}, @@ -116,6 +117,7 @@ static void xfce_rc_style_init(XfceRcStyle * style) style->gradient_style = XFCE_RC_GRADIENT_AUTO; style->shade_start = DEFAULT_SHADE_START; style->shade_end = DEFAULT_SHADE_END; + style->flat_border = FALSE; } static void xfce_rc_style_class_init(XfceRcStyleClass * klass) @@ -422,6 +424,14 @@ static guint xfce_rc_style_parse(GtkRcStyle * rc_style, GtkSettings * settings, break; } break; + case TOKEN_FLATBORDER: + token = theme_parse_boolean(scanner, TOKEN_FLATBORDER, &b); + if(token != G_TOKEN_NONE) + { + break; + } + theme_data->flat_border = b; + break; default: g_scanner_get_next_token(scanner); token = G_TOKEN_RIGHT_CURLY; @@ -460,6 +470,7 @@ static void xfce_rc_style_merge(GtkRcStyle * dest, GtkRcStyle * src) dest_data->gradient_style = src_data->gradient_style; dest_data->shade_start = src_data->shade_start; dest_data->shade_end = src_data->shade_end; + dest_data->flat_border = src_data->flat_border; } /* Create an empty style suitable to this RC style diff --git a/src/xfce_rc_style.h b/src/xfce_rc_style.h index 53566b6..c2c94e1 100644 --- a/src/xfce_rc_style.h +++ b/src/xfce_rc_style.h @@ -81,6 +81,7 @@ struct _XfceRcStyle XfceRcGradientType gradient_style; gfloat shade_start; gfloat shade_end; + gboolean flat_border; }; struct _XfceRcStyleClass @@ -109,6 +110,7 @@ enum TOKEN_SOUTHERN_DIAGONAL, TOKEN_SHADE_START, TOKEN_SHADE_END, + TOKEN_FLATBORDER, TOKEN_TRUE, TOKEN_FALSE }; diff --git a/src/xfce_theme_draw.c b/src/xfce_theme_draw.c index 576cb36..a50c692 100644 --- a/src/xfce_theme_draw.c +++ b/src/xfce_theme_draw.c @@ -423,345 +423,234 @@ static void draw_shadow(GtkStyle * style, GdkWindow * window, GtkStateType state xt = MIN(style->xthickness, width - 1); yt = MIN(style->ythickness, height - 1); - switch (shadow_type) + if (XFCE_RC_STYLE(style->rc_style)->flat_border) { - case GTK_SHADOW_NONE: - break; - case GTK_SHADOW_ETCHED_IN: - if ((xt > 1) && (yt > 1)) + if ((DETAIL("spinbutton_up") || DETAIL("spinbutton_down")) && (state_type != GTK_STATE_PRELIGHT && state_type != GTK_STATE_ACTIVE)) + { + /* Do nothing */ + } + else if (DETAIL("menubar") || DETAIL ("handlebox_bin") || DETAIL ("handlebox") || DETAIL ("toolbar")) + { + if (yt > 0) { - gdk_cairo_set_source_color(cr, &style->light[state_type]); + gdk_cairo_set_source_color(cr, &style->dark[state_type]); cairo_move_to(cr, x + 0.5, y + height - 0.5); cairo_line_to(cr, x + width - 0.5, y + height - 0.5); - cairo_line_to(cr, x + width - 0.5, y + 0.5); - cairo_stroke(cr); - - gdk_cairo_set_source_color(cr, &style->dark[state_type]); - cairo_move_to(cr, x + width - 1.5, y + 0.5); - cairo_line_to(cr, x + 0.5, y + 0.5); - cairo_line_to(cr, x + 0.5, y + height - 1.5); - cairo_stroke(cr); - - gdk_cairo_set_source_color(cr, &style->light[state_type]); - cairo_move_to(cr, x + width - 1.5, y + 1.5); - cairo_line_to(cr, x + 1.5, y + 1.5); - cairo_line_to(cr, x + 1.5, y + height - 1.5); - cairo_stroke(cr); - - gdk_cairo_set_source_color(cr, &style->dark[state_type]); - cairo_move_to(cr, x + 1.5, y + height - 1.5); - cairo_line_to(cr, x + width - 1.5, y + height - 1.5); - cairo_line_to(cr, x + width - 1.5, y + 1.5); cairo_stroke(cr); } - else if ((xt > 0) && (yt > 0)) + } + else + { + if (((xt > 0) && (yt > 0)) || DETAIL("bar") || DETAIL("trough") || DETAIL("trough-lower") || DETAIL("trough-upper")) { + if (DETAIL("trough-lower")) + { + state_type = GTK_STATE_SELECTED; + } + gdk_cairo_set_source_color(cr, &style->dark[state_type]); cairo_rectangle(cr, x + 0.5, y + 0.5, width - 1, height - 1); cairo_stroke(cr); - } - break; - case GTK_SHADOW_ETCHED_OUT: - if ((xt > 1) && (yt > 1)) - { - gdk_cairo_set_source_color(cr, &style->dark[state_type]); - cairo_move_to(cr, x + 0.5, y + height - 0.5); - cairo_line_to(cr, x + width - 0.5, y + height - 0.5); - cairo_line_to(cr, x + width - 0.5, y + 0.5); - cairo_stroke(cr); - - gdk_cairo_set_source_color(cr, &style->light[state_type]); - cairo_move_to(cr, x + width - 1.5, y + 0.5); - cairo_line_to(cr, x + 0.5, y + 0.5); - cairo_line_to(cr, x + 0.5, y + height - 1.5); - cairo_stroke(cr); - gdk_cairo_set_source_color(cr, &style->dark[state_type]); - cairo_move_to(cr, x + width - 1.5, y + 1.5); - cairo_line_to(cr, x + 1.5, y + 1.5); - cairo_line_to(cr, x + 1.5, y + height - 1.5); - cairo_stroke(cr); + if (XFCE_RC_STYLE(style->rc_style)->smooth_edge) + { + if (DETAIL("menu")) + { + /* Sharp edges */ + } + else + { + if (DETAIL("bar")) + { + state_type = GTK_STATE_NORMAL; + } - gdk_cairo_set_source_color(cr, &style->light[state_type]); - cairo_move_to(cr, x + 1.5, y + height - 1.5); - cairo_line_to(cr, x + width - 1.5, y + height - 1.5); - cairo_line_to(cr, x + width - 1.5, y + 1.5); - cairo_stroke(cr); - } - else if ((xt > 0) && (yt > 0)) - { - gdk_cairo_set_source_color(cr, &style->light[state_type]); - cairo_rectangle(cr, x + 0.5, y + 0.5, width - 1, height - 1); - cairo_stroke(cr); + gdk_cairo_set_source_color(cr, &style->mid[state_type]); + cairo_rectangle(cr, x, y, 1, 1); + cairo_rectangle(cr, x + width - 1, y, 1, 1); + cairo_rectangle(cr, x, y + height - 1, 1, 1); + cairo_rectangle(cr, x + width - 1, y + height - 1, 1, 1); + cairo_fill(cr); + } + } } - break; - case GTK_SHADOW_IN: - if (XFCE_RC_STYLE(style->rc_style)->smooth_edge) - { - if (DETAIL("trough") || DETAIL("trough-lower") || DETAIL("trough-upper")) + } + } + else + { + switch (shadow_type) + { + case GTK_SHADOW_NONE: + break; + case GTK_SHADOW_ETCHED_IN: + if ((xt > 1) && (yt > 1)) { - gdk_cairo_set_source_color(cr, &style->bg[DETAIL("trough-lower") ? GTK_STATE_SELECTED : GTK_STATE_NORMAL]); - cairo_rectangle(cr, x + 0.5, y + 0.5, width - 1, height - 1); + gdk_cairo_set_source_color(cr, &style->light[state_type]); + cairo_move_to(cr, x + 0.5, y + height - 0.5); + cairo_line_to(cr, x + width - 0.5, y + height - 0.5); + cairo_line_to(cr, x + width - 0.5, y + 0.5); cairo_stroke(cr); - gdk_cairo_set_source_color(cr, &style->mid[GTK_STATE_NORMAL]); - cairo_rectangle(cr, x, y, 1, 1); - cairo_rectangle(cr, x + width - 1, y, 1, 1); - cairo_rectangle(cr, x, y + height - 1, 1, 1); - cairo_rectangle(cr, x + width - 1, y + height - 1, 1, 1); - cairo_fill(cr); - } - else if ((xt > 1) && (yt > 1)) - { gdk_cairo_set_source_color(cr, &style->dark[state_type]); - cairo_move_to(cr, x + 1.5, y + 0.5); - cairo_line_to(cr, x + width - 1.5, y + 0.5); - cairo_move_to(cr, x + 0.5, y + 1.5); + cairo_move_to(cr, x + width - 1.5, y + 0.5); + cairo_line_to(cr, x + 0.5, y + 0.5); cairo_line_to(cr, x + 0.5, y + height - 1.5); - - cairo_move_to(cr, x + 1.5, y + height - 0.5); - cairo_line_to(cr, x + width - 1.5, y + height - 0.5); - cairo_move_to(cr, x + width - 0.5, y + 1.5); - cairo_line_to(cr, x + width - 0.5, y + height - 1.5); cairo_stroke(cr); - gdk_cairo_set_source_color(cr, &style->mid[state_type]); + gdk_cairo_set_source_color(cr, &style->light[state_type]); cairo_move_to(cr, x + width - 1.5, y + 1.5); cairo_line_to(cr, x + 1.5, y + 1.5); cairo_line_to(cr, x + 1.5, y + height - 1.5); cairo_stroke(cr); - gdk_cairo_set_source_color(cr, &style->light[state_type]); - cairo_move_to(cr, x + 2.5, y + height - 1.5); + gdk_cairo_set_source_color(cr, &style->dark[state_type]); + cairo_move_to(cr, x + 1.5, y + height - 1.5); cairo_line_to(cr, x + width - 1.5, y + height - 1.5); - cairo_line_to(cr, x + width - 1.5, y + 2.5); + cairo_line_to(cr, x + width - 1.5, y + 1.5); cairo_stroke(cr); - - gdk_cairo_set_source_color(cr, &style->mid[state_type]); - cairo_rectangle(cr, x, y, 1, 1); - cairo_rectangle(cr, x + width - 1, y, 1, 1); - cairo_rectangle(cr, x, y + height - 1, 1, 1); - cairo_rectangle(cr, x + width - 1, y + height - 1, 1, 1); - cairo_fill(cr); } else if ((xt > 0) && (yt > 0)) { gdk_cairo_set_source_color(cr, &style->dark[state_type]); - cairo_move_to(cr, x + 1.5, y + 0.5); - cairo_line_to(cr, x + width - 0.5, y + 0.5); - cairo_move_to(cr, x + 0.5, y + 1.5); - cairo_line_to(cr, x + 0.5, y + height - 0.5); - cairo_stroke(cr); - - gdk_cairo_set_source_color(cr, &style->light[state_type]); - cairo_move_to(cr, x + 1.5, y + height - 0.5); - cairo_line_to(cr, x + width - 0.5, y + height - 0.5); - cairo_line_to(cr, x + width - 0.5, y + 1.5); - cairo_stroke(cr); - - gdk_cairo_set_source_color(cr, &style->mid[state_type]); - cairo_rectangle(cr, x, y, 1, 1); - cairo_rectangle(cr, x + width - 1, y, 1, 1); - cairo_rectangle(cr, x, y + height - 1, 1, 1); - cairo_rectangle(cr, x + width - 1, y + height - 1, 1, 1); - cairo_fill(cr); - } - } - else - { - if (DETAIL("trough") || DETAIL("trough-lower") || DETAIL("trough-upper")) - { - gdk_cairo_set_source_color(cr, &style->dark[DETAIL("trough-lower") ? GTK_STATE_SELECTED : GTK_STATE_ACTIVE]); cairo_rectangle(cr, x + 0.5, y + 0.5, width - 1, height - 1); cairo_stroke(cr); } - else if ((xt > 1) && (yt > 1)) + break; + case GTK_SHADOW_ETCHED_OUT: + if ((xt > 1) && (yt > 1)) { gdk_cairo_set_source_color(cr, &style->dark[state_type]); - cairo_move_to(cr, x + width - 0.5, y + 0.5); - cairo_line_to(cr, x + 0.5, y + 0.5); - cairo_line_to(cr, x + 0.5, y + height - 0.5); + cairo_move_to(cr, x + 0.5, y + height - 0.5); + cairo_line_to(cr, x + width - 0.5, y + height - 0.5); + cairo_line_to(cr, x + width - 0.5, y + 0.5); cairo_stroke(cr); gdk_cairo_set_source_color(cr, &style->light[state_type]); - cairo_move_to(cr, x + 1.5, y + height - 0.5); - cairo_line_to(cr, x + width - 0.5, y + height - 0.5); - cairo_line_to(cr, x + width - 0.5, y + 1.5); + cairo_move_to(cr, x + width - 1.5, y + 0.5); + cairo_line_to(cr, x + 0.5, y + 0.5); + cairo_line_to(cr, x + 0.5, y + height - 1.5); cairo_stroke(cr); - gdk_cairo_set_source_color(cr, &style->black); + gdk_cairo_set_source_color(cr, &style->dark[state_type]); cairo_move_to(cr, x + width - 1.5, y + 1.5); cairo_line_to(cr, x + 1.5, y + 1.5); cairo_line_to(cr, x + 1.5, y + height - 1.5); cairo_stroke(cr); - gdk_cairo_set_source_color(cr, &style->dark[state_type]); - cairo_move_to(cr, x + 2.5, y + height - 1.5); + gdk_cairo_set_source_color(cr, &style->light[state_type]); + cairo_move_to(cr, x + 1.5, y + height - 1.5); cairo_line_to(cr, x + width - 1.5, y + height - 1.5); - cairo_line_to(cr, x + width - 1.5, y + 2.5); + cairo_line_to(cr, x + width - 1.5, y + 1.5); cairo_stroke(cr); } else if ((xt > 0) && (yt > 0)) { - gdk_cairo_set_source_color(cr, &style->dark[state_type]); - cairo_move_to(cr, x + width - 0.5, y + 0.5); - cairo_line_to(cr, x + 0.5, y + 0.5); - cairo_line_to(cr, x + 0.5, y + height - 0.5); - cairo_stroke(cr); - gdk_cairo_set_source_color(cr, &style->light[state_type]); - cairo_move_to(cr, x + 1.5, y + height - 0.5); - cairo_line_to(cr, x + width - 0.5, y + height - 0.5); - cairo_line_to(cr, x + width - 0.5, y + 1.5); - cairo_stroke(cr); - } - } - break; - case GTK_SHADOW_OUT: - if (XFCE_RC_STYLE(style->rc_style)->smooth_edge) - { - if ((DETAIL("spinbutton_up") || DETAIL("spinbutton_down")) && (state_type != GTK_STATE_PRELIGHT)) - { - /* Do nothing */ - } - else if (DETAIL("bar")) - { - gdk_cairo_set_source_color(cr, &style->dark[state_type]); cairo_rectangle(cr, x + 0.5, y + 0.5, width - 1, height - 1); cairo_stroke(cr); - - gdk_cairo_set_source_color(cr, &style->mid[GTK_STATE_NORMAL]); - cairo_rectangle(cr, x, y, 1, 1); - cairo_rectangle(cr, x + width - 1, y, 1, 1); - cairo_rectangle(cr, x, y + height - 1, 1, 1); - cairo_rectangle(cr, x + width - 1, y + height - 1, 1, 1); - cairo_fill(cr); } - else if (DETAIL("menu")) + break; + case GTK_SHADOW_IN: + if (XFCE_RC_STYLE(style->rc_style)->smooth_edge) { - if ((xt > 0) && (yt > 0)) + if (DETAIL("trough") || DETAIL("trough-lower") || DETAIL("trough-upper")) { - gdk_cairo_set_source_color(cr, &style->dark[state_type]); + gdk_cairo_set_source_color(cr, &style->bg[DETAIL("trough-lower") ? GTK_STATE_SELECTED : GTK_STATE_NORMAL]); cairo_rectangle(cr, x + 0.5, y + 0.5, width - 1, height - 1); cairo_stroke(cr); - } - } - else if (DETAIL("menubar")) - { - if ((xt > 1) && (yt > 1)) - { - gdk_cairo_set_source_color(cr, &style->mid[state_type]); - cairo_move_to(cr, x + 0.5, y + height - 1.5); - cairo_line_to(cr, x + width - 0.5, y + height - 1.5); - cairo_stroke(cr); - gdk_cairo_set_source_color(cr, &style->dark[state_type]); - cairo_move_to(cr, x + 0.5, y + height - 0.5); - cairo_line_to(cr, x + width - 0.5, y + height - 0.5); - cairo_stroke(cr); + gdk_cairo_set_source_color(cr, &style->mid[GTK_STATE_NORMAL]); + cairo_rectangle(cr, x, y, 1, 1); + cairo_rectangle(cr, x + width - 1, y, 1, 1); + cairo_rectangle(cr, x, y + height - 1, 1, 1); + cairo_rectangle(cr, x + width - 1, y + height - 1, 1, 1); + cairo_fill(cr); } - else if ((xt > 0) && (yt > 0)) + else if ((xt > 1) && (yt > 1)) { gdk_cairo_set_source_color(cr, &style->dark[state_type]); - cairo_move_to(cr, x + 0.5, y + height - 0.5); - cairo_line_to(cr, x + width - 0.5, y + height - 0.5); - cairo_stroke(cr); - } - } - else if (DETAIL ("handlebox_bin") || DETAIL ("handlebox") || DETAIL ("toolbar")) - { - if ((xt > 1) && (yt > 1)) - { - gdk_cairo_set_source_color(cr, &style->light[state_type]); - cairo_move_to(cr, x + 0.5, y + 0.5); - cairo_line_to(cr, x + width - 0.5, y + 0.5); - cairo_stroke(cr); + cairo_move_to(cr, x + 1.5, y + 0.5); + cairo_line_to(cr, x + width - 1.5, y + 0.5); + cairo_move_to(cr, x + 0.5, y + 1.5); + cairo_line_to(cr, x + 0.5, y + height - 1.5); - gdk_cairo_set_source_color(cr, &style->mid[state_type]); - cairo_move_to(cr, x + 0.5 , y + height - 1.5); + cairo_move_to(cr, x + 1.5, y + height - 0.5); + cairo_line_to(cr, x + width - 1.5, y + height - 0.5); + cairo_move_to(cr, x + width - 0.5, y + 1.5); cairo_line_to(cr, x + width - 0.5, y + height - 1.5); cairo_stroke(cr); - gdk_cairo_set_source_color(cr, &style->dark[state_type]); - cairo_move_to(cr, x + 0.5, y + height - 0.5); - cairo_line_to(cr, x + width - 0.5, y + height - 0.5); + gdk_cairo_set_source_color(cr, &style->mid[state_type]); + cairo_move_to(cr, x + width - 1.5, y + 1.5); + cairo_line_to(cr, x + 1.5, y + 1.5); + cairo_line_to(cr, x + 1.5, y + height - 1.5); cairo_stroke(cr); - } - else if ((xt > 0) && (yt > 0)) - { + gdk_cairo_set_source_color(cr, &style->light[state_type]); - cairo_move_to(cr, x + 0.5, y + 0.5); - cairo_line_to(cr, x + width - 0.5, y + 0.5); + cairo_move_to(cr, x + 2.5, y + height - 1.5); + cairo_line_to(cr, x + width - 1.5, y + height - 1.5); + cairo_line_to(cr, x + width - 1.5, y + 2.5); cairo_stroke(cr); - gdk_cairo_set_source_color(cr, &style->dark[state_type]); - cairo_move_to(cr, x + 0.5, y + height - 0.5); - cairo_line_to(cr, x + width - 0.5, y + height - 0.5); - cairo_stroke(cr); + gdk_cairo_set_source_color(cr, &style->mid[state_type]); + cairo_rectangle(cr, x, y, 1, 1); + cairo_rectangle(cr, x + width - 1, y, 1, 1); + cairo_rectangle(cr, x, y + height - 1, 1, 1); + cairo_rectangle(cr, x + width - 1, y + height - 1, 1, 1); + cairo_fill(cr); } - } - else if (DETAIL("vscrollbar") || DETAIL("hscrollbar") || DETAIL("slider") || DETAIL("vscale") || DETAIL("hscale")) - { - if ((xt > 1) && (yt > 1)) + else if ((xt > 0) && (yt > 0)) { gdk_cairo_set_source_color(cr, &style->dark[state_type]); - cairo_move_to(cr, x + width - 0.5, y + 0.5); - cairo_line_to(cr, x + 0.5, y + 0.5); + cairo_move_to(cr, x + 1.5, y + 0.5); + cairo_line_to(cr, x + width - 0.5, y + 0.5); + cairo_move_to(cr, x + 0.5, y + 1.5); cairo_line_to(cr, x + 0.5, y + height - 0.5); + cairo_stroke(cr); + gdk_cairo_set_source_color(cr, &style->light[state_type]); cairo_move_to(cr, x + 1.5, y + height - 0.5); cairo_line_to(cr, x + width - 0.5, y + height - 0.5); cairo_line_to(cr, x + width - 0.5, y + 1.5); cairo_stroke(cr); - gdk_cairo_set_source_color(cr, &style->light[state_type]); - cairo_move_to(cr, x + width - 2.5, y + 1.5); - cairo_line_to(cr, x + 1.5, y + 1.5); - cairo_line_to(cr, x + 1.5, y + height - 2.5); - cairo_stroke(cr); - gdk_cairo_set_source_color(cr, &style->mid[state_type]); - cairo_move_to(cr, x + 1.5, y + height - 1.5); - cairo_line_to(cr, x + width - 1.5, y + height - 1.5); - cairo_line_to(cr, x + width - 1.5, y + 1.5); + cairo_rectangle(cr, x, y, 1, 1); + cairo_rectangle(cr, x + width - 1, y, 1, 1); + cairo_rectangle(cr, x, y + height - 1, 1, 1); + cairo_rectangle(cr, x + width - 1, y + height - 1, 1, 1); + cairo_fill(cr); + } + } + else + { + if (DETAIL("trough") || DETAIL("trough-lower") || DETAIL("trough-upper")) + { + gdk_cairo_set_source_color(cr, &style->dark[DETAIL("trough-lower") ? GTK_STATE_SELECTED : GTK_STATE_ACTIVE]); + cairo_rectangle(cr, x + 0.5, y + 0.5, width - 1, height - 1); cairo_stroke(cr); } - else if ((xt > 0) && (yt > 0)) + else if ((xt > 1) && (yt > 1)) { - gdk_cairo_set_source_color(cr, &style->light[state_type]); + gdk_cairo_set_source_color(cr, &style->dark[state_type]); cairo_move_to(cr, x + width - 0.5, y + 0.5); cairo_line_to(cr, x + 0.5, y + 0.5); cairo_line_to(cr, x + 0.5, y + height - 0.5); cairo_stroke(cr); - gdk_cairo_set_source_color(cr, &style->dark[state_type]); + gdk_cairo_set_source_color(cr, &style->light[state_type]); cairo_move_to(cr, x + 1.5, y + height - 0.5); cairo_line_to(cr, x + width - 0.5, y + height - 0.5); cairo_line_to(cr, x + width - 0.5, y + 1.5); cairo_stroke(cr); - } - } - else if (DETAIL("frame")) - { - if ((xt > 1) && (yt > 1)) - { - gdk_cairo_set_source_color(cr, &style->light[state_type]); - cairo_move_to(cr, x + width - 1.5, y + 0.5); - cairo_line_to(cr, x + 0.5, y + 0.5); - cairo_line_to(cr, x + 0.5, y + height - 1.5); - cairo_stroke(cr); - - gdk_cairo_set_source_color(cr, &style->dark[state_type]); - cairo_move_to(cr, x + 0.5, y + height - 0.5); - cairo_line_to(cr, x + width - 0.5, y + height - 0.5); - cairo_line_to(cr, x + width - 0.5, y + 0.5); - cairo_stroke(cr); - gdk_cairo_set_source_color(cr, &style->bg[state_type]); + gdk_cairo_set_source_color(cr, &style->black); cairo_move_to(cr, x + width - 1.5, y + 1.5); cairo_line_to(cr, x + 1.5, y + 1.5); cairo_line_to(cr, x + 1.5, y + height - 1.5); + cairo_stroke(cr); + gdk_cairo_set_source_color(cr, &style->dark[state_type]); cairo_move_to(cr, x + 2.5, y + height - 1.5); cairo_line_to(cr, x + width - 1.5, y + height - 1.5); cairo_line_to(cr, x + width - 1.5, y + 2.5); @@ -769,180 +658,347 @@ static void draw_shadow(GtkStyle * style, GdkWindow * window, GtkStateType state } else if ((xt > 0) && (yt > 0)) { - gdk_cairo_set_source_color(cr, &style->light[state_type]); + gdk_cairo_set_source_color(cr, &style->dark[state_type]); cairo_move_to(cr, x + width - 0.5, y + 0.5); cairo_line_to(cr, x + 0.5, y + 0.5); cairo_line_to(cr, x + 0.5, y + height - 0.5); cairo_stroke(cr); - gdk_cairo_set_source_color(cr, &style->dark[state_type]); + gdk_cairo_set_source_color(cr, &style->light[state_type]); cairo_move_to(cr, x + 1.5, y + height - 0.5); cairo_line_to(cr, x + width - 0.5, y + height - 0.5); cairo_line_to(cr, x + width - 0.5, y + 1.5); cairo_stroke(cr); } } - else + break; + case GTK_SHADOW_OUT: + if (XFCE_RC_STYLE(style->rc_style)->smooth_edge) { - if ((xt > 1) && (yt > 1)) + if ((DETAIL("spinbutton_up") || DETAIL("spinbutton_down")) && (state_type != GTK_STATE_PRELIGHT)) { - gdk_cairo_set_source_color(cr, &style->dark[state_type]); - cairo_move_to(cr, x + 1.5, y + 0.5); - cairo_line_to(cr, x + width - 1.5, y + 0.5); - cairo_move_to(cr, x + 0.5, y + 1.5); - cairo_line_to(cr, x + 0.5, y + height - 1.5); - - cairo_move_to(cr, x + 1.5, y + height - 0.5); - cairo_line_to(cr, x + width - 1.5, y + height - 0.5); - cairo_move_to(cr, x + width - 0.5, y + 1.5); - cairo_line_to(cr, x + width - 0.5, y + height - 1.5); - cairo_stroke(cr); - - gdk_cairo_set_source_color(cr, &style->light[state_type]); - cairo_move_to(cr, x + width - 2.5, y + 1.5); - cairo_line_to(cr, x + 1.5, y + 1.5); - cairo_line_to(cr, x + 1.5, y + height - 2.5); - cairo_stroke(cr); - - gdk_cairo_set_source_color(cr, &style->mid[state_type]); - cairo_move_to(cr, x + 1.5, y + height - 1.5); - cairo_line_to(cr, x + width - 1.5, y + height - 1.5); - cairo_line_to(cr, x + width - 1.5, y + 1.5); - cairo_stroke(cr); - - gdk_cairo_set_source_color(cr, &style->mid[state_type]); - cairo_rectangle(cr, x, y, 1, 1); - cairo_rectangle(cr, x + width - 1, y, 1, 1); - cairo_rectangle(cr, x, y + height - 1, 1, 1); - cairo_rectangle(cr, x + width - 1, y + height - 1, 1, 1); - cairo_fill(cr); + /* Do nothing */ } - else if ((xt > 0) && (yt > 0)) + else if (DETAIL("bar")) { - gdk_cairo_set_source_color(cr, &style->light[state_type]); - cairo_move_to(cr, x + 1.5, y + 0.5); - cairo_line_to(cr, x + width - 0.5, y + 0.5); - cairo_move_to(cr, x + 0.5, y + 1.5); - cairo_line_to(cr, x + 0.5, y + height - 0.5); - cairo_stroke(cr); - gdk_cairo_set_source_color(cr, &style->dark[state_type]); - cairo_move_to(cr, x + 1.5, y + height - 0.5); - cairo_line_to(cr, x + width - 0.5, y + height - 0.5); - cairo_line_to(cr, x + width - 0.5, y + 1.5); + cairo_rectangle(cr, x + 0.5, y + 0.5, width - 1, height - 1); cairo_stroke(cr); - gdk_cairo_set_source_color(cr, &style->mid[state_type]); + gdk_cairo_set_source_color(cr, &style->mid[GTK_STATE_NORMAL]); cairo_rectangle(cr, x, y, 1, 1); cairo_rectangle(cr, x + width - 1, y, 1, 1); cairo_rectangle(cr, x, y + height - 1, 1, 1); cairo_rectangle(cr, x + width - 1, y + height - 1, 1, 1); cairo_fill(cr); } - } - } - else - { - if ((DETAIL("spinbutton_up") || DETAIL("spinbutton_down")) && (state_type != GTK_STATE_PRELIGHT)) - { - /* Do nothing */ - } - else if (DETAIL("menubar")) - { - if ((xt > 1) && (yt > 1)) + else if (DETAIL("menu")) { - gdk_cairo_set_source_color(cr, &style->mid[state_type]); - cairo_move_to(cr, x + 0.5, y + height - 1.5); - cairo_line_to(cr, x + width - 0.5, y + height - 1.5); - cairo_stroke(cr); - - gdk_cairo_set_source_color(cr, &style->dark[state_type]); - cairo_move_to(cr, x + 0.5, y + height - 0.5); - cairo_line_to(cr, x + width - 0.5, y + height - 0.5); - cairo_stroke(cr); + if ((xt > 0) && (yt > 0)) + { + gdk_cairo_set_source_color(cr, &style->dark[state_type]); + cairo_rectangle(cr, x + 0.5, y + 0.5, width - 1, height - 1); + cairo_stroke(cr); + } } - else if ((xt > 0) && (yt > 0)) + else if (DETAIL("menubar")) { - gdk_cairo_set_source_color(cr, &style->dark[state_type]); - cairo_move_to(cr, x + 0.5, y + height - 0.5); - cairo_line_to(cr, x + width - 0.5, y + height - 0.5); - cairo_stroke(cr); + if ((xt > 1) && (yt > 1)) + { + gdk_cairo_set_source_color(cr, &style->mid[state_type]); + cairo_move_to(cr, x + 0.5, y + height - 1.5); + cairo_line_to(cr, x + width - 0.5, y + height - 1.5); + cairo_stroke(cr); + + gdk_cairo_set_source_color(cr, &style->dark[state_type]); + cairo_move_to(cr, x + 0.5, y + height - 0.5); + cairo_line_to(cr, x + width - 0.5, y + height - 0.5); + cairo_stroke(cr); + } + else if ((xt > 0) && (yt > 0)) + { + gdk_cairo_set_source_color(cr, &style->dark[state_type]); + cairo_move_to(cr, x + 0.5, y + height - 0.5); + cairo_line_to(cr, x + width - 0.5, y + height - 0.5); + cairo_stroke(cr); + } + } + else if (DETAIL ("handlebox_bin") || DETAIL ("handlebox") || DETAIL ("toolbar")) + { + if ((xt > 1) && (yt > 1)) + { + gdk_cairo_set_source_color(cr, &style->light[state_type]); + cairo_move_to(cr, x + 0.5, y + 0.5); + cairo_line_to(cr, x + width - 0.5, y + 0.5); + cairo_stroke(cr); + + gdk_cairo_set_source_color(cr, &style->mid[state_type]); + cairo_move_to(cr, x + 0.5 , y + height - 1.5); + cairo_line_to(cr, x + width - 0.5, y + height - 1.5); + cairo_stroke(cr); + + gdk_cairo_set_source_color(cr, &style->dark[state_type]); + cairo_move_to(cr, x + 0.5, y + height - 0.5); + cairo_line_to(cr, x + width - 0.5, y + height - 0.5); + cairo_stroke(cr); + } + else if ((xt > 0) && (yt > 0)) + { + gdk_cairo_set_source_color(cr, &style->light[state_type]); + cairo_move_to(cr, x + 0.5, y + 0.5); + cairo_line_to(cr, x + width - 0.5, y + 0.5); + cairo_stroke(cr); + + gdk_cairo_set_source_color(cr, &style->dark[state_type]); + cairo_move_to(cr, x + 0.5, y + height - 0.5); + cairo_line_to(cr, x + width - 0.5, y + height - 0.5); + cairo_stroke(cr); + } + } + else if (DETAIL("vscrollbar") || DETAIL("hscrollbar") || DETAIL("slider") || DETAIL("vscale") || DETAIL("hscale")) + { + if ((xt > 1) && (yt > 1)) + { + gdk_cairo_set_source_color(cr, &style->dark[state_type]); + cairo_move_to(cr, x + width - 0.5, y + 0.5); + cairo_line_to(cr, x + 0.5, y + 0.5); + cairo_line_to(cr, x + 0.5, y + height - 0.5); + + cairo_move_to(cr, x + 1.5, y + height - 0.5); + cairo_line_to(cr, x + width - 0.5, y + height - 0.5); + cairo_line_to(cr, x + width - 0.5, y + 1.5); + cairo_stroke(cr); + + gdk_cairo_set_source_color(cr, &style->light[state_type]); + cairo_move_to(cr, x + width - 2.5, y + 1.5); + cairo_line_to(cr, x + 1.5, y + 1.5); + cairo_line_to(cr, x + 1.5, y + height - 2.5); + cairo_stroke(cr); + + gdk_cairo_set_source_color(cr, &style->mid[state_type]); + cairo_move_to(cr, x + 1.5, y + height - 1.5); + cairo_line_to(cr, x + width - 1.5, y + height - 1.5); + cairo_line_to(cr, x + width - 1.5, y + 1.5); + cairo_stroke(cr); + } + else if ((xt > 0) && (yt > 0)) + { + gdk_cairo_set_source_color(cr, &style->light[state_type]); + cairo_move_to(cr, x + width - 0.5, y + 0.5); + cairo_line_to(cr, x + 0.5, y + 0.5); + cairo_line_to(cr, x + 0.5, y + height - 0.5); + cairo_stroke(cr); + + gdk_cairo_set_source_color(cr, &style->dark[state_type]); + cairo_move_to(cr, x + 1.5, y + height - 0.5); + cairo_line_to(cr, x + width - 0.5, y + height - 0.5); + cairo_line_to(cr, x + width - 0.5, y + 1.5); + cairo_stroke(cr); + } + } + else if (DETAIL("frame")) + { + if ((xt > 1) && (yt > 1)) + { + gdk_cairo_set_source_color(cr, &style->light[state_type]); + cairo_move_to(cr, x + width - 1.5, y + 0.5); + cairo_line_to(cr, x + 0.5, y + 0.5); + cairo_line_to(cr, x + 0.5, y + height - 1.5); + cairo_stroke(cr); + + gdk_cairo_set_source_color(cr, &style->dark[state_type]); + cairo_move_to(cr, x + 0.5, y + height - 0.5); + cairo_line_to(cr, x + width - 0.5, y + height - 0.5); + cairo_line_to(cr, x + width - 0.5, y + 0.5); + cairo_stroke(cr); + + gdk_cairo_set_source_color(cr, &style->bg[state_type]); + cairo_move_to(cr, x + width - 1.5, y + 1.5); + cairo_line_to(cr, x + 1.5, y + 1.5); + cairo_line_to(cr, x + 1.5, y + height - 1.5); + + cairo_move_to(cr, x + 2.5, y + height - 1.5); + cairo_line_to(cr, x + width - 1.5, y + height - 1.5); + cairo_line_to(cr, x + width - 1.5, y + 2.5); + cairo_stroke(cr); + } + else if ((xt > 0) && (yt > 0)) + { + gdk_cairo_set_source_color(cr, &style->light[state_type]); + cairo_move_to(cr, x + width - 0.5, y + 0.5); + cairo_line_to(cr, x + 0.5, y + 0.5); + cairo_line_to(cr, x + 0.5, y + height - 0.5); + cairo_stroke(cr); + + gdk_cairo_set_source_color(cr, &style->dark[state_type]); + cairo_move_to(cr, x + 1.5, y + height - 0.5); + cairo_line_to(cr, x + width - 0.5, y + height - 0.5); + cairo_line_to(cr, x + width - 0.5, y + 1.5); + cairo_stroke(cr); + } + } + else + { + if ((xt > 1) && (yt > 1)) + { + gdk_cairo_set_source_color(cr, &style->dark[state_type]); + cairo_move_to(cr, x + 1.5, y + 0.5); + cairo_line_to(cr, x + width - 1.5, y + 0.5); + cairo_move_to(cr, x + 0.5, y + 1.5); + cairo_line_to(cr, x + 0.5, y + height - 1.5); + + cairo_move_to(cr, x + 1.5, y + height - 0.5); + cairo_line_to(cr, x + width - 1.5, y + height - 0.5); + cairo_move_to(cr, x + width - 0.5, y + 1.5); + cairo_line_to(cr, x + width - 0.5, y + height - 1.5); + cairo_stroke(cr); + + gdk_cairo_set_source_color(cr, &style->light[state_type]); + cairo_move_to(cr, x + width - 2.5, y + 1.5); + cairo_line_to(cr, x + 1.5, y + 1.5); + cairo_line_to(cr, x + 1.5, y + height - 2.5); + cairo_stroke(cr); + + gdk_cairo_set_source_color(cr, &style->mid[state_type]); + cairo_move_to(cr, x + 1.5, y + height - 1.5); + cairo_line_to(cr, x + width - 1.5, y + height - 1.5); + cairo_line_to(cr, x + width - 1.5, y + 1.5); + cairo_stroke(cr); + + gdk_cairo_set_source_color(cr, &style->mid[state_type]); + cairo_rectangle(cr, x, y, 1, 1); + cairo_rectangle(cr, x + width - 1, y, 1, 1); + cairo_rectangle(cr, x, y + height - 1, 1, 1); + cairo_rectangle(cr, x + width - 1, y + height - 1, 1, 1); + cairo_fill(cr); + } + else if ((xt > 0) && (yt > 0)) + { + gdk_cairo_set_source_color(cr, &style->light[state_type]); + cairo_move_to(cr, x + 1.5, y + 0.5); + cairo_line_to(cr, x + width - 0.5, y + 0.5); + cairo_move_to(cr, x + 0.5, y + 1.5); + cairo_line_to(cr, x + 0.5, y + height - 0.5); + cairo_stroke(cr); + + gdk_cairo_set_source_color(cr, &style->dark[state_type]); + cairo_move_to(cr, x + 1.5, y + height - 0.5); + cairo_line_to(cr, x + width - 0.5, y + height - 0.5); + cairo_line_to(cr, x + width - 0.5, y + 1.5); + cairo_stroke(cr); + + gdk_cairo_set_source_color(cr, &style->mid[state_type]); + cairo_rectangle(cr, x, y, 1, 1); + cairo_rectangle(cr, x + width - 1, y, 1, 1); + cairo_rectangle(cr, x, y + height - 1, 1, 1); + cairo_rectangle(cr, x + width - 1, y + height - 1, 1, 1); + cairo_fill(cr); + } } } - else if (DETAIL ("handlebox_bin") || DETAIL ("handlebox") || DETAIL ("toolbar")) + else { - if ((xt > 1) && (yt > 1)) + if ((DETAIL("spinbutton_up") || DETAIL("spinbutton_down")) && (state_type != GTK_STATE_PRELIGHT)) { - gdk_cairo_set_source_color(cr, &style->light[state_type]); - cairo_move_to(cr, x + 0.5, y + 0.5); - cairo_line_to(cr, x + width - 0.5, y + 0.5); + /* Do nothing */ + } + else if (DETAIL("menubar")) + { + if ((xt > 1) && (yt > 1)) + { + gdk_cairo_set_source_color(cr, &style->mid[state_type]); + cairo_move_to(cr, x + 0.5, y + height - 1.5); + cairo_line_to(cr, x + width - 0.5, y + height - 1.5); + cairo_stroke(cr); + + gdk_cairo_set_source_color(cr, &style->dark[state_type]); + cairo_move_to(cr, x + 0.5, y + height - 0.5); + cairo_line_to(cr, x + width - 0.5, y + height - 0.5); + cairo_stroke(cr); + } + else if ((xt > 0) && (yt > 0)) + { + gdk_cairo_set_source_color(cr, &style->dark[state_type]); + cairo_move_to(cr, x + 0.5, y + height - 0.5); + cairo_line_to(cr, x + width - 0.5, y + height - 0.5); + cairo_stroke(cr); + } + } + else if (DETAIL ("handlebox_bin") || DETAIL ("handlebox") || DETAIL ("toolbar")) + { + if ((xt > 1) && (yt > 1)) + { + gdk_cairo_set_source_color(cr, &style->light[state_type]); + cairo_move_to(cr, x + 0.5, y + 0.5); + cairo_line_to(cr, x + width - 0.5, y + 0.5); + cairo_stroke(cr); + + gdk_cairo_set_source_color(cr, &style->mid[state_type]); + cairo_move_to(cr, x + 0.5 , y + height - 1.5); + cairo_line_to(cr, x + width - 0.5, y + height - 1.5); + cairo_stroke(cr); + + gdk_cairo_set_source_color(cr, &style->dark[state_type]); + cairo_move_to(cr, x + 0.5, y + height - 0.5); + cairo_line_to(cr, x + width - 0.5, y + height - 0.5); + cairo_stroke(cr); + } + else if ((xt > 0) && (yt > 0)) + { + gdk_cairo_set_source_color(cr, &style->light[state_type]); + cairo_move_to(cr, x + 0.5, y + 0.5); + cairo_line_to(cr, x + width - 0.5, y + 0.5); + cairo_stroke(cr); + + gdk_cairo_set_source_color(cr, &style->dark[state_type]); + cairo_move_to(cr, x + 0.5, y + height - 0.5); + cairo_line_to(cr, x + width - 0.5, y + height - 0.5); + cairo_stroke(cr); + } + } + else if ((xt > 1) && (yt > 1)) + { + gdk_cairo_set_source_color(cr, &style->dark[state_type]); + cairo_move_to(cr, x + width - 0.5, y + 0.5); + cairo_line_to(cr, x + 0.5, y + 0.5); + cairo_line_to(cr, x + 0.5, y + height - 0.5); cairo_stroke(cr); - gdk_cairo_set_source_color(cr, &style->mid[state_type]); - cairo_move_to(cr, x + 0.5 , y + height - 1.5); - cairo_line_to(cr, x + width - 0.5, y + height - 1.5); + gdk_cairo_set_source_color(cr, &style->black); + cairo_move_to(cr, x + 1.5, y + height - 0.5); + cairo_line_to(cr, x + width - 0.5, y + height - 0.5); + cairo_line_to(cr, x + width - 0.5, y + 1.5); + cairo_stroke(cr); + + gdk_cairo_set_source_color(cr, &style->light[state_type]); + cairo_move_to(cr, x + width - 1.5, y + 1.5); + cairo_line_to(cr, x + 1.5, y + 1.5); + cairo_line_to(cr, x + 1.5, y + height - 1.5); cairo_stroke(cr); gdk_cairo_set_source_color(cr, &style->dark[state_type]); - cairo_move_to(cr, x + 0.5, y + height - 0.5); - cairo_line_to(cr, x + width - 0.5, y + height - 0.5); + cairo_move_to(cr, x + 2.5, y + height - 1.5); + cairo_line_to(cr, x + width - 1.5, y + height - 1.5); + cairo_line_to(cr, x + width - 1.5, y + 2.5); cairo_stroke(cr); } else if ((xt > 0) && (yt > 0)) { gdk_cairo_set_source_color(cr, &style->light[state_type]); - cairo_move_to(cr, x + 0.5, y + 0.5); - cairo_line_to(cr, x + width - 0.5, y + 0.5); + cairo_move_to(cr, x + width - 0.5, y + 0.5); + cairo_line_to(cr, x + 0.5, y + 0.5); + cairo_line_to(cr, x + 0.5, y + height - 0.5); cairo_stroke(cr); gdk_cairo_set_source_color(cr, &style->dark[state_type]); - cairo_move_to(cr, x + 0.5, y + height - 0.5); + cairo_move_to(cr, x + 1.5, y + height - 0.5); cairo_line_to(cr, x + width - 0.5, y + height - 0.5); + cairo_line_to(cr, x + width - 0.5, y + 1.5); cairo_stroke(cr); } } - else if ((xt > 1) && (yt > 1)) - { - gdk_cairo_set_source_color(cr, &style->dark[state_type]); - cairo_move_to(cr, x + width - 0.5, y + 0.5); - cairo_line_to(cr, x + 0.5, y + 0.5); - cairo_line_to(cr, x + 0.5, y + height - 0.5); - cairo_stroke(cr); - - gdk_cairo_set_source_color(cr, &style->black); - cairo_move_to(cr, x + 1.5, y + height - 0.5); - cairo_line_to(cr, x + width - 0.5, y + height - 0.5); - cairo_line_to(cr, x + width - 0.5, y + 1.5); - cairo_stroke(cr); - - gdk_cairo_set_source_color(cr, &style->light[state_type]); - cairo_move_to(cr, x + width - 1.5, y + 1.5); - cairo_line_to(cr, x + 1.5, y + 1.5); - cairo_line_to(cr, x + 1.5, y + height - 1.5); - cairo_stroke(cr); - - gdk_cairo_set_source_color(cr, &style->dark[state_type]); - cairo_move_to(cr, x + 2.5, y + height - 1.5); - cairo_line_to(cr, x + width - 1.5, y + height - 1.5); - cairo_line_to(cr, x + width - 1.5, y + 2.5); - cairo_stroke(cr); - } - else if ((xt > 0) && (yt > 0)) - { - gdk_cairo_set_source_color(cr, &style->light[state_type]); - cairo_move_to(cr, x + width - 0.5, y + 0.5); - cairo_line_to(cr, x + 0.5, y + 0.5); - cairo_line_to(cr, x + 0.5, y + height - 0.5); - cairo_stroke(cr); - - gdk_cairo_set_source_color(cr, &style->dark[state_type]); - cairo_move_to(cr, x + 1.5, y + height - 0.5); - cairo_line_to(cr, x + width - 0.5, y + height - 0.5); - cairo_line_to(cr, x + width - 0.5, y + 1.5); - cairo_stroke(cr); - } - } - break; + break; + } } cairo_destroy(cr); -- To stop receiving notification emails like this one, please contact the administrator of this repository. _______________________________________________ Xfce4-commits mailing list Xfce4-commits@xfce.org https://mail.xfce.org/mailman/listinfo/xfce4-commits