[gnome-themes-standard] adwaita: add a way to theme menu arrows



commit 9a6cd3c3c475d6b7eb4e8add230e59f7a8c2914f
Author: Cosimo Cecchi <cosimoc gnome org>
Date:   Wed Mar 16 14:06:21 2011 -0400

    adwaita: add a way to theme menu arrows
    
    With an engine property, there seems no way to do that from GTK+ proper.

 src/adwaita_engine.c           |   21 +++++++++++++++++++++
 themes/Adwaita/gtk-3.0/gtk.css |    4 ++++
 2 files changed, 25 insertions(+), 0 deletions(-)
---
diff --git a/src/adwaita_engine.c b/src/adwaita_engine.c
index 7f68fc0..fb46f68 100644
--- a/src/adwaita_engine.c
+++ b/src/adwaita_engine.c
@@ -149,6 +149,22 @@ adwaita_engine_render_arrow (GtkThemingEngine *engine,
 
         state = gtk_theming_engine_get_state (engine);
 	gtk_theming_engine_get_color (engine, state, &color);
+
+	if (gtk_theming_engine_has_class (engine, GTK_STYLE_CLASS_MENUITEM) &&
+	    !(state & GTK_STATE_FLAG_INSENSITIVE) && !(state & GTK_STATE_FLAG_PRELIGHT)) {
+		GdkRGBA *arrow_color;
+
+		gtk_theming_engine_get (engine, state,
+					"-adwaita-menuitem-arrow-color", &arrow_color,
+					NULL);
+
+		if (arrow_color != NULL) {
+			color = *arrow_color;
+		}
+
+		gdk_rgba_free (arrow_color);
+	}
+
 	gdk_cairo_set_source_rgba (cr, &color);
 	cairo_stroke (cr);
         
@@ -1720,6 +1736,11 @@ adwaita_engine_class_init (AdwaitaEngineClass *klass)
 								    "Focus border uses dashes",
 								    "Focus border uses dashes",
 								    FALSE, 0));
+	gtk_theming_engine_register_property (ADWAITA_NAMESPACE, NULL,
+					      g_param_spec_boxed ("menuitem-arrow-color",
+								  "Menuitem arrow color",
+								  "Menuitem arrow color",
+								  GDK_TYPE_RGBA, 0));
 }
 
 static void
diff --git a/themes/Adwaita/gtk-3.0/gtk.css b/themes/Adwaita/gtk-3.0/gtk.css
index 5e20427..c5e39bd 100644
--- a/themes/Adwaita/gtk-3.0/gtk.css
+++ b/themes/Adwaita/gtk-3.0/gtk.css
@@ -587,6 +587,10 @@ GtkComboBox.button {
 
 }
 
+.menuitem {
+    -adwaita-menuitem-arrow-color: @menu_controls_color;
+}
+
 .menuitem:active,
 .menuitem:prelight {
     background-color: @selected_bg_color;



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]