[gnome-system-monitor] Do not use deprecated API



commit 7ac1c1c4d72a02ed7afa065b0409d5a270dd229c
Author: Stefano Facchini <stefano facchini gmail com>
Date:   Wed Oct 3 18:30:18 2012 +0300

    Do not use deprecated API
    
    Namely, we make the following replacements:
      * GtkStyle -> GtkStyleContext
      * GdkColor -> GdkRGBA
      * GtkColorSelectionDialog -> GtkColorChooserDialog
    
    https://bugzilla.gnome.org/show_bug.cgi?id=684537
    
    https://bugzilla.gnome.org/show_bug.cgi?id=664524

 src/callbacks.cpp      |   15 +++---
 src/gsm_color_button.c |  116 +++++++++++++++++++++---------------------------
 src/gsm_color_button.h |    8 +--
 src/load-graph.cpp     |   16 ++++---
 src/load-graph.h       |    2 +-
 src/procman-app.cpp    |   20 ++++----
 src/procman-app.h      |   14 +++---
 7 files changed, 90 insertions(+), 101 deletions(-)
---
diff --git a/src/callbacks.cpp b/src/callbacks.cpp
index 81f0bf5..3118521 100644
--- a/src/callbacks.cpp
+++ b/src/callbacks.cpp
@@ -245,12 +245,12 @@ cb_cpu_color_changed (GSMColorButton *cp, gpointer data)
 
     for (guint i = 0; i < children_n; i++) {
         if(cpu_i == i) {
-            gchar color[24];
-            GdkColor button_color;
+            gchar *color;
+            GdkRGBA button_color;
             gsm_color_button_get_color(cp, &button_color);
-            g_snprintf(color, sizeof(color), "#%04x%04x%04x",
-                       button_color.red, button_color.green, button_color.blue);
+            color = gdk_rgba_to_string (&button_color);
             g_variant_builder_add(&builder, "(us)", i, color);
+            g_free (color);
         } else {
             g_variant_builder_add_value(&builder,
                                         g_variant_get_child_value(cpu_colors_var, i));
@@ -264,12 +264,13 @@ cb_cpu_color_changed (GSMColorButton *cp, gpointer data)
 static void change_settings_color(GSettings *settings, const char *key,
                                   GSMColorButton *cp)
 {
-    GdkColor c;
-    char color[24]; /* color should be 1 + 3*4 + 1 = 15 chars -> 24 */
+    GdkRGBA c;
+    char *color;
 
     gsm_color_button_get_color(cp, &c);
-    g_snprintf(color, sizeof color, "#%04x%04x%04x", c.red, c.green, c.blue);
+    color = gdk_rgba_to_string (&c);
     g_settings_set_string (settings, key, color);
+    g_free (color);
 }
 
 void
diff --git a/src/gsm_color_button.c b/src/gsm_color_button.c
index 2509ec6..31f24dc 100644
--- a/src/gsm_color_button.c
+++ b/src/gsm_color_button.c
@@ -31,6 +31,7 @@
 #include <gdk/gdkkeysyms.h>
 #include <math.h>
 #include <cairo.h>
+#include <librsvg/rsvg.h>
 
 #include "gsm_color_button.h"
 
@@ -38,11 +39,11 @@
 
 struct _GSMColorButtonPrivate
 {
-  GtkWidget *cs_dialog;		/* Color selection dialog */
+  GtkWidget *cc_dialog;		/* Color chooser dialog */
 
   gchar *title;			/* Title for the color selection window */
 
-  GdkColor color;
+  GdkRGBA color;
 
   gdouble fraction;		/* Only used by GSMCP_TYPE_PIE */
   guint type;
@@ -214,7 +215,7 @@ gsm_color_button_class_init (GSMColorButtonClass * klass)
 				   g_param_spec_boxed ("color",
 						       _("Current Color"),
 						       _("The selected color"),
-						       GDK_TYPE_COLOR,
+						       GDK_TYPE_RGBA,
 						       G_PARAM_READWRITE));
 
   g_object_class_install_property (gobject_class,
@@ -271,33 +272,34 @@ static void
 render (GtkWidget * widget)
 {
   GSMColorButton *color_button = GSM_COLOR_BUTTON (widget);
-  GdkColor *color, tmp_color = color_button->priv->color;
+  GdkRGBA *color;
+  GdkRGBA tmp_color = color_button->priv->color;
   color = &tmp_color;
   cairo_t *cr = gdk_cairo_create (gtk_widget_get_window (widget));
   cairo_path_t *path = NULL;
   gint width, height;
   gdouble radius, arc_start, arc_end;
-  gint highlight_factor;
+  gdouble highlight_factor;
 
   if (color_button->priv->highlight > 0) {
-    highlight_factor = 8192 * color_button->priv->highlight;
+    highlight_factor = 0.125 * color_button->priv->highlight;
 
-    if (color->red + highlight_factor > 65535) 
-      color->red = 65535;
+    if (color->red + highlight_factor > 1.0)
+      color->red = 1.0;
     else
       color->red = color->red + highlight_factor;
-    
-    if (color->blue + highlight_factor > 65535) 
-      color->blue = 65535;
+
+    if (color->blue + highlight_factor > 1.0)
+      color->blue = 1.0;
     else
       color->blue = color->blue + highlight_factor;
-    
-    if (color->green + highlight_factor > 65535) 
-      color->green = 65535;
+
+    if (color->green + highlight_factor > 1.0)
+      color->green = 1.0;
     else
       color->green = color->green + highlight_factor;
   }
-  gdk_cairo_set_source_color (cr, color);
+  gdk_cairo_set_source_rgba (cr, color);
   width  = gdk_window_get_width (gtk_widget_get_window (widget));
   height = gdk_window_get_height(gtk_widget_get_window (widget));
 
@@ -567,15 +569,16 @@ gsm_color_button_drag_data_received (GtkWidget * widget,
 
 
 static void
-set_color_icon (GdkDragContext * context, GdkColor * color)
+set_color_icon (GdkDragContext * context, GdkRGBA * color)
 {
   GdkPixbuf *pixbuf;
   guint32 pixel;
 
   pixbuf = gdk_pixbuf_new (GDK_COLORSPACE_RGB, FALSE, 8, 48, 32);
 
-  pixel = ((color->red & 0xff00) << 16) |
-    ((color->green & 0xff00) << 8) | (color->blue & 0xff00);
+  pixel = ((guint32)(color->red * 0xff) << 24) |
+          ((guint32)(color->green * 0xff) << 16) |
+          ((guint32)(color->blue * 0xff) << 8);
 
   gdk_pixbuf_fill (pixbuf, pixel);
 
@@ -656,9 +659,9 @@ gsm_color_button_finalize (GObject * object)
 {
   GSMColorButton *color_button = GSM_COLOR_BUTTON (object);
 
-  if (color_button->priv->cs_dialog != NULL)
-    gtk_widget_destroy (color_button->priv->cs_dialog);
-  color_button->priv->cs_dialog = NULL;
+  if (color_button->priv->cc_dialog != NULL)
+    gtk_widget_destroy (color_button->priv->cc_dialog);
+  color_button->priv->cc_dialog = NULL;
 
   g_free (color_button->priv->title);
   color_button->priv->title = NULL;
@@ -670,7 +673,7 @@ gsm_color_button_finalize (GObject * object)
 }
 
 GtkWidget *
-gsm_color_button_new (const GdkColor * color, guint type)
+gsm_color_button_new (const GdkRGBA * color, guint type)
 {
   return g_object_new (GSM_TYPE_COLOR_BUTTON, "color", color, "type", type,
 		       NULL);
@@ -680,17 +683,14 @@ static void
 dialog_response (GtkWidget * widget, GtkResponseType response, gpointer data)
 {
   GSMColorButton *color_button = GSM_COLOR_BUTTON (data);
-  GtkColorSelection *color_selection;
+  GtkColorChooser *color_chooser;
 
   if (response == GTK_RESPONSE_OK) {
-    color_selection =
-      GTK_COLOR_SELECTION (gtk_color_selection_dialog_get_color_selection (GTK_COLOR_SELECTION_DIALOG
-			   (color_button->priv->cs_dialog)));
+    color_chooser = GTK_COLOR_CHOOSER (color_button->priv->cc_dialog);
 
-    gtk_color_selection_get_current_color (color_selection,
-					   &color_button->priv->color);
+    gtk_color_chooser_get_rgba (color_chooser, &color_button->priv->color);
 
-    gtk_widget_hide (color_button->priv->cs_dialog);
+    gtk_widget_hide (color_button->priv->cc_dialog);
 
     gtk_widget_queue_draw (GTK_WIDGET (&color_button->widget));
 
@@ -701,7 +701,7 @@ dialog_response (GtkWidget * widget, GtkResponseType response, gpointer data)
     g_object_thaw_notify (G_OBJECT (color_button));
   }
   else  /* (response == GTK_RESPONSE_CANCEL) */
-    gtk_widget_hide (color_button->priv->cs_dialog);
+    gtk_widget_hide (color_button->priv->cc_dialog);
 }
 
 static gboolean
@@ -709,7 +709,7 @@ dialog_destroy (GtkWidget * widget, gpointer data)
 {
   GSMColorButton *color_button = GSM_COLOR_BUTTON (data);
 
-  color_button->priv->cs_dialog = NULL;
+  color_button->priv->cc_dialog = NULL;
 
   return FALSE;
 }
@@ -718,51 +718,35 @@ static gint
 gsm_color_button_clicked (GtkWidget * widget, GdkEventButton * event)
 {
   GSMColorButton *color_button = GSM_COLOR_BUTTON (widget);
-  GtkColorSelectionDialog *color_dialog;
 
   /* if dialog already exists, make sure it's shown and raised */
-  if (!color_button->priv->cs_dialog)
+  if (!color_button->priv->cc_dialog)
     {
       /* Create the dialog and connects its buttons */
+      GtkWidget *cc_dialog;
       GtkWidget *parent;
 
       parent = gtk_widget_get_toplevel (GTK_WIDGET (color_button));
+      if (!gtk_widget_is_toplevel (parent))
+        parent = NULL;
 
-      color_button->priv->cs_dialog =
-	gtk_color_selection_dialog_new (color_button->priv->title);
-
-      color_dialog =
-	GTK_COLOR_SELECTION_DIALOG (color_button->priv->cs_dialog);
-
-      if (gtk_widget_is_toplevel (parent) && GTK_IS_WINDOW (parent))
-	{
-	  if (GTK_WINDOW (parent) !=
-	      gtk_window_get_transient_for (GTK_WINDOW (color_dialog)))
-	    gtk_window_set_transient_for (GTK_WINDOW (color_dialog),
-					  GTK_WINDOW (parent));
+      cc_dialog = gtk_color_chooser_dialog_new (color_button->priv->title, GTK_WINDOW (parent));
 
-	  gtk_window_set_modal (GTK_WINDOW (color_dialog),
-				gtk_window_get_modal (GTK_WINDOW (parent)));
-	}
+      gtk_window_set_modal (GTK_WINDOW (cc_dialog), TRUE);
 
-      g_signal_connect (color_dialog, "response",
+      g_signal_connect (cc_dialog, "response",
                         G_CALLBACK (dialog_response), color_button);
 
-      g_signal_connect (color_dialog, "destroy",
+      g_signal_connect (cc_dialog, "destroy",
 			G_CALLBACK (dialog_destroy), color_button);
-    }
-
-  color_dialog = GTK_COLOR_SELECTION_DIALOG (color_button->priv->cs_dialog);
 
-  gtk_color_selection_set_previous_color (GTK_COLOR_SELECTION
-                                          (gtk_color_selection_dialog_get_color_selection (color_dialog)),
-					  &color_button->priv->color);
+      color_button->priv->cc_dialog = cc_dialog;
+    }
 
-  gtk_color_selection_set_current_color (GTK_COLOR_SELECTION
-                                         (gtk_color_selection_dialog_get_color_selection (color_dialog)),
-					 &color_button->priv->color);
+  gtk_color_chooser_set_rgba (GTK_COLOR_CHOOSER (color_button->priv->cc_dialog),
+                              &color_button->priv->color);
 
-  gtk_window_present (GTK_WINDOW (color_button->priv->cs_dialog));
+  gtk_window_present (GTK_WINDOW (color_button->priv->cc_dialog));
   return 0;
 }
 
@@ -850,18 +834,19 @@ gsm_color_button_set_fraction (GSMColorButton * color_button,
 }
 
 void
-gsm_color_button_get_color (GSMColorButton * color_button, GdkColor * color)
+gsm_color_button_get_color (GSMColorButton * color_button, GdkRGBA * color)
 {
   g_return_if_fail (GSM_IS_COLOR_BUTTON (color_button));
 
   color->red = color_button->priv->color.red;
   color->green = color_button->priv->color.green;
   color->blue = color_button->priv->color.blue;
+  color->alpha = color_button->priv->color.alpha;
 }
 
 void
 gsm_color_button_set_color (GSMColorButton * color_button,
-			    const GdkColor * color)
+			    const GdkRGBA * color)
 {
   g_return_if_fail (GSM_IS_COLOR_BUTTON (color_button));
   g_return_if_fail (color != NULL);
@@ -869,6 +854,7 @@ gsm_color_button_set_color (GSMColorButton * color_button,
   color_button->priv->color.red = color->red;
   color_button->priv->color.green = color->green;
   color_button->priv->color.blue = color->blue;
+  color_button->priv->color.alpha = color->alpha;
 
   gtk_widget_queue_draw (GTK_WIDGET (&color_button->widget));	//->priv->draw_area);
 
@@ -887,8 +873,8 @@ gsm_color_button_set_title (GSMColorButton * color_button,
   color_button->priv->title = g_strdup (title);
   g_free (old_title);
 
-  if (color_button->priv->cs_dialog)
-    gtk_window_set_title (GTK_WINDOW (color_button->priv->cs_dialog),
+  if (color_button->priv->cc_dialog)
+    gtk_window_set_title (GTK_WINDOW (color_button->priv->cc_dialog),
 			  color_button->priv->title);
 
   g_object_notify (G_OBJECT (color_button), "title");
@@ -936,7 +922,7 @@ gsm_color_button_get_property (GObject * object,
 			       GValue * value, GParamSpec * pspec)
 {
   GSMColorButton *color_button = GSM_COLOR_BUTTON (object);
-  GdkColor color;
+  GdkRGBA color;
 
   switch (param_id)
     {
diff --git a/src/gsm_color_button.h b/src/gsm_color_button.h
index 8e1bcf4..a3022dc 100644
--- a/src/gsm_color_button.h
+++ b/src/gsm_color_button.h
@@ -25,8 +25,6 @@
 #include <glib.h>
 #include <gdk/gdk.h>
 #include <gtk/gtk.h>
-#include <cairo.h>
-#include <librsvg/rsvg.h>
 
 G_BEGIN_DECLS
 /* The GtkColorSelectionButton widget is a simple color picker in a button.
@@ -77,11 +75,11 @@ struct _GSMColorButtonClass
 };
 
 GType gsm_color_button_get_type (void) G_GNUC_CONST;
-GtkWidget *gsm_color_button_new (const GdkColor * color, guint type);
-void gsm_color_button_set_color (GSMColorButton * color_button, const GdkColor * color);
+GtkWidget *gsm_color_button_new (const GdkRGBA * color, guint type);
+void gsm_color_button_set_color (GSMColorButton * color_button, const GdkRGBA * color);
 void gsm_color_button_set_fraction (GSMColorButton * color_button, const gdouble fraction);
 void gsm_color_button_set_cbtype (GSMColorButton * color_button, guint type);
-void gsm_color_button_get_color (GSMColorButton * color_button, GdkColor * color);
+void gsm_color_button_get_color (GSMColorButton * color_button, GdkRGBA * color);
 gdouble gsm_color_button_get_fraction (GSMColorButton * color_button);
 guint gsm_color_button_get_cbtype (GSMColorButton * color_button);
 void gsm_color_button_set_title (GSMColorButton * color_button, const gchar * title);
diff --git a/src/load-graph.cpp b/src/load-graph.cpp
index 6a026ec..2f0505f 100644
--- a/src/load-graph.cpp
+++ b/src/load-graph.cpp
@@ -76,6 +76,7 @@ void draw_background(LoadGraph *graph) {
     PangoLayout* layout;
     PangoFontDescription* font_desc;
     PangoRectangle extents;
+    GdkRGBA fg, bg;
 
     num_bars = graph->num_bars();
     graph->graph_dely = (graph->draw_height - 15) / num_bars; /* round to int to avoid AA blur */
@@ -90,13 +91,16 @@ void draw_background(LoadGraph *graph) {
                                                            allocation.height);
     cr = cairo_create (graph->background);
 
+    GtkStyleContext *context = gtk_widget_get_style_context (ProcmanApp::get()->notebook);
+    gtk_style_context_get_background_color (context, GTK_STATE_FLAG_NORMAL, &bg);
+    gtk_style_context_get_color (context, GTK_STATE_FLAG_NORMAL, &fg);
+
     // set the background colour
-    GtkStyle *style = gtk_widget_get_style (ProcmanApp::get()->notebook);
-    gdk_cairo_set_source_color (cr, &style->bg[GTK_STATE_NORMAL]);
+    gdk_cairo_set_source_rgba (cr, &bg);
     cairo_paint (cr);
 
     layout = pango_cairo_create_layout (cr);
-    font_desc = pango_font_description_copy (style->font_desc);
+    font_desc = pango_font_description_copy (gtk_style_context_get_font (context, GTK_STATE_FLAG_NORMAL));
     pango_font_description_set_size (font_desc, 0.8 * graph->fontsize * PANGO_SCALE);
     pango_layout_set_font_description (layout, font_desc);
     pango_font_description_free (font_desc);
@@ -123,7 +127,7 @@ void draw_background(LoadGraph *graph) {
         else
             y = i * graph->graph_dely + graph->fontsize / 2.0;
 
-        gdk_cairo_set_source_color (cr, &style->fg[GTK_STATE_NORMAL]);
+        gdk_cairo_set_source_rgba (cr, &fg);
         if (graph->type == LOAD_GRAPH_NET) {
             // operation orders matters so it's 0 if i == num_bars
             guint64 rate = graph->net.max - (i * graph->net.max / num_bars);
@@ -172,7 +176,7 @@ void draw_background(LoadGraph *graph) {
         cairo_move_to (cr,
                        (ceil(x) + 0.5 + graph->rmargin + graph->indent) - (1.0 * extents.width / PANGO_SCALE / 2),
                        graph->draw_height - 1.0 * extents.height / PANGO_SCALE);
-        gdk_cairo_set_source_color (cr, &style->fg[GTK_STATE_NORMAL]);
+        gdk_cairo_set_source_rgba (cr, &fg);
         pango_cairo_show_layout (cr, layout);
         g_free (caption);
     }
@@ -253,7 +257,7 @@ load_graph_draw (GtkWidget *widget,
 
     for (j = 0; j < graph->n; ++j) {
         cairo_move_to (cr, x_offset, (1.0f - graph->data[0][j]) * graph->real_draw_height);
-        gdk_cairo_set_source_color (cr, &(graph->colors [j]));
+        gdk_cairo_set_source_rgba (cr, &(graph->colors [j]));
 
         for (i = 1; i < LoadGraph::NUM_POINTS; ++i) {
             if (graph->data[i][j] == -1.0f)
diff --git a/src/load-graph.h b/src/load-graph.h
index 92a486a..3549fda 100644
--- a/src/load-graph.h
+++ b/src/load-graph.h
@@ -55,7 +55,7 @@ struct LoadGraph
     double graph_delx;
     guint graph_buffer_offset;
 
-    std::vector<GdkColor> colors;
+    std::vector<GdkRGBA> colors;
 
     std::vector<float> data_block;
     gfloat* data[NUM_POINTS];
diff --git a/src/procman-app.cpp b/src/procman-app.cpp
index 1a6ef38..e08b903 100644
--- a/src/procman-app.cpp
+++ b/src/procman-app.cpp
@@ -165,7 +165,7 @@ apply_cpu_color_settings(GSettings *settings, gpointer data)
             color = g_strdup ("#f25915e815e8");
             g_variant_builder_add(&builder, "(us)", i, color);
         }
-        gdk_color_parse(color, &app->config.cpu_color[i]);
+        gdk_rgba_parse(&app->config.cpu_color[i], color);
         g_free (color);
     }
     full = g_variant_builder_end(&builder);
@@ -183,7 +183,7 @@ color_changed_cb (GSettings *settings, const gchar *key, gpointer data)
     if (g_str_equal (key, "cpu-colors")) {
         apply_cpu_color_settings(settings, app);
         for (int i = 0; i < app->config.num_cpus; i++) {
-            if(!gdk_color_equal(&app->cpu_graph->colors[i], &app->config.cpu_color[i])) {
+            if(!gdk_rgba_equal(&app->cpu_graph->colors[i], &app->config.cpu_color[i])) {
                 app->cpu_graph->colors[i] = app->config.cpu_color[i];
                 break;
             }
@@ -193,19 +193,19 @@ color_changed_cb (GSettings *settings, const gchar *key, gpointer data)
 
     const gchar *color = g_settings_get_string (settings, key);
     if (g_str_equal (key, "mem-color")) {
-        gdk_color_parse (color, &app->config.mem_color);
+        gdk_rgba_parse (&app->config.mem_color, color);
         app->mem_graph->colors.at(0) = app->config.mem_color;
     }
     else if (g_str_equal (key, "swap-color")) {
-        gdk_color_parse (color, &app->config.swap_color);
+        gdk_rgba_parse (&app->config.swap_color, color);
         app->mem_graph->colors.at(1) = app->config.swap_color;
     }
     else if (g_str_equal (key, "net-in-color")) {
-        gdk_color_parse (color, &app->config.net_in_color);
+        gdk_rgba_parse (&app->config.net_in_color, color);
         app->net_graph->colors.at(0) = app->config.net_in_color;
     }
     else if (g_str_equal (key, "net-out-color")) {
-        gdk_color_parse (color, &app->config.net_out_color);
+        gdk_rgba_parse (&app->config.net_out_color, color);
         app->net_graph->colors.at(1) = app->config.net_out_color;
     }
     else {
@@ -292,7 +292,7 @@ ProcmanApp::load_settings()
         color = g_strdup ("#000000ff0082");
     g_signal_connect (G_OBJECT(settings), "changed::mem-color",
                       G_CALLBACK(color_changed_cb), this);
-    gdk_color_parse(color, &config.mem_color);
+    gdk_rgba_parse(&config.mem_color, color);
 
     g_free (color);
 
@@ -301,7 +301,7 @@ ProcmanApp::load_settings()
         color = g_strdup ("#00b6000000ff");
     g_signal_connect (G_OBJECT(settings), "changed::swap-color",
                       G_CALLBACK(color_changed_cb), this);
-    gdk_color_parse(color, &config.swap_color);
+    gdk_rgba_parse(&config.swap_color, color);
     g_free (color);
 
     color = g_settings_get_string (settings, "net-in-color");
@@ -309,7 +309,7 @@ ProcmanApp::load_settings()
         color = g_strdup ("#000000f200f2");
     g_signal_connect (G_OBJECT(settings), "changed::net-in-color",
                       G_CALLBACK(color_changed_cb), this);
-    gdk_color_parse(color, &config.net_in_color);
+    gdk_rgba_parse(&config.net_in_color, color);
     g_free (color);
 
     color = g_settings_get_string (settings, "net-out-color");
@@ -317,7 +317,7 @@ ProcmanApp::load_settings()
         color = g_strdup ("#00f2000000c1");
     g_signal_connect (G_OBJECT(settings), "changed::net-out-color",
                       G_CALLBACK(color_changed_cb), this);
-    gdk_color_parse(color, &config.net_out_color);
+    gdk_rgba_parse(&config.net_out_color, color);
     g_free (color);
 
     /* Sanity checks */
diff --git a/src/procman-app.h b/src/procman-app.h
index 280bca4..457a64c 100644
--- a/src/procman-app.h
+++ b/src/procman-app.h
@@ -57,13 +57,13 @@ struct ProcConfig
     int             disks_update_interval;
     gint            whose_process;
     gint            current_tab;
-    GdkColor        cpu_color[GLIBTOP_NCPU];
-    GdkColor        mem_color;
-    GdkColor        swap_color;
-    GdkColor        net_in_color;
-    GdkColor        net_out_color;
-    GdkColor        bg_color;
-    GdkColor        frame_color;
+    GdkRGBA         cpu_color[GLIBTOP_NCPU];
+    GdkRGBA         mem_color;
+    GdkRGBA         swap_color;
+    GdkRGBA         net_in_color;
+    GdkRGBA         net_out_color;
+    GdkRGBA         bg_color;
+    GdkRGBA         frame_color;
     gint            num_cpus;
     bool solaris_mode;
     bool network_in_bits;



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