[Xfce4-commits] [panel-plugins/xfce4-wavelan-plugin] 08/09: Use GdkRGBA instead of GdkColor, and migrate to GtkCssProvider with Gtk >= 3.16

noreply at xfce.org noreply at xfce.org
Sun May 1 18:06:21 CEST 2016


This is an automated email from the git hooks/post-receive script.

landry pushed a commit to branch master
in repository panel-plugins/xfce4-wavelan-plugin.

commit 79ba5bb6824a179fdbd6e3a5026985b5366c24b7
Author: Landry Breuil <landry at xfce.org>
Date:   Sun May 1 18:04:25 2016 +0200

    Use GdkRGBA instead of GdkColor, and migrate to GtkCssProvider with Gtk >= 3.16
---
 panel-plugin/wavelan.c | 36 ++++++++++++++++++++++++++++--------
 1 file changed, 28 insertions(+), 8 deletions(-)

diff --git a/panel-plugin/wavelan.c b/panel-plugin/wavelan.c
index d3c1a04..b305d87 100644
--- a/panel-plugin/wavelan.c
+++ b/panel-plugin/wavelan.c
@@ -75,7 +75,11 @@ static void wavelan_set_orientation(XfcePanelPlugin* plugin, GtkOrientation orie
 static void
 wavelan_set_state(t_wavelan *wavelan, gint state)
 {  
-  GdkColor color;
+  GdkRGBA color;
+#if GTK_CHECK_VERSION (3, 16, 0)
+  GtkCssProvider *css_provider;
+  gchar *css;
+#endif
 
   gchar signal_color_bad[] = "#e00000";
   gchar signal_color_weak[] = "#e05200";
@@ -96,23 +100,39 @@ wavelan_set_state(t_wavelan *wavelan, gint state)
    if (wavelan->signal_colors) {
     /* set color */
      if (state > 70)
-      gdk_color_parse(signal_color_strong, &color);
+      gdk_rgba_parse(&color, signal_color_strong);
      else if (state > 55)
-      gdk_color_parse(signal_color_good, &color);
+      gdk_rgba_parse(&color, signal_color_good);
      else if (state > 40)
-      gdk_color_parse(signal_color_weak, &color);
+      gdk_rgba_parse(&color, signal_color_weak);
      else
-      gdk_color_parse(signal_color_bad, &color);
+      gdk_rgba_parse(&color, signal_color_bad);
 
-        gtk_widget_modify_bg(GTK_WIDGET(wavelan->signal),
+#if GTK_CHECK_VERSION (3, 16, 0)
+#if GTK_CHECK_VERSION (3, 20, 0)
+     css = g_strdup_printf("progressbar progress { background-color: %s; background-image: none; }", gdk_rgba_to_string(&color));
+#else
+     css = g_strdup_printf(".progressbar { background-color: %s; background-image: none; }", gdk_rgba_to_string(&color));
+#endif
+     /* Setup Gtk style */
+     css_provider = gtk_css_provider_new ();
+     gtk_css_provider_load_from_data (css_provider, css, strlen(css), NULL);
+     gtk_style_context_add_provider (
+         GTK_STYLE_CONTEXT (gtk_widget_get_style_context (GTK_WIDGET (wavelan->signal))),
+         GTK_STYLE_PROVIDER (css_provider),
+         GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
+     g_free(css);
+#else
+     gtk_widget_override_background_color(GTK_WIDGET(wavelan->signal),
                              GTK_STATE_PRELIGHT,
                              &color);
-        gtk_widget_modify_bg(GTK_WIDGET(wavelan->signal),
+     gtk_widget_override_background_color(GTK_WIDGET(wavelan->signal),
                              GTK_STATE_SELECTED,
                              &color);
-        gtk_widget_modify_base(GTK_WIDGET(wavelan->signal),
+     gtk_widget_override_color(GTK_WIDGET(wavelan->signal),
                              GTK_STATE_SELECTED,
                              &color);
+#endif
     }
 
    }

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Xfce4-commits mailing list