[gnome-panel] Pass the style colors along to the notification tray



commit ab27257717b024af7ce44b935b4199b7e42a060e
Author: William Jon McCann <jmccann redhat com>
Date:   Thu Feb 17 12:52:19 2011 -0500

    Pass the style colors along to the notification tray
    
    https://bugzilla.gnome.org/show_bug.cgi?id=631553

 applets/notification_area/main.c            |   23 +++++++++++++++
 applets/notification_area/na-tray-manager.c |   40 +++++++++++++-------------
 applets/notification_area/na-tray-manager.h |   16 +++++-----
 applets/notification_area/na-tray.c         |   10 +++---
 applets/notification_area/na-tray.h         |    8 +++---
 5 files changed, 60 insertions(+), 37 deletions(-)
---
diff --git a/applets/notification_area/main.c b/applets/notification_area/main.c
index 26a72bc..b9c4690 100644
--- a/applets/notification_area/main.c
+++ b/applets/notification_area/main.c
@@ -107,6 +107,11 @@ on_applet_realized (GtkWidget *widget,
   NaTray         *tray;
   GtkActionGroup *action_group;
   gchar          *ui_path;
+  GtkStyleContext *context;
+  GdkRGBA          fg;
+  GdkRGBA          warning;
+  GdkRGBA          error;
+  GdkRGBA          success;
 
   applet = PANEL_APPLET (widget);
   data = g_object_get_data (G_OBJECT (widget), "system-tray-data");
@@ -116,6 +121,24 @@ on_applet_realized (GtkWidget *widget,
 
   tray = na_tray_new_for_screen (gtk_widget_get_screen (GTK_WIDGET (applet)),
                                  get_orientation_from_applet (applet));
+  context = gtk_widget_get_style_context (GTK_WIDGET (applet));
+
+  gtk_style_context_get_color (context, 0, &fg);
+
+  if (!gtk_style_context_lookup_color (context, "success_color", &success))
+    {
+      success = fg;
+    }
+  if (!gtk_style_context_lookup_color (context, "warning_color", &warning))
+    {
+      warning = fg;
+    }
+  if (!gtk_style_context_lookup_color (context, "error_color", &error))
+    {
+      error = fg;
+    }
+
+  na_tray_set_colors (tray, &fg, &error, &warning, &success);
 
   data = g_slice_new (AppletData);
   data->applet = applet;
diff --git a/applets/notification_area/na-tray-manager.c b/applets/notification_area/na-tray-manager.c
index 5354619..a7a43a8 100644
--- a/applets/notification_area/na-tray-manager.c
+++ b/applets/notification_area/na-tray-manager.c
@@ -667,18 +667,18 @@ na_tray_manager_set_colors_property (NaTrayManager *manager)
   atom = gdk_x11_get_xatom_by_name_for_display (display,
                                                 "_NET_SYSTEM_TRAY_COLORS");
 
-  data[0] = manager->fg.red;
-  data[1] = manager->fg.green;
-  data[2] = manager->fg.blue;
-  data[3] = manager->error.red;
-  data[4] = manager->error.green;
-  data[5] = manager->error.blue;
-  data[6] = manager->warning.red;
-  data[7] = manager->warning.green;
-  data[8] = manager->warning.blue;
-  data[9] = manager->success.red;
-  data[10] = manager->success.green;
-  data[11] = manager->success.blue;
+  data[0] = manager->fg.red * 65535;
+  data[1] = manager->fg.green * 65535;
+  data[2] = manager->fg.blue * 65535;
+  data[3] = manager->error.red * 65535;
+  data[4] = manager->error.green * 65535;
+  data[5] = manager->error.blue * 65535;
+  data[6] = manager->warning.red * 65535;
+  data[7] = manager->warning.green * 65535;
+  data[8] = manager->warning.blue * 65535;
+  data[9] = manager->success.red * 65535;
+  data[10] = manager->success.green * 65535;
+  data[11] = manager->success.blue * 65535;
 
   XChangeProperty (GDK_DISPLAY_XDISPLAY (display),
                    GDK_WINDOW_XID (window),
@@ -871,17 +871,17 @@ na_tray_manager_set_orientation (NaTrayManager  *manager,
 
 void
 na_tray_manager_set_colors (NaTrayManager *manager,
-                            GdkColor      *fg,
-                            GdkColor      *error,
-                            GdkColor      *warning,
-                            GdkColor      *success)
+                            GdkRGBA       *fg,
+                            GdkRGBA       *error,
+                            GdkRGBA       *warning,
+                            GdkRGBA       *success)
 {
   g_return_if_fail (NA_IS_TRAY_MANAGER (manager));
 
-  if (!gdk_color_equal (&manager->fg, fg) ||
-      !gdk_color_equal (&manager->error, error) ||
-      !gdk_color_equal (&manager->warning, warning) ||
-      !gdk_color_equal (&manager->success, success))
+  if (!gdk_rgba_equal (&manager->fg, fg) ||
+      !gdk_rgba_equal (&manager->error, error) ||
+      !gdk_rgba_equal (&manager->warning, warning) ||
+      !gdk_rgba_equal (&manager->success, success))
     {
       manager->fg = *fg;
       manager->error = *error;
diff --git a/applets/notification_area/na-tray-manager.h b/applets/notification_area/na-tray-manager.h
index 1350bdf..2dc3f09 100644
--- a/applets/notification_area/na-tray-manager.h
+++ b/applets/notification_area/na-tray-manager.h
@@ -56,10 +56,10 @@ struct _NaTrayManager
   GtkWidget *invisible;
   GdkScreen *screen;
   GtkOrientation orientation;
-  GdkColor fg;
-  GdkColor error;
-  GdkColor warning;
-  GdkColor success;
+  GdkRGBA  fg;
+  GdkRGBA  error;
+  GdkRGBA  warning;
+  GdkRGBA  success;
 
   GList *messages;
   GHashTable *socket_table;
@@ -97,10 +97,10 @@ void            na_tray_manager_set_orientation (NaTrayManager      *manager,
 						 GtkOrientation      orientation);
 GtkOrientation  na_tray_manager_get_orientation (NaTrayManager      *manager);
 void            na_tray_manager_set_colors      (NaTrayManager      *manager,
-						 GdkColor           *fg,
-						 GdkColor           *error,
-						 GdkColor           *warning,
-						 GdkColor           *success);
+						 GdkRGBA            *fg,
+						 GdkRGBA            *error,
+						 GdkRGBA            *warning,
+						 GdkRGBA            *success);
 
 
 G_END_DECLS
diff --git a/applets/notification_area/na-tray.c b/applets/notification_area/na-tray.c
index a32a4ff..cdc588c 100644
--- a/applets/notification_area/na-tray.c
+++ b/applets/notification_area/na-tray.c
@@ -817,11 +817,11 @@ idle_redraw_cb (NaTray *tray)
 }
 
 void
-na_tray_set_colors (NaTray   *tray,
-                    GdkColor *fg,
-                    GdkColor *error,
-                    GdkColor *warning,
-                    GdkColor *success)
+na_tray_set_colors (NaTray  *tray,
+                    GdkRGBA *fg,
+                    GdkRGBA *error,
+                    GdkRGBA *warning,
+                    GdkRGBA *success)
 {
   NaTrayPrivate *priv = tray->priv;
 
diff --git a/applets/notification_area/na-tray.h b/applets/notification_area/na-tray.h
index 1a48eb0..05ecb63 100644
--- a/applets/notification_area/na-tray.h
+++ b/applets/notification_area/na-tray.h
@@ -61,10 +61,10 @@ void            na_tray_set_orientation	(NaTray        *tray,
 					 GtkOrientation orientation);
 GtkOrientation  na_tray_get_orientation (NaTray        *tray);
 void            na_tray_set_colors      (NaTray        *tray,
-					 GdkColor      *fg,
-					 GdkColor      *error,
-					 GdkColor      *warning,
-					 GdkColor      *success);
+					 GdkRGBA       *fg,
+					 GdkRGBA       *error,
+					 GdkRGBA       *warning,
+					 GdkRGBA       *success);
 void		na_tray_force_redraw	(NaTray        *tray);
 
 G_END_DECLS



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