[gnome-system-monitor] Port GsmColorButton to new gobject private API



commit 892aa4198ddfcba2cfb00b4e84979f800f89a038
Author: Stefano Facchini <stefano facchini gmail com>
Date:   Thu Aug 8 14:47:02 2013 +0200

    Port GsmColorButton to new gobject private API

 configure.ac           |    2 +-
 src/gsm_color_button.c |  291 ++++++++++++++++++++++++------------------------
 src/gsm_color_button.h |    9 +-
 3 files changed, 151 insertions(+), 151 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index 9d81695..ed90f67 100644
--- a/configure.ac
+++ b/configure.ac
@@ -27,7 +27,7 @@ LT_PREREQ([2.2])
 LT_INIT
 
 # Package dependencies
-GLIB_REQUIRED=2.28.0
+GLIB_REQUIRED=2.37.3
 LIBWNCK_REQUIRED=2.91.0
 LIBGTOP_REQUIRED=2.28.2
 GTK_REQUIRED=3.9.5
diff --git a/src/gsm_color_button.c b/src/gsm_color_button.c
index e946c1f..085c78b 100644
--- a/src/gsm_color_button.c
+++ b/src/gsm_color_button.c
@@ -28,9 +28,7 @@
 
 #include "gsm_color_button.h"
 
-#define GSM_COLOR_BUTTON_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), GSM_TYPE_COLOR_BUTTON, 
GsmColorButtonPrivate))
-
-struct _GsmColorButtonPrivate
+typedef struct
 {
   GtkWidget *cc_dialog;                /* Color chooser dialog */
 
@@ -44,7 +42,9 @@ struct _GsmColorButtonPrivate
   gdouble highlight;
   gboolean button_down;
   gboolean in_button;
-};
+} GsmColorButtonPrivate;
+
+G_DEFINE_TYPE_WITH_PRIVATE (GsmColorButton, gsm_color_button, GTK_TYPE_DRAWING_AREA);
 
 /* Properties */
 enum
@@ -67,7 +67,6 @@ enum
 #define GSMCP_MIN_WIDTH 15
 #define GSMCP_MIN_HEIGHT 15
 
-static void gsm_color_button_class_intern_init (gpointer);
 static void gsm_color_button_class_init (GsmColorButtonClass * klass);
 static void gsm_color_button_init (GsmColorButton * color_button);
 static void gsm_color_button_finalize (GObject * object);
@@ -123,44 +122,8 @@ static void gsm_color_button_drag_data_received (GtkWidget * widget,
 
 static guint color_button_signals[LAST_SIGNAL] = { 0 };
 
-static gpointer gsm_color_button_parent_class = NULL;
-
 static const GtkTargetEntry drop_types[] = { {"application/x-color", 0, 0} };
 
-GType
-gsm_color_button_get_type ()
-{
-  static GType gsm_color_button_type = 0;
-
-  if (!gsm_color_button_type)
-    {
-      static const GTypeInfo gsm_color_button_info = {
-       sizeof (GsmColorButtonClass),
-       NULL,
-       NULL,
-       (GClassInitFunc) gsm_color_button_class_intern_init,
-       NULL,
-       NULL,
-       sizeof (GsmColorButton),
-       0,
-       (GInstanceInitFunc) gsm_color_button_init,
-      };
-
-      gsm_color_button_type =
-       g_type_register_static (GTK_TYPE_DRAWING_AREA, "GsmColorButton",
-                               &gsm_color_button_info, 0);
-    }
-
-  return gsm_color_button_type;
-}
-
-static void
-gsm_color_button_class_intern_init (gpointer klass)
-{
-  gsm_color_button_parent_class = g_type_class_peek_parent (klass);
-  gsm_color_button_class_init ((GsmColorButtonClass *) klass);
-}
-
 static void
 gsm_color_button_class_init (GsmColorButtonClass * klass)
 {
@@ -236,8 +199,6 @@ gsm_color_button_class_init (GsmColorButtonClass * klass)
                                                   color_set), NULL, NULL,
                                                  g_cclosure_marshal_VOID__VOID,
                                                  G_TYPE_NONE, 0);
-
-  g_type_class_add_private (gobject_class, sizeof (GsmColorButtonPrivate));
 }
 
 
@@ -280,22 +241,23 @@ static void
 render (GtkWidget * widget)
 {
   GsmColorButton *color_button = GSM_COLOR_BUTTON (widget);
-  GdkRGBA *color = gdk_rgba_copy(&(color_button->priv->color));
+  GsmColorButtonPrivate *priv = gsm_color_button_get_instance_private (color_button);
+  GdkRGBA *color = gdk_rgba_copy(&priv->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;
   gdouble highlight_factor;
 
-  if ( color_button->priv->sensitive && color_button->priv->highlight > 0 ) {
-    highlight_factor = 0.125 * color_button->priv->highlight;
+  if (priv->sensitive && priv->highlight > 0 ) {
+    highlight_factor = 0.125 * priv->highlight;
 
     color->red = MIN (1.0, color->red + highlight_factor);
     
     color->blue = MIN (1.0, color->blue + highlight_factor) ;
     
     color->green = MIN (1.0, color->green + highlight_factor);
-  } else if ( !color_button->priv->sensitive ) {
+  } else if (!priv->sensitive) {
     GtkStyleContext *context = gtk_widget_get_style_context (widget);
     
     gtk_style_context_get_color (context, GTK_STATE_FLAG_INSENSITIVE, color);
@@ -304,7 +266,7 @@ render (GtkWidget * widget)
   width  = gdk_window_get_width (gtk_widget_get_window (widget));
   height = gdk_window_get_height(gtk_widget_get_window (widget));
 
-  switch (color_button->priv->type)
+  switch (priv->type)
     {
     case GSMCP_TYPE_CPU:
       //gtk_widget_set_size_request (widget, GSMCP_MIN_WIDTH, GSMCP_MIN_HEIGHT);
@@ -326,16 +288,16 @@ render (GtkWidget * widget)
       else
        radius = height / 2;
 
-      arc_start = -G_PI_2 + 2 * G_PI * color_button->priv->fraction;
+      arc_start = -G_PI_2 + 2 * G_PI * priv->fraction;
       arc_end = -G_PI_2;
 
       cairo_set_line_width (cr, 1);
       
       // Draw external stroke and fill
-      if (color_button->priv->fraction < 0.01) {
+      if (priv->fraction < 0.01) {
         cairo_arc (cr, (width / 2) + .5, (height / 2) + .5, 4.5,
                   0, 2 * G_PI);
-      } else if (color_button->priv->fraction > 0.99) { 
+      } else if (priv->fraction > 0.99) { 
         cairo_arc (cr, (width / 2) + .5, (height / 2) + .5, radius - 2.25,
                   0, 2 * G_PI);
       } else {
@@ -354,10 +316,10 @@ render (GtkWidget * widget)
       cairo_set_source_rgba (cr, 1, 1, 1, 0.45);
       cairo_set_line_width (cr, 1);
 
-      if (color_button->priv->fraction < 0.03) {
+      if (priv->fraction < 0.03) {
         cairo_arc (cr, (width / 2) + .5, (height / 2) + .5, 3.25,
                            0, 2 * G_PI);
-      } else if (color_button->priv->fraction > 0.99) {
+      } else if (priv->fraction > 0.99) {
         cairo_arc (cr, (width / 2) + .5, (height / 2) + .5, radius - 3.5,
                            0, 2 * G_PI);
       } else {
@@ -382,8 +344,8 @@ render (GtkWidget * widget)
 
       break;
     case GSMCP_TYPE_NETWORK_IN:
-      if (color_button->priv->image_buffer == NULL)
-       color_button->priv->image_buffer =
+      if (priv->image_buffer == NULL)
+          priv->image_buffer =
          fill_image_buffer_from_resource (cr, "/org/gnome/gnome-system-monitor/pixmaps/download.svg");
       gtk_widget_set_size_request (widget, 32, 32);
       cairo_move_to (cr, 8.5, 1.5);
@@ -407,14 +369,14 @@ render (GtkWidget * widget)
       cairo_append_path (cr, path);
       cairo_path_destroy(path);
       cairo_stroke (cr);
-      cairo_set_source_surface (cr, color_button->priv->image_buffer, 0.0,
+      cairo_set_source_surface (cr, priv->image_buffer, 0.0,
                                0.0);
       cairo_paint (cr);
 
       break;
     case GSMCP_TYPE_NETWORK_OUT:
-      if (color_button->priv->image_buffer == NULL)
-       color_button->priv->image_buffer =
+      if (priv->image_buffer == NULL)
+          priv->image_buffer =
          fill_image_buffer_from_resource (cr, "/org/gnome/gnome-system-monitor/pixmaps/upload.svg");
       gtk_widget_set_size_request (widget, 32, 32);
       cairo_move_to (cr, 16.5, 1.5);
@@ -438,7 +400,7 @@ render (GtkWidget * widget)
       cairo_append_path (cr, path);
       cairo_path_destroy(path);
       cairo_stroke (cr);
-      cairo_set_source_surface (cr, color_button->priv->image_buffer, 0.0,
+      cairo_set_source_surface (cr, priv->image_buffer, 0.0,
                                0.0);
       cairo_paint (cr);
 
@@ -535,9 +497,11 @@ gsm_color_button_drag_data_received (GtkWidget * widget,
                                     guint32 time,
                                     GsmColorButton * color_button)
 {
+  GsmColorButtonPrivate *priv = gsm_color_button_get_instance_private (color_button);
+
   gint length;
   guint16 *dropped;
-  if (!color_button->priv->sensitive) 
+  if (!priv->sensitive) 
     return;
   length = gtk_selection_data_get_length (selection_data);
 
@@ -556,11 +520,11 @@ gsm_color_button_drag_data_received (GtkWidget * widget,
 
   dropped = (guint16 *) gtk_selection_data_get_data (selection_data);
 
-  color_button->priv->color.red = dropped[0];
-  color_button->priv->color.green = dropped[1];
-  color_button->priv->color.blue = dropped[2];
+  priv->color.red = dropped[0];
+  priv->color.green = dropped[1];
+  priv->color.blue = dropped[2];
 
-  gtk_widget_queue_draw (GTK_WIDGET (&color_button->widget));
+  gtk_widget_queue_draw (GTK_WIDGET (color_button));
 
   g_signal_emit (color_button, color_button_signals[COLOR_SET], 0);
 
@@ -592,10 +556,10 @@ static void
 gsm_color_button_drag_begin (GtkWidget * widget,
                             GdkDragContext * context, gpointer data)
 {
-  GsmColorButton *color_button = data;
-  if (!color_button->priv->sensitive) 
+  GsmColorButtonPrivate *priv = gsm_color_button_get_instance_private (GSM_COLOR_BUTTON (data));
+  if (!priv->sensitive) 
     return;
-  set_color_icon (context, &color_button->priv->color);
+  set_color_icon (context, &priv->color);
 }
 
 static void
@@ -605,12 +569,13 @@ gsm_color_button_drag_data_get (GtkWidget * widget,
                                guint info,
                                guint time, GsmColorButton * color_button)
 {
+  GsmColorButtonPrivate *priv = gsm_color_button_get_instance_private (color_button);
   guint16 dropped[4];
-  if (!color_button->priv->sensitive) 
+  if (!priv->sensitive) 
     return;
-  dropped[0] = color_button->priv->color.red;
-  dropped[1] = color_button->priv->color.green;
-  dropped[2] = color_button->priv->color.blue;
+  dropped[0] = priv->color.red;
+  dropped[1] = priv->color.green;
+  dropped[2] = priv->color.blue;
   dropped[3] = 65535;          // This widget doesn't care about alpha
 
   gtk_selection_data_set (selection_data, gtk_selection_data_get_target (selection_data),
@@ -621,18 +586,18 @@ gsm_color_button_drag_data_get (GtkWidget * widget,
 static void
 gsm_color_button_init (GsmColorButton * color_button)
 {
-  color_button->priv = GSM_COLOR_BUTTON_GET_PRIVATE (color_button);
-
-  color_button->priv->color.red = 0;
-  color_button->priv->color.green = 0;
-  color_button->priv->color.blue = 0;
-  color_button->priv->fraction = 0.5;
-  color_button->priv->type = GSMCP_TYPE_CPU;
-  color_button->priv->image_buffer = NULL;
-  color_button->priv->title = g_strdup (_("Pick a Color"));    /* default title */
-  color_button->priv->in_button = FALSE;
-  color_button->priv->button_down = FALSE;
-  color_button->priv->sensitive = TRUE;
+  GsmColorButtonPrivate *priv = gsm_color_button_get_instance_private (color_button);
+
+  priv->color.red = 0;
+  priv->color.green = 0;
+  priv->color.blue = 0;
+  priv->fraction = 0.5;
+  priv->type = GSMCP_TYPE_CPU;
+  priv->image_buffer = NULL;
+  priv->title = g_strdup (_("Pick a Color"));  /* default title */
+  priv->in_button = FALSE;
+  priv->button_down = FALSE;
+  priv->sensitive = TRUE;
   
   gtk_drag_dest_set (GTK_WIDGET (color_button),
                     GTK_DEST_DEFAULT_MOTION |
@@ -663,16 +628,17 @@ static void
 gsm_color_button_finalize (GObject * object)
 {
   GsmColorButton *color_button = GSM_COLOR_BUTTON (object);
+  GsmColorButtonPrivate *priv = gsm_color_button_get_instance_private (color_button);
 
-  if (color_button->priv->cc_dialog != NULL)
-    gtk_widget_destroy (color_button->priv->cc_dialog);
-  color_button->priv->cc_dialog = NULL;
+  if (priv->cc_dialog != NULL)
+    gtk_widget_destroy (priv->cc_dialog);
+  priv->cc_dialog = NULL;
 
-  g_free (color_button->priv->title);
-  color_button->priv->title = NULL;
+  g_free (priv->title);
+  priv->title = NULL;
 
-  cairo_surface_destroy (color_button->priv->image_buffer);
-  color_button->priv->image_buffer = NULL;
+  cairo_surface_destroy (priv->image_buffer);
+  priv->image_buffer = NULL;
 
   G_OBJECT_CLASS (gsm_color_button_parent_class)->finalize (object);
 }
@@ -688,16 +654,17 @@ static void
 dialog_response (GtkWidget * widget, GtkResponseType response, gpointer data)
 {
   GsmColorButton *color_button = GSM_COLOR_BUTTON (data);
+  GsmColorButtonPrivate *priv = gsm_color_button_get_instance_private (color_button);
   GtkColorChooser *color_chooser;
 
   if (response == GTK_RESPONSE_OK) {
-    color_chooser = GTK_COLOR_CHOOSER (color_button->priv->cc_dialog);
+    color_chooser = GTK_COLOR_CHOOSER (priv->cc_dialog);
 
-    gtk_color_chooser_get_rgba (color_chooser, &color_button->priv->color);
+    gtk_color_chooser_get_rgba (color_chooser, &priv->color);
 
-    gtk_widget_hide (color_button->priv->cc_dialog);
+    gtk_widget_hide (priv->cc_dialog);
 
-    gtk_widget_queue_draw (GTK_WIDGET (&color_button->widget));
+    gtk_widget_queue_draw (GTK_WIDGET (color_button));
 
     g_signal_emit (color_button, color_button_signals[COLOR_SET], 0);
 
@@ -706,15 +673,15 @@ 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->cc_dialog);
+    gtk_widget_hide (priv->cc_dialog);
 }
 
 static gboolean
 dialog_destroy (GtkWidget * widget, gpointer data)
 {
-  GsmColorButton *color_button = GSM_COLOR_BUTTON (data);
+  GsmColorButtonPrivate *priv = gsm_color_button_get_instance_private (GSM_COLOR_BUTTON (widget));
 
-  color_button->priv->cc_dialog = NULL;
+  priv->cc_dialog = NULL;
 
   return FALSE;
 }
@@ -723,11 +690,13 @@ static gint
 gsm_color_button_clicked (GtkWidget * widget, GdkEventButton * event)
 {
   GsmColorButton *color_button = GSM_COLOR_BUTTON (widget);
+  GsmColorButtonPrivate *priv = gsm_color_button_get_instance_private (color_button);
+
   /* insensitive color buttons can not be clicked */
-  if (!color_button->priv->sensitive) 
+  if (!priv->sensitive) 
     return 0;
   /* if dialog already exists, make sure it's shown and raised */
-  if (!color_button->priv->cc_dialog)
+  if (!priv->cc_dialog)
     {
       /* Create the dialog and connects its buttons */
       GtkWidget *cc_dialog;
@@ -737,7 +706,7 @@ gsm_color_button_clicked (GtkWidget * widget, GdkEventButton * event)
       if (!gtk_widget_is_toplevel (parent))
         parent = NULL;
 
-      cc_dialog = gtk_color_chooser_dialog_new (color_button->priv->title, GTK_WINDOW (parent));
+      cc_dialog = gtk_color_chooser_dialog_new (priv->title, GTK_WINDOW (parent));
 
       gtk_window_set_modal (GTK_WINDOW (cc_dialog), TRUE);
 
@@ -747,26 +716,27 @@ gsm_color_button_clicked (GtkWidget * widget, GdkEventButton * event)
       g_signal_connect (cc_dialog, "destroy",
                        G_CALLBACK (dialog_destroy), color_button);
 
-      color_button->priv->cc_dialog = cc_dialog;
+      priv->cc_dialog = cc_dialog;
     }
 
-  gtk_color_chooser_set_rgba (GTK_COLOR_CHOOSER (color_button->priv->cc_dialog),
-                              &color_button->priv->color);
+  gtk_color_chooser_set_rgba (GTK_COLOR_CHOOSER (priv->cc_dialog),
+                              &priv->color);
 
-  gtk_window_present (GTK_WINDOW (color_button->priv->cc_dialog));
+  gtk_window_present (GTK_WINDOW (priv->cc_dialog));
   return 0;
 }
 
 static gint
 gsm_color_button_pressed (GtkWidget * widget, GdkEventButton * event)
 {
+  GsmColorButtonPrivate *priv = gsm_color_button_get_instance_private (GSM_COLOR_BUTTON (widget));
+
   if ( (event->type == GDK_BUTTON_PRESS) && (event->button == 1) )
     {
-      GsmColorButton *color_button = GSM_COLOR_BUTTON (widget);
       /* insensitive color buttons can not be clicked */
-      if (!color_button->priv->sensitive) 
+      if (!priv->sensitive) 
         return 0;
-      color_button->priv->button_down = TRUE;
+      priv->button_down = TRUE;
     }
   return 0;
 }
@@ -774,13 +744,13 @@ gsm_color_button_pressed (GtkWidget * widget, GdkEventButton * event)
 static gint
 gsm_color_button_released (GtkWidget * widget, GdkEventButton * event)
 {
-  GsmColorButton *color_button = GSM_COLOR_BUTTON (widget);
+  GsmColorButtonPrivate *priv = gsm_color_button_get_instance_private (GSM_COLOR_BUTTON (widget));
   /* insensitive color buttons can not be clicked */
-  if (!color_button->priv->sensitive) 
+  if (!priv->sensitive) 
     return 0;
-  if (color_button->priv->button_down && color_button->priv->in_button)
+  if (priv->button_down && priv->in_button)
     gsm_color_button_clicked (widget, event);
-  color_button->priv->button_down = FALSE;
+  priv->button_down = FALSE;
   return 0;
 }
 
@@ -788,9 +758,9 @@ gsm_color_button_released (GtkWidget * widget, GdkEventButton * event)
 static gboolean
 gsm_color_button_enter_notify (GtkWidget * widget, GdkEventCrossing * event)
 {
-  GsmColorButton *color_button = GSM_COLOR_BUTTON (widget);
-  color_button->priv->highlight = 1.0;
-  color_button->priv->in_button = TRUE;
+  GsmColorButtonPrivate *priv = gsm_color_button_get_instance_private (GSM_COLOR_BUTTON (widget));
+  priv->highlight = 1.0;
+  priv->in_button = TRUE;
   gtk_widget_queue_draw(widget);
   return FALSE;
 }
@@ -798,9 +768,9 @@ gsm_color_button_enter_notify (GtkWidget * widget, GdkEventCrossing * event)
 static gboolean
 gsm_color_button_leave_notify (GtkWidget * widget, GdkEventCrossing * event)
 {
-  GsmColorButton *color_button = GSM_COLOR_BUTTON (widget);
-  color_button->priv->highlight = 0;
-  color_button->priv->in_button = FALSE;
+  GsmColorButtonPrivate *priv = gsm_color_button_get_instance_private (GSM_COLOR_BUTTON (widget));
+  priv->highlight = 0;
+  priv->in_button = FALSE;
   gtk_widget_queue_draw(widget);
   return FALSE;
 }
@@ -808,19 +778,25 @@ gsm_color_button_leave_notify (GtkWidget * widget, GdkEventCrossing * event)
 guint
 gsm_color_button_get_cbtype (GsmColorButton * color_button)
 {
+  GsmColorButtonPrivate *priv;
+
   g_return_val_if_fail (GSM_IS_COLOR_BUTTON (color_button), 0);
 
-  return color_button->priv->type;
+  priv = gsm_color_button_get_instance_private (color_button);
+  return priv->type;
 }
 
 void
 gsm_color_button_set_cbtype (GsmColorButton * color_button, guint type)
 {
+  GsmColorButtonPrivate *priv;
+
   g_return_if_fail (GSM_IS_COLOR_BUTTON (color_button));
 
-  color_button->priv->type = type;
+  priv = gsm_color_button_get_instance_private (color_button);
+  priv->type = type;
 
-  gtk_widget_queue_draw (GTK_WIDGET (&color_button->widget));
+  gtk_widget_queue_draw (GTK_WIDGET (color_button));
 
   g_object_notify (G_OBJECT (color_button), "type");
 }
@@ -828,20 +804,27 @@ gsm_color_button_set_cbtype (GsmColorButton * color_button, guint type)
 gdouble
 gsm_color_button_get_fraction (GsmColorButton * color_button)
 {
+  GsmColorButtonPrivate *priv;
+
   g_return_val_if_fail (GSM_IS_COLOR_BUTTON (color_button), 0);
 
-  return color_button->priv->fraction;
+  priv = gsm_color_button_get_instance_private (color_button);
+  return priv->fraction;
 }
 
 void
 gsm_color_button_set_fraction (GsmColorButton * color_button,
                               gdouble fraction)
 {
+  GsmColorButtonPrivate *priv;
+
   g_return_if_fail (GSM_IS_COLOR_BUTTON (color_button));
+ 
+  priv = gsm_color_button_get_instance_private (color_button);
 
-  color_button->priv->fraction = fraction;
+  priv->fraction = fraction;
 
-  gtk_widget_queue_draw (GTK_WIDGET (&color_button->widget));
+  gtk_widget_queue_draw (GTK_WIDGET (color_button));
 
   g_object_notify (G_OBJECT (color_button), "fraction");
 }
@@ -849,22 +832,30 @@ gsm_color_button_set_fraction (GsmColorButton * color_button,
 gboolean
 gsm_color_button_get_sensitive (GsmColorButton * color_button)
 {
+  GsmColorButtonPrivate *priv;
+
   g_return_val_if_fail (GSM_IS_COLOR_BUTTON (color_button), 0);
 
-  return color_button->priv->sensitive;
+  priv = gsm_color_button_get_instance_private (color_button);
+
+  return priv->sensitive;
 }
 
 void
 gsm_color_button_set_sensitive (GsmColorButton * color_button,
                               gboolean sensitive)
 {
+  GsmColorButtonPrivate *priv;
+
   g_return_if_fail (GSM_IS_COLOR_BUTTON (color_button));
 
-  color_button->priv->sensitive = sensitive;
+  priv = gsm_color_button_get_instance_private (color_button);
+
+  priv->sensitive = sensitive;
   
   gtk_widget_set_tooltip_text (GTK_WIDGET(color_button), sensitive?_("Click to set graph colors"):"");
   
-  gtk_widget_queue_draw (GTK_WIDGET (&color_button->widget));
+  gtk_widget_queue_draw (GTK_WIDGET (color_button));
   
   g_object_notify (G_OBJECT (color_button), "sensitive");
 }
@@ -872,46 +863,57 @@ gsm_color_button_set_sensitive (GsmColorButton * color_button,
 void
 gsm_color_button_get_color (GsmColorButton * color_button, GdkRGBA * color)
 {
+  GsmColorButtonPrivate *priv;
+
   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;
+  priv = gsm_color_button_get_instance_private (color_button);
+
+  color->red = priv->color.red;
+  color->green = priv->color.green;
+  color->blue = priv->color.blue;
+  color->alpha = priv->color.alpha;
 }
 
 void
 gsm_color_button_set_color (GsmColorButton * color_button,
-                           const GdkRGBA * color)
+                            const GdkRGBA * color)
 {
+  GsmColorButtonPrivate *priv;
+
   g_return_if_fail (GSM_IS_COLOR_BUTTON (color_button));
   g_return_if_fail (color != NULL);
 
-  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;
+  priv = gsm_color_button_get_instance_private (color_button);
+
+  priv->color.red = color->red;
+  priv->color.green = color->green;
+  priv->color.blue = color->blue;
+  priv->color.alpha = color->alpha;
 
-  gtk_widget_queue_draw (GTK_WIDGET (&color_button->widget));  //->priv->draw_area);
+  gtk_widget_queue_draw (GTK_WIDGET (color_button));
 
   g_object_notify (G_OBJECT (color_button), "color");
 }
 
 void
 gsm_color_button_set_title (GsmColorButton * color_button,
-                           const gchar * title)
+                            const gchar * title)
 {
+  GsmColorButtonPrivate *priv;
   gchar *old_title;
 
   g_return_if_fail (GSM_IS_COLOR_BUTTON (color_button));
 
-  old_title = color_button->priv->title;
-  color_button->priv->title = g_strdup (title);
+  priv = gsm_color_button_get_instance_private (color_button);
+
+  old_title = priv->title;
+  priv->title = g_strdup (title);
   g_free (old_title);
 
-  if (color_button->priv->cc_dialog)
-    gtk_window_set_title (GTK_WINDOW (color_button->priv->cc_dialog),
-                         color_button->priv->title);
+  if (priv->cc_dialog)
+    gtk_window_set_title (GTK_WINDOW (priv->cc_dialog),
+                          priv->title);
 
   g_object_notify (G_OBJECT (color_button), "title");
 }
@@ -919,9 +921,12 @@ gsm_color_button_set_title (GsmColorButton * color_button,
 gchar *
 gsm_color_button_get_title (GsmColorButton * color_button)
 {
+  GsmColorButtonPrivate *priv;
+
   g_return_val_if_fail (GSM_IS_COLOR_BUTTON (color_button), NULL);
 
-  return color_button->priv->title;
+  priv = gsm_color_button_get_instance_private (color_button);
+  return priv->title;
 }
 
 static void
diff --git a/src/gsm_color_button.h b/src/gsm_color_button.h
index af9330f..c1a922b 100644
--- a/src/gsm_color_button.h
+++ b/src/gsm_color_button.h
@@ -41,15 +41,10 @@ G_BEGIN_DECLS
 
 typedef struct _GsmColorButton           GsmColorButton;
 typedef struct _GsmColorButtonClass      GsmColorButtonClass;
-typedef struct _GsmColorButtonPrivate    GsmColorButtonPrivate;
 
 struct _GsmColorButton
 {
-    GtkDrawingArea widget;
-
-    /*< private > */
-
-    GsmColorButtonPrivate *priv;
+    GtkDrawingArea parent_instance;
 };
 
 /* Widget types */
@@ -69,7 +64,7 @@ struct _GsmColorButtonClass
     void (*color_set) (GsmColorButton * cp);
 };
 
-GType       gsm_color_button_get_type      (void) G_GNUC_CONST;
+GType       gsm_color_button_get_type      (void);
 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_sensitive (GsmColorButton * color_button, const gboolean sensitive);


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