[gtk-theme-engine-clearlooks] Render expanders as per the mockups in adwaita
- From: Carlos Garnacho <carlosg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk-theme-engine-clearlooks] Render expanders as per the mockups in adwaita
- Date: Wed, 19 Jan 2011 03:47:55 +0000 (UTC)
commit a44f04a7727b621245771ef86ebaf7742691c42b
Author: Carlos Garnacho <carlosg gnome org>
Date: Wed Jan 19 04:25:53 2011 +0100
Render expanders as per the mockups in adwaita
src/adwaita_engine.c | 51 ++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 51 insertions(+), 0 deletions(-)
---
diff --git a/src/adwaita_engine.c b/src/adwaita_engine.c
index 9d5fc62..787796e 100644
--- a/src/adwaita_engine.c
+++ b/src/adwaita_engine.c
@@ -437,6 +437,56 @@ adwaita_engine_render_frame (GtkThemingEngine *engine,
}
static void
+adwaita_engine_render_expander (GtkThemingEngine *engine,
+ cairo_t *cr,
+ gdouble x,
+ gdouble y,
+ gdouble width,
+ gdouble height)
+{
+ GdkRGBA border, bg, fg;
+ GtkStateFlags state;
+ gint side;
+
+ side = MIN (width, height);
+
+ x += ((int) width / 2) - (side / 2);
+ y += ((int) height / 2) - (side / 2);
+
+ state = gtk_theming_engine_get_state (engine);
+ gtk_theming_engine_get_border_color (engine, state, &border);
+ gtk_theming_engine_get_background_color (engine, state, &bg);
+ gtk_theming_engine_get_color (engine, state, &fg);
+
+ cairo_save (cr);
+
+ cairo_set_line_width (cr, 1);
+
+ _cairo_round_rectangle (cr, x + 0.5, y + 0.5, side, side, 3);
+ gdk_cairo_set_source_rgba (cr, &bg);
+ cairo_fill_preserve (cr);
+
+ gdk_cairo_set_source_rgba (cr, &border);
+ cairo_stroke (cr);
+
+ cairo_set_line_width (cr, 3);
+ gdk_cairo_set_source_rgba (cr, &fg);
+
+ cairo_move_to (cr, x + 2, y + side / 2 + 0.5);
+ cairo_line_to (cr, x + side - 1, y + side / 2 + 0.5);
+
+ if (state & GTK_STATE_FLAG_ACTIVE)
+ {
+ cairo_move_to (cr, x + side / 2 + 0.5, y + 2);
+ cairo_line_to (cr, x + side / 2 + 0.5, y + side - 1);
+ }
+
+ cairo_stroke (cr);
+
+ cairo_restore (cr);
+}
+
+static void
adwaita_engine_class_init (AdwaitaEngineClass *klass)
{
GtkThemingEngineClass *engine_class = GTK_THEMING_ENGINE_CLASS (klass);
@@ -447,6 +497,7 @@ adwaita_engine_class_init (AdwaitaEngineClass *klass)
engine_class->render_option = adwaita_engine_render_option;
engine_class->render_extension = adwaita_engine_render_extension;
engine_class->render_frame = adwaita_engine_render_frame;
+ engine_class->render_expander = adwaita_engine_render_expander;
gtk_theming_engine_register_property (ADWAITA_NAMESPACE, NULL,
g_param_spec_boxed ("focus-border-color",
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]