[gtk-theme-engine-clearlooks] Render expanders as per the mockups in adwaita



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]