[gnome-system-monitor] Port GsmColorButton to new gobject private API
- From: Stefano Facchini <sfacchini src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-system-monitor] Port GsmColorButton to new gobject private API
- Date: Thu, 8 Aug 2013 14:35:34 +0000 (UTC)
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]