[Xfce4-commits] [panel-plugins/xfce4-fsguard-plugin] 07/15: Rework progressbar color handling

noreply at xfce.org noreply at xfce.org
Thu Apr 28 12:07:50 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-fsguard-plugin.

commit 0177c0180986a26b813d4f2a9bbb491b6d3a40a1
Author: Landry Breuil <landry at xfce.org>
Date:   Thu Apr 28 11:59:25 2016 +0200

    Rework progressbar color handling
    
    - Use GdkRGBA instead of GdkColor
    - Use a css provider with Gtk >= 3.16 (thanks ochosi for the tips!)
    - Use gtk_widget_override_background_color/gtk_widget_override_color with Gtk < 3.16
---
 panel-plugin/fsguard.c | 27 ++++++++++++++++++++-------
 1 file changed, 20 insertions(+), 7 deletions(-)

diff --git a/panel-plugin/fsguard.c b/panel-plugin/fsguard.c
index 9e4ee4d..a3ed2a7 100644
--- a/panel-plugin/fsguard.c
+++ b/panel-plugin/fsguard.c
@@ -179,32 +179,45 @@ fsguard_refresh_icon (FsGuard *fsguard)
 static void
 fsguard_refresh_monitor (FsGuard *fsguard)
 {
-    GdkColor            color;
+    GdkRGBA             color;
 
     switch (fsguard->icon_id) {
       default:
       case ICON_NORMAL:
-        gdk_color_parse (COLOR_NORMAL, &color);
+        gdk_rgba_parse (&color, COLOR_NORMAL);
         break;
 
       case ICON_WARNING:
-        gdk_color_parse (COLOR_WARNING, &color);
+        gdk_rgba_parse (&color, COLOR_WARNING);
         break;
 
       case ICON_URGENT:
-        gdk_color_parse (COLOR_URGENT, &color);
+        gdk_rgba_parse (&color, COLOR_URGENT);
         break;
     }
 
-    gtk_widget_modify_bg (GTK_WIDGET (fsguard->progress_bar),
+#if GTK_CHECK_VERSION (3, 16, 0)
+    GtkCssProvider *css_provider;
+    gchar * css = g_strdup_printf("progressbar progress { background-color: %s; background-image: none; }", gdk_rgba_to_string(&color));
+    /* 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 (fsguard->progress_bar))),
+        GTK_STYLE_PROVIDER (css_provider),
+        GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
+    g_free(css);
+#else
+    gtk_widget_override_background_color (GTK_WIDGET (fsguard->progress_bar),
                           GTK_STATE_PRELIGHT,
                           &color);
-    gtk_widget_modify_bg (GTK_WIDGET (fsguard->progress_bar),
+    gtk_widget_override_background_color (GTK_WIDGET (fsguard->progress_bar),
                           GTK_STATE_SELECTED,
                           &color);
-    gtk_widget_modify_base (GTK_WIDGET (fsguard->progress_bar),
+    gtk_widget_override_color (GTK_WIDGET (fsguard->progress_bar),
                             GTK_STATE_SELECTED,
                             &color);
+#endif
 }
 
 static inline gboolean

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


More information about the Xfce4-commits mailing list