[murrine] arrowstyle = 2 to draw fat filled arrows. handlestyle = 2 for three near simple lines with inset. st
- From: Andrea Cimitan <acimitan src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [murrine] arrowstyle = 2 to draw fat filled arrows. handlestyle = 2 for three near simple lines with inset. st
- Date: Wed, 4 Aug 2010 18:24:13 +0000 (UTC)
commit b5c373f450de1b3857d9360ea795c947dac71a3d
Author: Andrea Cimitan <andrea cimitan gmail com>
Date: Wed Aug 4 19:16:26 2010 +0100
arrowstyle = 2 to draw fat filled arrows.
handlestyle = 2 for three near simple lines with inset.
stepperstyle = 3 for rounded steppers inside the trough.
trough_border_shades = { 1.0, 1.0 } to draw a gradient on the border of the trough of GtkScrollbar and GtkProgressBar.
NEWS | 5 +-
schema/murrine.xml.in.in | 3 +
src/cairo-support.c | 124 +++++++++++++++++++++++-----
src/cairo-support.h | 27 ++++++
src/murrine_draw.c | 205 +++++++++++++++++++++++++++++++++++++++++++---
src/murrine_draw_rgba.c | 167 +++++++++++++++++++++++++++++++++++++-
src/murrine_rc_style.c | 15 +++-
src/murrine_rc_style.h | 4 +-
src/murrine_style.c | 88 ++++++++++++++------
src/murrine_style.h | 1 +
src/murrine_types.h | 8 ++
11 files changed, 584 insertions(+), 63 deletions(-)
---
diff --git a/NEWS b/NEWS
index 46280ac..e6e8eaa 100644
--- a/NEWS
+++ b/NEWS
@@ -27,6 +27,7 @@ Changes in this release:
gradient_colors = FALSE to disable.
- New option: handlestyle = 0 for three simple lines.
handlestyle = 1 for three simple lines with inset.
+ handlestyle = 2 for three near simple lines with inset.
- New option: prelight_shade = 1.0 to select the shade level used in the
scrollbar's slider, GtkComboBox with comboboxstyle = 1 and
in the prelight state with gradient_colors.
@@ -39,10 +40,12 @@ Changes in this release:
textstyle = 3 for a shadow at the bottom right of the text.
textstyle = 4 for a shadow at the top left of the text.
- New option: text_shade = 1.0 to specify the shade effect of the text's shadow.
+- New option: trough_border_shades = { 1.0, 1.0 } to draw a gradient on
+ the border of the trough of GtkScrollbar and GtkProgressBar.
- New option: trough_shades = { 1.0, 1.0 } to draw a gradient on
the trough of GtkScrollbar and GtkProgressBar.
- Changed option: listviewstyle = 2 for a solid line.
-- Changed option: reliefstyle = 3 for a gradient on shadow,
+- Changed option: reliefstyle = 3 for a gradient on shadow.
reliefstyle = 4 for a stronger shadow.
- Changed option: stepperstyle = 2 for squared steppers with a rounded slider.
- Deprecated option: gradients, please unset the other options instead.
diff --git a/schema/murrine.xml.in.in b/schema/murrine.xml.in.in
index fe52091..9b829f1 100644
--- a/schema/murrine.xml.in.in
+++ b/schema/murrine.xml.in.in
@@ -168,6 +168,9 @@
<enumeration value="1">
<label>Small lines with inset</label>
</enumeration>
+ <enumeration value="2">
+ <label>Small near lines with inset</label>
+ </enumeration>
</option>
diff --git a/src/cairo-support.c b/src/cairo-support.c
index 6c92c60..0d5def9 100644
--- a/src/cairo-support.c
+++ b/src/cairo-support.c
@@ -466,6 +466,43 @@ clearlooks_rounded_rectangle (cairo_t *cr,
}
void
+murrine_rounded_rectangle_inverted (cairo_t *cr,
+ double x, double y, double w, double h,
+ int radius, uint8 corners)
+{
+ radius = MIN (radius, MIN (w/2.0, h/2.0));
+
+ cairo_translate(cr, x, y);
+
+ if (corners & MRN_CORNER_TOPLEFT)
+ cairo_move_to(cr, 0, -radius);
+ else
+ cairo_move_to(cr, 0, 0);
+
+ if (corners & MRN_CORNER_BOTTOMLEFT)
+ cairo_arc(cr, radius, h + radius, radius, M_PI * 1.0, M_PI * 1.5);
+ else
+ cairo_line_to(cr, 0, h);
+
+ if (corners & MRN_CORNER_BOTTOMRIGHT)
+ cairo_arc(cr, w - radius, h + radius, radius, M_PI * 1.5, M_PI * 2.0);
+ else
+ cairo_line_to(cr, w, h);
+
+ if (corners & MRN_CORNER_TOPRIGHT)
+ cairo_arc(cr, w - radius, -radius, radius, M_PI * 0.0, M_PI * 0.5);
+ else
+ cairo_line_to(cr, w, 0);
+
+ if (corners & MRN_CORNER_TOPLEFT)
+ cairo_arc(cr, radius, -radius, radius, M_PI * 0.5, M_PI * 1.0);
+ else
+ cairo_line_to(cr, 0, 0);
+
+ cairo_translate(cr, -x, -y);
+}
+
+void
murrine_rounded_rectangle (cairo_t *cr,
double x, double y, double w, double h,
int radius, uint8 corners)
@@ -882,11 +919,10 @@ murrine_set_gradient (cairo_t *cr,
}
void
-murrine_draw_border (cairo_t *cr,
- const MurrineRGB *color,
- double x, double y, double width, double height,
- int roundness, uint8 corners,
- MurrineGradients mrn_gradient, double alpha)
+murrine_draw_border_from_path (cairo_t *cr,
+ const MurrineRGB *color,
+ double x, double y, double width, double height,
+ MurrineGradients mrn_gradient, double alpha)
{
if (mrn_gradient.has_border_colors)
{
@@ -922,18 +958,27 @@ murrine_draw_border (cairo_t *cr,
else
murrine_set_color_rgba (cr, color, alpha);
- murrine_rounded_rectangle (cr, x, y, width, height, roundness, corners);
cairo_stroke (cr);
}
void
-murrine_draw_shadow (cairo_t *cr,
+murrine_draw_border (cairo_t *cr,
const MurrineRGB *color,
double x, double y, double width, double height,
int roundness, uint8 corners,
- int reliefstyle,
MurrineGradients mrn_gradient, double alpha)
{
+ murrine_rounded_rectangle (cr, x, y, width, height, roundness, corners);
+ murrine_draw_border_from_path (cr, color, x, y, width, height, mrn_gradient, alpha);
+}
+
+void
+murrine_draw_shadow_from_path (cairo_t *cr,
+ const MurrineRGB *color,
+ double x, double y, double width, double height,
+ int reliefstyle,
+ MurrineGradients mrn_gradient, double alpha)
+{
if (mrn_gradient.shadow_shades[0] != 1.0 ||
mrn_gradient.shadow_shades[1] != 1.0 ||
reliefstyle > 2) // improve
@@ -954,17 +999,27 @@ murrine_draw_shadow (cairo_t *cr,
else
murrine_set_color_rgba (cr, color, alpha);
- murrine_rounded_rectangle (cr, x, y, width, height, roundness, corners);
cairo_stroke (cr);
}
void
-murrine_draw_trough (cairo_t *cr,
+murrine_draw_shadow (cairo_t *cr,
const MurrineRGB *color,
double x, double y, double width, double height,
int roundness, uint8 corners,
- MurrineGradients mrn_gradient, double alpha,
- boolean horizontal)
+ int reliefstyle,
+ MurrineGradients mrn_gradient, double alpha)
+{
+ murrine_rounded_rectangle (cr, x, y, width, height, roundness, corners);
+ murrine_draw_shadow_from_path (cr, color, x, y, width, height, reliefstyle, mrn_gradient, alpha);
+}
+
+void
+murrine_draw_trough_from_path (cairo_t *cr,
+ const MurrineRGB *color,
+ double x, double y, double width, double height,
+ MurrineGradients mrn_gradient, double alpha,
+ boolean horizontal)
{
if (mrn_gradient.trough_shades[0] != 1.0 ||
mrn_gradient.trough_shades[1] != 1.0) // improve
@@ -985,26 +1040,38 @@ murrine_draw_trough (cairo_t *cr,
else
murrine_set_color_rgba (cr, color, alpha);
- murrine_rounded_rectangle_closed (cr, x, y, width, height, roundness, corners);
cairo_fill (cr);
}
void
-murrine_draw_trough_border (cairo_t *cr,
- const MurrineRGB *color,
- double x, double y, double width, double height,
- int roundness, uint8 corners,
- MurrineGradients mrn_gradient, double alpha,
- boolean horizontal)
+murrine_draw_trough (cairo_t *cr,
+ const MurrineRGB *color,
+ double x, double y, double width, double height,
+ int roundness, uint8 corners,
+ MurrineGradients mrn_gradient, double alpha,
+ boolean horizontal)
{
- if (mrn_gradient.trough_shades[0] != 1.0 ||
+ murrine_rounded_rectangle_closed (cr, x, y, width, height, roundness, corners);
+ murrine_draw_trough_from_path (cr, color, x, y, width, height, mrn_gradient, alpha, horizontal);
+}
+
+void
+murrine_draw_trough_border_from_path (cairo_t *cr,
+ const MurrineRGB *color,
+ double x, double y, double width, double height,
+ MurrineGradients mrn_gradient, double alpha,
+ boolean horizontal)
+{
+ if (mrn_gradient.trough_border_shades[0] != 1.0 ||
+ mrn_gradient.trough_border_shades[1] != 1.0 ||
+ mrn_gradient.trough_shades[0] != 1.0 ||
mrn_gradient.trough_shades[1] != 1.0) // improve
{
cairo_pattern_t *pat;
MurrineRGB shade1, shade2;
- murrine_shade (color, mrn_gradient.trough_shades[0], &shade1);
- murrine_shade (color, mrn_gradient.trough_shades[1], &shade2);
+ murrine_shade (color, mrn_gradient.trough_shades[0]*mrn_gradient.trough_border_shades[0], &shade1);
+ murrine_shade (color, mrn_gradient.trough_shades[1]*mrn_gradient.trough_border_shades[1], &shade2);
pat = cairo_pattern_create_linear (x, y, horizontal ? x : width+x, horizontal ? height+y : y);
murrine_pattern_add_color_stop_rgba (pat, 0.00, &shade1, alpha);
@@ -1016,11 +1083,22 @@ murrine_draw_trough_border (cairo_t *cr,
else
murrine_set_color_rgba (cr, color, alpha);
- murrine_rounded_rectangle (cr, x, y, width, height, roundness, corners);
cairo_stroke (cr);
}
void
+murrine_draw_trough_border (cairo_t *cr,
+ const MurrineRGB *color,
+ double x, double y, double width, double height,
+ int roundness, uint8 corners,
+ MurrineGradients mrn_gradient, double alpha,
+ boolean horizontal)
+{
+ murrine_rounded_rectangle (cr, x, y, width, height, roundness, corners);
+ murrine_draw_trough_border_from_path (cr, color, x, y, width, height, mrn_gradient, alpha, horizontal);
+}
+
+void
rotate_mirror_translate (cairo_t *cr,
double radius, double x, double y,
boolean mirror_horizontally, boolean mirror_vertically)
diff --git a/src/cairo-support.h b/src/cairo-support.h
index c121a19..cb9082f 100644
--- a/src/cairo-support.h
+++ b/src/cairo-support.h
@@ -82,6 +82,10 @@ G_GNUC_INTERNAL void clearlooks_rounded_rectangle (cairo_t *cr,
double x, double y, double w, double h,
int radius, uint8 corners);
+G_GNUC_INTERNAL void murrine_rounded_rectangle_inverted (cairo_t *cr,
+ double x, double y, double w, double h,
+ int radius, uint8 corners);
+
G_GNUC_INTERNAL void murrine_rounded_rectangle (cairo_t *cr,
double x, double y, double w, double h,
int radius, uint8 corners);
@@ -106,6 +110,11 @@ G_GNUC_INTERNAL void murrine_draw_border (cairo_t *cr,
int roundness, uint8 corners,
MurrineGradients mrn_gradient, double alpha);
+G_GNUC_INTERNAL void murrine_draw_border_from_path (cairo_t *cr,
+ const MurrineRGB *color,
+ double x, double y, double width, double height,
+ MurrineGradients mrn_gradient, double alpha);
+
G_GNUC_INTERNAL void murrine_draw_shadow (cairo_t *cr,
const MurrineRGB *color,
double x, double y, double width, double height,
@@ -113,6 +122,12 @@ G_GNUC_INTERNAL void murrine_draw_shadow (cairo_t *cr,
int reliefstyle,
MurrineGradients mrn_gradient, double alpha);
+G_GNUC_INTERNAL void murrine_draw_shadow_from_path (cairo_t *cr,
+ const MurrineRGB *color,
+ double x, double y, double width, double height,
+ int reliefstyle,
+ MurrineGradients mrn_gradient, double alpha);
+
G_GNUC_INTERNAL void murrine_draw_trough (cairo_t *cr,
const MurrineRGB *color,
double x, double y, double width, double height,
@@ -120,6 +135,12 @@ G_GNUC_INTERNAL void murrine_draw_trough (cairo_t *cr,
MurrineGradients mrn_gradient, double alpha,
boolean horizontal);
+G_GNUC_INTERNAL void murrine_draw_trough_from_path (cairo_t *cr,
+ const MurrineRGB *color,
+ double x, double y, double width, double height,
+ MurrineGradients mrn_gradient, double alpha,
+ boolean horizontal);
+
G_GNUC_INTERNAL void murrine_draw_trough_border (cairo_t *cr,
const MurrineRGB *color,
double x, double y, double width, double height,
@@ -127,6 +148,12 @@ G_GNUC_INTERNAL void murrine_draw_trough_border (cairo_t *cr,
MurrineGradients mrn_gradient, double alpha,
boolean horizontal);
+G_GNUC_INTERNAL void murrine_draw_trough_border_from_path (cairo_t *cr,
+ const MurrineRGB *color,
+ double x, double y, double width, double height,
+ MurrineGradients mrn_gradient, double alpha,
+ boolean horizontal);
+
G_GNUC_INTERNAL void murrine_draw_glaze (cairo_t *cr,
const MurrineRGB *fill,
double glow_shade,
diff --git a/src/murrine_draw.c b/src/murrine_draw.c
index 4c76185..7c377f9 100644
--- a/src/murrine_draw.c
+++ b/src/murrine_draw.c
@@ -599,6 +599,94 @@ murrine_draw_scale_trough (cairo_t *cr,
}
static void
+murrine_draw_slider_path (cairo_t *cr,
+ int x, int y, int width, int height,
+ int roundness)
+{
+ int radius = MIN (roundness, MIN (width/2.0, height/2.0));
+
+ cairo_move_to (cr, x+radius, y);
+ cairo_arc (cr, x+width-radius, y+radius, radius, M_PI*1.5, M_PI*2);
+ cairo_line_to (cr, x+width, y+height-width/2.0);
+ cairo_line_to (cr, x+width/2.0, y+height);
+ cairo_line_to (cr, x, y+height-width/2.0);
+ cairo_arc (cr, x+radius, y+radius, radius, M_PI, M_PI*1.5);
+}
+
+static void
+murrine_draw_slider (cairo_t *cr,
+ const MurrineColors *colors,
+ const WidgetParameters *widget,
+ const SliderParameters *slider,
+ int x, int y, int width, int height)
+{
+ int os = (widget->xthickness > 2 && widget->ythickness > 2) ? 1 : 0;
+ double glow_shade_new = widget->glow_shade;
+ double highlight_shade_new = widget->highlight_shade;
+ double lightborder_shade_new = widget->lightborder_shade;
+ MurrineGradients mrn_gradient_new = widget->mrn_gradient;
+ MurrineRGB border = colors->shade[!widget->disabled ? 6 : 5];
+ MurrineRGB fill = colors->bg[widget->state_type];
+
+ murrine_get_fill_color (&fill, &mrn_gradient_new);
+
+ if (widget->disabled)
+ {
+ mrn_gradient_new = murrine_get_decreased_gradient_shades (widget->mrn_gradient, 3.0);
+ mrn_gradient_new.border_shades[0] = murrine_get_decreased_shade (widget->mrn_gradient.border_shades[0], 2.0);
+ mrn_gradient_new.border_shades[1] = murrine_get_decreased_shade (widget->mrn_gradient.border_shades[1], 2.0);
+ glow_shade_new = murrine_get_decreased_shade (widget->glow_shade, 2.0);
+ highlight_shade_new = murrine_get_decreased_shade (widget->highlight_shade, 2.0);
+ lightborder_shade_new = murrine_get_decreased_shade (widget->lightborder_shade, 2.0);
+ }
+ else
+ murrine_shade (&colors->shade[6], 0.95, &border);
+
+ if (!slider->horizontal)
+ murrine_exchange_axis (cr, &x, &y, &width, &height);
+
+ cairo_save (cr);
+
+ cairo_translate (cr, x+0.5, y+0.5);
+
+ if (!widget->active && !widget->disabled && widget->reliefstyle > 1 && os > 0)
+ {
+ murrine_draw_slider_path (cr, os-1, os, width-(os*2)+2, height-(os*2)+1, widget->roundness+1);
+ murrine_draw_shadow_from_path (cr, &border,
+ os-1, os, width-(os*2)+2, height-(os*2)+1,
+ widget->reliefstyle,
+ mrn_gradient_new, 0.08);
+ }
+
+ murrine_mix_color (&border, &fill, 0.2, &border);
+
+ cairo_save (cr);
+
+ murrine_draw_slider_path (cr, os, os+1, width-(os*2), height-(os*2)-1, widget->roundness);
+ cairo_clip_preserve (cr);
+
+ murrine_draw_glaze (cr, &fill,
+ glow_shade_new, highlight_shade_new, !widget->active ? lightborder_shade_new : 1.0,
+ mrn_gradient_new, widget,
+ os, os+1, width-(os*2), height-(os*2)-1,
+ widget->roundness, widget->corners, TRUE);
+
+ cairo_restore (cr);
+
+ murrine_draw_slider_path (cr, os, os+1, width-(os*2), height-(os*2)-1, widget->roundness);
+
+ murrine_draw_border_from_path (cr, &border,
+ os, os+1, width-(os*2), height-(os*2)-1,
+ mrn_gradient_new, 1.0);
+
+ cairo_restore (cr);
+
+ if (!slider->horizontal)
+ murrine_exchange_axis (cr, &x, &y, &width, &height);
+}
+
+
+static void
murrine_draw_slider_handle (cairo_t *cr,
const MurrineColors *colors,
const WidgetParameters *widget,
@@ -631,8 +719,8 @@ murrine_draw_slider_handle (cairo_t *cr,
{
for (i=0; i<num_handles; i++)
{
- cairo_move_to (cr, bar_x, 3.5);
- cairo_line_to (cr, bar_x, height-4.5);
+ cairo_move_to (cr, bar_x, 4.5);
+ cairo_line_to (cr, bar_x, height-5.5);
murrine_set_color_rgb (cr, &color);
cairo_stroke (cr);
@@ -646,20 +734,42 @@ murrine_draw_slider_handle (cairo_t *cr,
for (i=0; i<num_handles; i++)
{
- cairo_move_to (cr, bar_x, 3.5);
- cairo_line_to (cr, bar_x, height-4.5);
+ cairo_move_to (cr, bar_x, 4.5);
+ cairo_line_to (cr, bar_x, height-5.5);
murrine_set_color_rgb (cr, &color);
cairo_stroke (cr);
- cairo_move_to (cr, bar_x+1, 3.5);
- cairo_line_to (cr, bar_x+1, height-4.5);
+ cairo_move_to (cr, bar_x+1, 4.5);
+ cairo_line_to (cr, bar_x+1, height-5.5);
murrine_set_color_rgb (cr, &inset);
cairo_stroke (cr);
bar_x += 3;
}
break;
- }
+ }
+ case 2:
+ {
+ murrine_shade (&colors->bg[widget->state_type], 1.04, &inset);
+
+ bar_x++;
+
+ for (i=0; i<num_handles; i++)
+ {
+ cairo_move_to (cr, bar_x, 4.5);
+ cairo_line_to (cr, bar_x, height-5.5);
+ murrine_set_color_rgb (cr, &color);
+ cairo_stroke (cr);
+
+ cairo_move_to (cr, bar_x+1, 4.5);
+ cairo_line_to (cr, bar_x+1, height-5.5);
+ murrine_set_color_rgb (cr, &inset);
+ cairo_stroke (cr);
+
+ bar_x += 2;
+ }
+ break;
+ }
}
}
@@ -755,7 +865,7 @@ murrine_draw_progressbar_fill (cairo_t *cr,
rotate_mirror_translate (cr, M_PI/2, x, y+width, TRUE, FALSE);
}
- roundness = MIN (widget->roundness, (height-2.0)/2.0);
+ roundness = MIN (widget->roundness-widget->xthickness, (height-2.0)/2.0);
stroke_width = height*2;
x_step = (((float)stroke_width/10)*offset);
@@ -1750,9 +1860,9 @@ murrine_draw_scrollbar_trough (cairo_t *cr,
MurrineRGB fill;
murrine_shade (&widget->parentbg,
- murrine_get_contrast (scrollbar->stepperstyle < 1 ? 0.86 : 0.8, widget->contrast),
+ murrine_get_contrast (scrollbar->stepperstyle != 1 ? 0.86 : 0.8, widget->contrast),
&border);
- murrine_shade (&widget->parentbg, scrollbar->stepperstyle < 1 ? 0.97 : 1.026, &fill);
+ murrine_shade (&widget->parentbg, scrollbar->stepperstyle != 1 ? 0.97 : 1.026, &fill);
/*
murrine_shade (&colors->bg[widget->state_type],
murrine_get_contrast (scrollbar->stepperstyle < 1 ? 0.86 : 0.8, widget->contrast),
@@ -1776,6 +1886,35 @@ murrine_draw_scrollbar_trough (cairo_t *cr,
/* Draw fill */
murrine_draw_trough (cr, &fill, 0, 0, width, height, widget->roundness, widget->corners, widget->mrn_gradient, 1.0, FALSE);
+ if (scrollbar->stepperstyle == 3)
+ {
+ uint8 corners;
+ MurrineRGB fill_stepper;
+ MurrineRGB border_stepper;
+
+ murrine_shade (&widget->parentbg, 1.02, &fill_stepper);
+ murrine_shade (&border, (widget->mrn_gradient.trough_shades[0]+widget->mrn_gradient.trough_shades[1])/2.0, &border_stepper);
+
+ cairo_save (cr);
+
+ murrine_rounded_rectangle_closed (cr, 0.5, 0.5, width-1, height-1, widget->roundness, widget->corners);
+ cairo_clip (cr);
+
+ corners = MRN_CORNER_BOTTOMLEFT | MRN_CORNER_BOTTOMRIGHT;
+ murrine_rounded_rectangle_inverted (cr, 0.5, 0.5, width-1, scrollbar->steppersize, widget->roundness, corners);
+ murrine_set_color_rgb (cr, &fill_stepper);
+ cairo_fill_preserve (cr);
+ murrine_draw_trough_border_from_path (cr, &border,0.5, 0.5, width-1, scrollbar->steppersize, widget->mrn_gradient, 1.0, FALSE);
+
+ corners = MRN_CORNER_TOPLEFT | MRN_CORNER_TOPRIGHT;
+ murrine_rounded_rectangle_inverted (cr, 0.5, height-scrollbar->steppersize-0.5, width-1, scrollbar->steppersize, widget->roundness, corners);
+ murrine_set_color_rgb (cr, &fill_stepper);
+ cairo_fill_preserve (cr);
+ murrine_draw_trough_border_from_path (cr, &border, 0.5, height-scrollbar->steppersize-0.5, width-1, scrollbar->steppersize, widget->mrn_gradient, 1.0, FALSE);
+
+ cairo_restore (cr);
+ }
+
/* Draw border */
if (!scrollbar->within_bevel)
murrine_draw_trough_border (cr, &border, 0.5, 0.5, width-1, height-1, widget->roundness, widget->corners, widget->mrn_gradient, 1.0, FALSE);
@@ -1850,7 +1989,7 @@ murrine_draw_scrollbar_slider (cairo_t *cr,
murrine_get_fill_color (&fill, &mrn_gradient_new);
- if (scrollbar->stepperstyle != 1)
+ if (scrollbar->stepperstyle != 1 && scrollbar->stepperstyle != 3)
{
if (scrollbar->junction & MRN_JUNCTION_BEGIN)
{
@@ -2030,6 +2169,29 @@ murrine_draw_scrollbar_slider (cairo_t *cr,
}
break;
}
+ case 2:
+ {
+ MurrineRGB inset;
+ murrine_shade (&fill, 1.08, &inset);
+
+ bar_x++;
+
+ for (i=0; i<num_handles; i++)
+ {
+ cairo_move_to (cr, bar_x, 5);
+ cairo_line_to (cr, bar_x, height-5);
+ murrine_set_color_rgb (cr, &border);
+ cairo_stroke (cr);
+
+ cairo_move_to (cr, bar_x+1, 4);
+ cairo_line_to (cr, bar_x+1, height-5);
+ murrine_set_color_rgb (cr, &inset);
+ cairo_stroke (cr);
+
+ bar_x += 2;
+ }
+ break;
+ }
}
}
@@ -2219,6 +2381,26 @@ murrine_draw_handle (cairo_t *cr,
}
break;
}
+ case 2:
+ {
+ bar_y++;
+
+ for (i=0; i<num_bars; i++)
+ {
+ cairo_move_to (cr, 0, bar_y);
+ cairo_line_to (cr, bar_width, bar_y);
+ murrine_set_color_rgb (cr, &colors->shade[4]);
+ cairo_stroke (cr);
+
+ cairo_move_to (cr, 0, bar_y+1);
+ cairo_line_to (cr, bar_width, bar_y+1);
+ murrine_set_color_rgb (cr, &colors->shade[0]);
+ cairo_stroke (cr);
+
+ bar_y += 2;
+ }
+ break;
+ }
}
}
@@ -3330,6 +3512,7 @@ murrine_register_style_murrine (MurrineStyleFunctions *functions)
functions->draw_entry = murrine_draw_entry;
functions->draw_entry_progress = murrine_draw_entry_progress;
functions->draw_expander = murrine_draw_expander;
+ functions->draw_slider = murrine_draw_slider;
functions->draw_slider_handle = murrine_draw_slider_handle;
functions->draw_spinbutton = murrine_draw_spinbutton;
functions->draw_spinbutton_down = murrine_draw_spinbutton_down;
diff --git a/src/murrine_draw_rgba.c b/src/murrine_draw_rgba.c
index 2803c84..15c91a7 100644
--- a/src/murrine_draw_rgba.c
+++ b/src/murrine_draw_rgba.c
@@ -437,6 +437,96 @@ murrine_rgba_draw_scale_trough (cairo_t *cr,
}
static void
+murrine_draw_slider_path (cairo_t *cr,
+ int x, int y, int width, int height,
+ int roundness)
+{
+ int radius = MIN (roundness, MIN (width/2.0, height/2.0));
+
+ cairo_move_to (cr, x+radius, y);
+ cairo_arc (cr, x+width-radius, y+radius, radius, M_PI*1.5, M_PI*2);
+ cairo_line_to (cr, x+width, y+height-width/2.0);
+ cairo_line_to (cr, x+width/2.0, y+height);
+ cairo_line_to (cr, x, y+height-width/2.0);
+ cairo_arc (cr, x+radius, y+radius, radius, M_PI, M_PI*1.5);
+}
+
+static void
+murrine_rgba_draw_slider (cairo_t *cr,
+ const MurrineColors *colors,
+ const WidgetParameters *widget,
+ const SliderParameters *slider,
+ int x, int y, int width, int height)
+{
+ int os = (widget->xthickness > 2 && widget->ythickness > 2) ? 1 : 0;
+ double glow_shade_new = widget->glow_shade;
+ double highlight_shade_new = widget->highlight_shade;
+ double lightborder_shade_new = widget->lightborder_shade;
+ MurrineGradients mrn_gradient_new = widget->mrn_gradient;
+ MurrineRGB border = colors->shade[!widget->disabled ? 8 : 6];
+ MurrineRGB fill = colors->bg[widget->state_type];
+
+ murrine_get_fill_color (&fill, &mrn_gradient_new);
+
+ if (widget->disabled)
+ {
+ mrn_gradient_new = murrine_get_decreased_gradient_shades (widget->mrn_gradient, 3.0);
+ mrn_gradient_new.border_shades[0] = murrine_get_decreased_shade (widget->mrn_gradient.border_shades[0], 2.0);
+ mrn_gradient_new.border_shades[1] = murrine_get_decreased_shade (widget->mrn_gradient.border_shades[1], 2.0);
+ glow_shade_new = murrine_get_decreased_shade (widget->glow_shade, 2.0);
+ highlight_shade_new = murrine_get_decreased_shade (widget->highlight_shade, 2.0);
+ lightborder_shade_new = murrine_get_decreased_shade (widget->lightborder_shade, 2.0);
+ }
+ else
+ murrine_shade (&colors->shade[6], 0.95, &border);
+
+ if (!slider->horizontal)
+ murrine_exchange_axis (cr, &x, &y, &width, &height);
+
+ cairo_save (cr);
+
+ cairo_translate (cr, x+0.5, y+0.5);
+
+ if (!widget->active && !widget->disabled && widget->reliefstyle > 1 && os > 0)
+ {
+ murrine_draw_slider_path (cr, os-1, os, width-(os*2)+2, height-(os*2)+1, widget->roundness+1);
+ murrine_draw_shadow_from_path (cr, &border,
+ os-1, os, width-(os*2)+2, height-(os*2)+1,
+ widget->reliefstyle,
+ mrn_gradient_new, 0.08);
+ }
+
+ murrine_mix_color (&border, &widget->parentbg, 0.2, &border);
+ murrine_mix_color (&border, &fill, 0.25, &border);
+
+ cairo_save (cr);
+
+ cairo_set_operator (cr, CAIRO_OPERATOR_SOURCE);
+
+ murrine_draw_slider_path (cr, os, os+1, width-(os*2), height-(os*2)-1, widget->roundness);
+ cairo_clip_preserve (cr);
+
+ murrine_draw_glaze (cr, &fill,
+ glow_shade_new, highlight_shade_new, !widget->active ? lightborder_shade_new : 1.0,
+ mrn_gradient_new, widget,
+ os, os+1, width-(os*2), height-(os*2)-1,
+ widget->roundness, widget->corners, TRUE);
+
+ cairo_restore (cr);
+
+ murrine_draw_slider_path (cr, os, os+1, width-(os*2), height-(os*2)-1, widget->roundness);
+
+ murrine_draw_border_from_path (cr, &border,
+ os, os+1, width-(os*2), height-(os*2)-1,
+ mrn_gradient_new, 1.0);
+
+ cairo_restore (cr);
+
+ if (!slider->horizontal)
+ murrine_exchange_axis (cr, &x, &y, &width, &height);
+}
+
+static void
murrine_rgba_draw_spinbutton (cairo_t *cr,
const MurrineColors *colors,
const WidgetParameters *widget,
@@ -602,7 +692,7 @@ murrine_rgba_draw_progressbar_fill (cairo_t *cr,
rotate_mirror_translate (cr, M_PI/2, x, y+width, TRUE, FALSE);
}
- roundness = MIN (widget->roundness, (height-2.0)/2.0);
+ roundness = MIN (widget->roundness-widget->xthickness, (height-2.0)/2.0);
stroke_width = height*2;
x_step = (((float)stroke_width/10)*offset);
@@ -1356,6 +1446,35 @@ murrine_rgba_draw_scrollbar_trough (cairo_t *cr,
/* Draw fill */
murrine_draw_trough (cr, &fill, 0, 0, width, height, widget->roundness, widget->corners, widget->mrn_gradient, 0.4, FALSE);
+ if (scrollbar->stepperstyle == 3)
+ {
+ uint8 corners;
+ MurrineRGB fill_stepper;
+ MurrineRGB border_stepper;
+
+ murrine_shade (&widget->parentbg, 1.02, &fill_stepper);
+ murrine_shade (&border, (widget->mrn_gradient.trough_shades[0]+widget->mrn_gradient.trough_shades[1])/2.0, &border_stepper);
+
+ cairo_save (cr);
+
+ murrine_rounded_rectangle_closed (cr, 0.5, 0.5, width-1, height-1, widget->roundness, widget->corners);
+ cairo_clip (cr);
+
+ corners = MRN_CORNER_BOTTOMLEFT | MRN_CORNER_BOTTOMRIGHT;
+ murrine_rounded_rectangle_inverted (cr, 0.5, 0.5, width-1, scrollbar->steppersize, widget->roundness, corners);
+ murrine_set_color_rgb (cr, &fill_stepper);
+ cairo_fill_preserve (cr);
+ murrine_draw_trough_border_from_path (cr, &border,0.5, 0.5, width-1, scrollbar->steppersize, widget->mrn_gradient, 1.0, FALSE);
+
+ corners = MRN_CORNER_TOPLEFT | MRN_CORNER_TOPRIGHT;
+ murrine_rounded_rectangle_inverted (cr, 0.5, height-scrollbar->steppersize-0.5, width-1, scrollbar->steppersize, widget->roundness, corners);
+ murrine_set_color_rgb (cr, &fill_stepper);
+ cairo_fill_preserve (cr);
+ murrine_draw_trough_border_from_path (cr, &border, 0.5, height-scrollbar->steppersize-0.5, width-1, scrollbar->steppersize, widget->mrn_gradient, 1.0, FALSE);
+
+ cairo_restore (cr);
+ }
+
/* Draw border */
if (!scrollbar->within_bevel)
murrine_draw_trough_border (cr, &border, 0.5, 0.5, width-1, height-1, widget->roundness, widget->corners, widget->mrn_gradient, 0.82, FALSE);
@@ -1432,7 +1551,7 @@ murrine_rgba_draw_scrollbar_slider (cairo_t *cr,
murrine_get_fill_color (&fill, &mrn_gradient_new);
- if (scrollbar->stepperstyle != 1)
+ if (scrollbar->stepperstyle != 1 && scrollbar->stepperstyle != 3)
{
if (scrollbar->junction & MRN_JUNCTION_BEGIN)
{
@@ -1616,6 +1735,29 @@ murrine_rgba_draw_scrollbar_slider (cairo_t *cr,
}
break;
}
+ case 1:
+ {
+ MurrineRGB inset;
+ murrine_shade (&fill, 1.04, &inset);
+
+ bar_x++;
+
+ for (i=0; i<3; i++)
+ {
+ cairo_move_to (cr, bar_x, 5);
+ cairo_line_to (cr, bar_x, height-5);
+ murrine_set_color_rgb (cr, &border);
+ cairo_stroke (cr);
+
+ cairo_move_to (cr, bar_x+1, 5);
+ cairo_line_to (cr, bar_x+1, height-5);
+ murrine_set_color_rgb (cr, &inset);
+ cairo_stroke (cr);
+
+ bar_x += 2;
+ }
+ break;
+ }
}
}
@@ -1735,6 +1877,26 @@ murrine_rgba_draw_handle (cairo_t *cr,
}
break;
}
+ case 2:
+ {
+ bar_y++;
+
+ for (i=0; i<num_bars; i++)
+ {
+ cairo_move_to (cr, 0, bar_y);
+ cairo_line_to (cr, bar_width, bar_y);
+ murrine_set_color_rgb (cr, &colors->shade[5]);
+ cairo_stroke (cr);
+
+ cairo_move_to (cr, 0, bar_y+1);
+ cairo_line_to (cr, bar_width, bar_y+1);
+ murrine_set_color_rgb (cr, &colors->shade[0]);
+ cairo_stroke (cr);
+
+ bar_y += 2;
+ }
+ break;
+ }
}
}
@@ -2115,6 +2277,7 @@ murrine_register_style_rgba (MurrineStyleFunctions *functions)
functions->draw_button = murrine_rgba_draw_button;
functions->draw_entry = murrine_rgba_draw_entry;
functions->draw_scale_trough = murrine_rgba_draw_scale_trough;
+ functions->draw_slider = murrine_rgba_draw_slider;
functions->draw_spinbutton = murrine_rgba_draw_spinbutton;
functions->draw_progressbar_trough = murrine_rgba_draw_progressbar_trough;
functions->draw_progressbar_fill = murrine_rgba_draw_progressbar_fill;
diff --git a/src/murrine_rc_style.c b/src/murrine_rc_style.c
index a50bdc6..4b491a0 100644
--- a/src/murrine_rc_style.c
+++ b/src/murrine_rc_style.c
@@ -76,7 +76,8 @@ enum
TOKEN_TEXTSTYLE,
TOKEN_TEXT_SHADE,
TOKEN_TOOLBARSTYLE,
- TOKEN_TROUGH_SHADES,
+ TOKEN_TROUGH_BORDER_SHADES,
+ TOKEN_TROUGH_SHADES,
TOKEN_TRUE,
TOKEN_FALSE,
@@ -140,6 +141,7 @@ theme_symbols[] =
{ "textstyle", TOKEN_TEXTSTYLE },
{ "text_shade", TOKEN_TEXT_SHADE },
{ "toolbarstyle", TOKEN_TOOLBARSTYLE },
+ { "trough_border_shades", TOKEN_TROUGH_BORDER_SHADES },
{ "trough_shades", TOKEN_TROUGH_SHADES },
{ "TRUE", TOKEN_TRUE },
@@ -214,6 +216,8 @@ murrine_rc_style_init (MurrineRcStyle *murrine_rc)
murrine_rc->textstyle = 0;
murrine_rc->text_shade = 1.06;
murrine_rc->toolbarstyle = 0;
+ murrine_rc->trough_border_shades[0] = 1.0;
+ murrine_rc->trough_border_shades[1] = 1.0;
murrine_rc->trough_shades[0] = 1.0;
murrine_rc->trough_shades[1] = 1.0;
}
@@ -785,6 +789,10 @@ murrine_rc_style_parse (GtkRcStyle *rc_style,
token = theme_parse_int (settings, scanner, &murrine_style->toolbarstyle);
murrine_style->flags |= MRN_FLAG_TOOLBARSTYLE;
break;
+ case TOKEN_TROUGH_BORDER_SHADES:
+ token = theme_parse_border (settings, scanner, murrine_style->trough_border_shades);
+ murrine_style->gflags |= MRN_FLAG_TROUGH_BORDER_SHADES;
+ break;
case TOKEN_TROUGH_SHADES:
token = theme_parse_border (settings, scanner, murrine_style->trough_shades);
murrine_style->gflags |= MRN_FLAG_TROUGH_SHADES;
@@ -987,6 +995,11 @@ murrine_rc_style_merge (GtkRcStyle *dest,
dest_w->shadow_shades[0] = src_w->shadow_shades[0];
dest_w->shadow_shades[1] = src_w->shadow_shades[1];
}
+ if (gflags & MRN_FLAG_TROUGH_BORDER_SHADES)
+ {
+ dest_w->trough_border_shades[0] = src_w->trough_border_shades[0];
+ dest_w->trough_border_shades[1] = src_w->trough_border_shades[1];
+ }
if (gflags & MRN_FLAG_TROUGH_SHADES)
{
dest_w->trough_shades[0] = src_w->trough_shades[0];
diff --git a/src/murrine_rc_style.h b/src/murrine_rc_style.h
index ff570d2..8e3d7a8 100644
--- a/src/murrine_rc_style.h
+++ b/src/murrine_rc_style.h
@@ -84,7 +84,8 @@ typedef enum
MRN_FLAG_GRADIENT_COLORS = 1 << 3,
MRN_FLAG_GRADIENT_SHADES = 1 << 4,
MRN_FLAG_SHADOW_SHADES = 1 << 5,
- MRN_FLAG_TROUGH_SHADES = 1 << 6
+ MRN_FLAG_TROUGH_BORDER_SHADES = 1 << 6,
+ MRN_FLAG_TROUGH_SHADES = 1 << 7
} MurrineRcGradientFlags;
struct _MurrineRcStyle
@@ -104,6 +105,7 @@ struct _MurrineRcStyle
double prelight_shade;
double shadow_shades[2];
double text_shade;
+ double trough_border_shades[2];
double trough_shades[2];
guint8 arrowstyle;
diff --git a/src/murrine_style.c b/src/murrine_style.c
index 578c1b3..fe3f901 100644
--- a/src/murrine_style.c
+++ b/src/murrine_style.c
@@ -197,6 +197,8 @@ murrine_set_widget_parameters (const GtkWidget *widget,
mrn_gradient.shadow_shades[0] = murrine_style->shadow_shades[0];
mrn_gradient.shadow_shades[1] = murrine_style->shadow_shades[1];
+ mrn_gradient.trough_border_shades[0] = murrine_style->trough_border_shades[0];
+ mrn_gradient.trough_border_shades[1] = murrine_style->trough_border_shades[1];
mrn_gradient.trough_shades[0] = murrine_style->trough_shades[0];
mrn_gradient.trough_shades[1] = murrine_style->trough_shades[1];
@@ -208,6 +210,8 @@ murrine_set_widget_parameters (const GtkWidget *widget,
murrine_style->gradient_shades[3] != 1.0 ||
murrine_style->shadow_shades[0] != 1.0 ||
murrine_style->shadow_shades[1] != 1.0 ||
+ murrine_style->trough_border_shades[0] != 1.0 ||
+ murrine_style->trough_border_shades[1] != 1.0 ||
murrine_style->trough_shades[0] != 1.0 ||
murrine_style->trough_shades[1] != 1.0)
mrn_gradient.gradients = TRUE;
@@ -1087,6 +1091,7 @@ murrine_style_draw_box (DRAW_ARGS)
scrollbar.steppers = murrine_scrollbar_visible_steppers (widget);
scrollbar.stepperstyle = murrine_style->stepperstyle;
scrollbar.within_bevel = within_bevel;
+ gtk_widget_style_get (widget, "stepper-size", &scrollbar.steppersize, NULL);
murrine_set_widget_parameters (widget, style, state_type, ¶ms);
@@ -1096,7 +1101,7 @@ murrine_style_draw_box (DRAW_ARGS)
if (MRN_IS_RANGE (widget))
scrollbar.horizontal = GTK_RANGE (widget)->orientation == GTK_ORIENTATION_HORIZONTAL;
- if (murrine_style->stepperstyle != 1 && !params.mrn_gradient.use_rgba)
+ if (murrine_style->stepperstyle != 1 && murrine_style->stepperstyle != 3 && !params.mrn_gradient.use_rgba)
{
if (scrollbar.horizontal)
{
@@ -1295,7 +1300,7 @@ murrine_style_draw_box (DRAW_ARGS)
else if (DETAIL ("hscale") || DETAIL ("vscale"))
{
WidgetParameters params;
- /* SliderParameters slider; */
+ SliderParameters slider;
ButtonParameters button;
murrine_set_widget_parameters (widget, style, state_type, ¶ms);
@@ -1307,16 +1312,24 @@ murrine_style_draw_box (DRAW_ARGS)
* if (DETAIL ("vscale"))
* horizontal = FALSE;
*/
+
+ slider.horizontal = TRUE;
+ if (DETAIL ("vscale"))
+ slider.horizontal = FALSE;
+
if (height > width)
horizontal = !horizontal;
/* Use reliefstyle to remove inset on disabled slider button */
if (params.disabled)
params.reliefstyle = 0;
+
+ if (murrine_style->sliderstyle <= 1)
+ STYLE_FUNCTION(draw_button) (cr, &murrine_style->colors, ¶ms, &button, x, y, width, height, horizontal);
+ else
+ STYLE_FUNCTION(draw_slider) (cr, &murrine_style->colors, ¶ms, &slider, x, y, width-1, height-1);
- STYLE_FUNCTION(draw_button) (cr, &murrine_style->colors, ¶ms, &button, x, y, width, height, horizontal);
-
- if (murrine_style->sliderstyle == 1)
+ if (murrine_style->sliderstyle == 1 || murrine_style->sliderstyle == 3)
{
HandleParameters handle;
handle.style = murrine_style->handlestyle;
@@ -1398,6 +1411,7 @@ murrine_style_draw_box (DRAW_ARGS)
scrollbar.style = murrine_style->scrollbarstyle;
scrollbar.stepperstyle = murrine_style->stepperstyle;
scrollbar.prelight_shade = murrine_style->prelight_shade;
+ gtk_widget_style_get (widget, "stepper-size", &scrollbar.steppersize, NULL);
if (MRN_IS_RANGE (widget))
scrollbar.horizontal = GTK_RANGE (widget)->orientation == GTK_ORIENTATION_HORIZONTAL;
@@ -1426,6 +1440,7 @@ murrine_style_draw_box (DRAW_ARGS)
if (trough_border > 0 ||
trough_under_steppers == 0 ||
scrollbar.stepperstyle == 2 ||
+ scrollbar.stepperstyle == 3 ||
murrine_style->roundness == 1)
params.corners = MRN_CORNER_ALL;
else
@@ -1471,7 +1486,7 @@ murrine_style_draw_box (DRAW_ARGS)
if (scrollbar.stepperstyle == 2)
params.corners = MRN_CORNER_NONE;
- if (murrine_style->stepperstyle != 1)
+ if (scrollbar.stepperstyle != 1 && scrollbar.stepperstyle != 3)
STYLE_FUNCTION(draw_scrollbar_stepper) (cr, colors, ¶ms, &scrollbar, x, y, width, height);
}
}
@@ -1914,29 +1929,50 @@ murrine_style_draw_arrow (GtkStyle *style,
}
else if (DETAIL ("hscrollbar") || DETAIL ("vscrollbar"))
{
+ int steppersize;
+ gtk_widget_style_get (widget, "stepper-size", &steppersize, NULL);
- if (arrow.direction == MRN_DIRECTION_DOWN)
- y++;
- else if (arrow.direction == MRN_DIRECTION_RIGHT)
- x++;
-
- if (arrow.direction == MRN_DIRECTION_UP || arrow.direction == MRN_DIRECTION_DOWN)
+ switch (arrow.direction)
{
- x = x + width / 2 - 2;
- y = y + height / 2 - 2;
- height = 4; width = 5;
- }
- else
- {
- x = x + width / 2 - 2;
- y = y + height / 2 - 2;
- height = 5; width = 4;
+ case MRN_DIRECTION_UP:
+ x += width/2 - 2;
+ y += height/2 - steppersize % 2 == 0 ? 2 : 1;
+ height = 4; width = 5;
+ break;
+ case MRN_DIRECTION_DOWN:
+ x += width/2 - 2;
+ y += height/2 - 1;
+ height = 4; width = 5;
+ break;
+ case MRN_DIRECTION_LEFT:
+ x += width/2 - steppersize % 2 == 0 ? 2 : 1;
+ y += height/2 - 2;
+ height = 5; width = 4;
+ break;
+ case MRN_DIRECTION_RIGHT:
+ x += width/2 - 1;
+ y += height/2 - 2;
+ height = 5; width = 4;
+ break;
}
if (arrow.style == 2)
- {
- x--; y--;
- height += 2; width += 2;
+ {
+ switch (arrow.direction)
+ {
+ case MRN_DIRECTION_UP:
+ y+=steppersize % 2 == 0 ? 1 : 2;
+ break;
+ case MRN_DIRECTION_DOWN:
+ y-=2;
+ break;
+ case MRN_DIRECTION_LEFT:
+ x+=steppersize % 2 == 0 ? 1 : 2;;
+ break;
+ case MRN_DIRECTION_RIGHT:
+ x--;
+ break;
+ }
}
}
else if (DETAIL ("spinbutton"))
@@ -2383,6 +2419,8 @@ murrine_style_init_from_rc (GtkStyle *style,
MURRINE_RC_STYLE (rc_style)->contrast);
murrine_style->shadow_shades[0] = MURRINE_RC_STYLE (rc_style)->shadow_shades[0];
murrine_style->shadow_shades[1] = MURRINE_RC_STYLE (rc_style)->shadow_shades[1];
+ murrine_style->trough_border_shades[0] = MURRINE_RC_STYLE (rc_style)->trough_border_shades[0];
+ murrine_style->trough_border_shades[1] = MURRINE_RC_STYLE (rc_style)->trough_border_shades[1];
murrine_style->trough_shades[0] = MURRINE_RC_STYLE (rc_style)->trough_shades[0];
murrine_style->trough_shades[1] = MURRINE_RC_STYLE (rc_style)->trough_shades[1];
@@ -2585,6 +2623,8 @@ murrine_style_copy (GtkStyle *style, GtkStyle *src)
mrn_style->textstyle = mrn_src->textstyle;
mrn_style->text_shade = mrn_src->text_shade;
mrn_style->toolbarstyle = mrn_src->toolbarstyle;
+ mrn_style->trough_border_shades[0] = mrn_src->trough_border_shades[0];
+ mrn_style->trough_border_shades[1] = mrn_src->trough_border_shades[1];
mrn_style->trough_shades[0] = mrn_src->trough_shades[0];
mrn_style->trough_shades[1] = mrn_src->trough_shades[1];
diff --git a/src/murrine_style.h b/src/murrine_style.h
index 1fc0752..33ae51c 100644
--- a/src/murrine_style.h
+++ b/src/murrine_style.h
@@ -51,6 +51,7 @@ struct _MurrineStyle
double prelight_shade;
double shadow_shades[2];
double text_shade;
+ double trough_border_shades[2];
double trough_shades[2];
guint8 arrowstyle;
diff --git a/src/murrine_types.h b/src/murrine_types.h
index 7661358..9147715 100644
--- a/src/murrine_types.h
+++ b/src/murrine_types.h
@@ -186,6 +186,7 @@ typedef struct
double border_shades[2];
double gradient_shades[4];
double shadow_shades[2];
+ double trough_border_shades[2];
double trough_shades[2];
double rgba_opacity;
@@ -315,6 +316,7 @@ typedef struct
boolean within_bevel;
int handlestyle;
int style;
+ int steppersize;
int stepperstyle;
double prelight_shade;
} ScrollBarParameters;
@@ -412,6 +414,12 @@ struct _MurrineStyleFunctions
const SliderParameters *slider,
int x, int y, int width, int height);
+ void (*draw_slider) (cairo_t *cr,
+ const MurrineColors *colors,
+ const WidgetParameters *widget,
+ const SliderParameters *slider,
+ int x, int y, int width, int height);
+
void (*draw_slider_handle) (cairo_t *cr,
const MurrineColors *colors,
const WidgetParameters *widget,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]