aboutsummaryrefslogtreecommitdiffstats
path: root/widgets/misc/e-canvas-background.c
diff options
context:
space:
mode:
Diffstat (limited to 'widgets/misc/e-canvas-background.c')
-rw-r--r--widgets/misc/e-canvas-background.c219
1 files changed, 124 insertions, 95 deletions
diff --git a/widgets/misc/e-canvas-background.c b/widgets/misc/e-canvas-background.c
index ff09ce0e1d..4ae2be5e77 100644
--- a/widgets/misc/e-canvas-background.c
+++ b/widgets/misc/e-canvas-background.c
@@ -33,6 +33,7 @@
#include "gal/widgets/e-canvas.h"
#include "gal/widgets/e-canvas-utils.h"
#include "gal/util/e-util.h"
+#include "gal/util/e-i18n.h"
#include <string.h>
#define PARENT_OBJECT_TYPE gnome_canvas_item_get_type ()
@@ -55,15 +56,15 @@ struct _ECanvasBackgroundPrivate {
static GnomeCanvasItemClass *parent_class;
enum {
- ARG_0,
- ARG_FILL_COLOR,
- ARG_FILL_COLOR_GDK,
- ARG_FILL_COLOR_RGBA,
- ARG_FILL_STIPPLE,
- ARG_X1,
- ARG_X2,
- ARG_Y1,
- ARG_Y2,
+ PROP_0,
+ PROP_FILL_COLOR,
+ PROP_FILL_COLOR_GDK,
+ PROP_FILL_COLOR_RGBA,
+ PROP_FILL_STIPPLE,
+ PROP_X1,
+ PROP_X2,
+ PROP_Y1,
+ PROP_Y2,
};
static void
@@ -168,7 +169,7 @@ set_stipple (ECanvasBackground *ecb, GdkBitmap *stipple, int use_value)
}
static void
-ecb_destroy (GtkObject *object)
+ecb_dispose (GObject *object)
{
ECanvasBackground *ecb = E_CANVAS_BACKGROUND (object);
@@ -176,12 +177,15 @@ ecb_destroy (GtkObject *object)
gdk_bitmap_unref (ecb->priv->stipple);
ecb->priv->stipple = NULL;
- if (GTK_OBJECT_CLASS (parent_class)->destroy)
- GTK_OBJECT_CLASS (parent_class)->destroy (object);
+ if (G_OBJECT_CLASS (parent_class)->dispose)
+ G_OBJECT_CLASS (parent_class)->dispose (object);
}
static void
-ecb_set_arg (GtkObject *o, GtkArg *arg, guint arg_id)
+ecb_set_property (GObject *object,
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec)
{
GnomeCanvasItem *item;
ECanvasBackground *ecb;
@@ -190,13 +194,13 @@ ecb_set_arg (GtkObject *o, GtkArg *arg, guint arg_id)
GdkColor *pcolor;
gboolean color_changed = FALSE;
- item = GNOME_CANVAS_ITEM (o);
- ecb = E_CANVAS_BACKGROUND (o);
+ item = GNOME_CANVAS_ITEM (object);
+ ecb = E_CANVAS_BACKGROUND (object);
- switch (arg_id){
- case ARG_FILL_COLOR:
- if (GTK_VALUE_STRING (*arg))
- gdk_color_parse (GTK_VALUE_STRING (*arg), &color);
+ switch (prop_id){
+ case PROP_FILL_COLOR:
+ if (g_value_get_string (value))
+ gdk_color_parse (g_value_get_string (value), &color);
ecb->priv->rgba = ((color.red & 0xff00) << 16 |
(color.green & 0xff00) << 8 |
@@ -205,8 +209,8 @@ ecb_set_arg (GtkObject *o, GtkArg *arg, guint arg_id)
color_changed = TRUE;
break;
- case ARG_FILL_COLOR_GDK:
- pcolor = GTK_VALUE_BOXED (*arg);
+ case PROP_FILL_COLOR_GDK:
+ pcolor = g_value_get_pointer (value);
if (pcolor) {
color = *pcolor;
}
@@ -218,29 +222,29 @@ ecb_set_arg (GtkObject *o, GtkArg *arg, guint arg_id)
color_changed = TRUE;
break;
- case ARG_FILL_COLOR_RGBA:
- ecb->priv->rgba = GTK_VALUE_UINT (*arg);
+ case PROP_FILL_COLOR_RGBA:
+ ecb->priv->rgba = g_value_get_uint (value);
color.red = ((ecb->priv->rgba >> 24) & 0xff) * 0x101;
color.green = ((ecb->priv->rgba >> 16) & 0xff) * 0x101;
color.blue = ((ecb->priv->rgba >> 8) & 0xff) * 0x101;
color_changed = TRUE;
break;
- case ARG_FILL_STIPPLE:
- set_stipple (ecb, GTK_VALUE_BOXED (*arg), TRUE);
+ case PROP_FILL_STIPPLE:
+ set_stipple (ecb, g_value_get_object (value), TRUE);
break;
- case ARG_X1:
- ecb->priv->x1 = GTK_VALUE_DOUBLE (*arg);
+ case PROP_X1:
+ ecb->priv->x1 = g_value_get_double (value);
break;
- case ARG_X2:
- ecb->priv->x2 = GTK_VALUE_DOUBLE (*arg);
+ case PROP_X2:
+ ecb->priv->x2 = g_value_get_double (value);
break;
- case ARG_Y1:
- ecb->priv->y1 = GTK_VALUE_DOUBLE (*arg);
+ case PROP_Y1:
+ ecb->priv->y1 = g_value_get_double (value);
break;
- case ARG_Y2:
- ecb->priv->y2 = GTK_VALUE_DOUBLE (*arg);
+ case PROP_Y2:
+ ecb->priv->y2 = g_value_get_double (value);
break;
}
@@ -260,38 +264,41 @@ ecb_set_arg (GtkObject *o, GtkArg *arg, guint arg_id)
}
static void
-ecb_get_arg (GtkObject *o, GtkArg *arg, guint arg_id)
+ecb_get_property (GObject *object,
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec)
{
GnomeCanvasItem *item;
ECanvasBackground *ecb;
- item = GNOME_CANVAS_ITEM (o);
- ecb = E_CANVAS_BACKGROUND (o);
+ item = GNOME_CANVAS_ITEM (object);
+ ecb = E_CANVAS_BACKGROUND (object);
- switch (arg_id){
- case ARG_FILL_COLOR_GDK:
- GTK_VALUE_BOXED (*arg) = gdk_color_copy (&ecb->priv->color);
+ switch (prop_id){
+ case PROP_FILL_COLOR_GDK:
+ g_value_set_pointer (value, gdk_color_copy (&ecb->priv->color));
break;
- case ARG_FILL_COLOR_RGBA:
- GTK_VALUE_UINT (*arg) = ecb->priv->rgba;
+ case PROP_FILL_COLOR_RGBA:
+ g_value_set_uint (value, ecb->priv->rgba);
break;
- case ARG_FILL_STIPPLE:
- GTK_VALUE_BOXED (*arg) = ecb->priv->stipple;
+ case PROP_FILL_STIPPLE:
+ g_value_set_object (value, ecb->priv->stipple);
break;
- case ARG_X1:
- GTK_VALUE_DOUBLE (*arg) = ecb->priv->x1;
+ case PROP_X1:
+ g_value_set_double (value, ecb->priv->x1);
break;
- case ARG_X2:
- GTK_VALUE_DOUBLE (*arg) = ecb->priv->x2;
+ case PROP_X2:
+ g_value_set_double (value, ecb->priv->x2);
break;
- case ARG_Y1:
- GTK_VALUE_DOUBLE (*arg) = ecb->priv->y1;
+ case PROP_Y1:
+ g_value_set_double (value, ecb->priv->y1);
break;
- case ARG_Y2:
- GTK_VALUE_DOUBLE (*arg) = ecb->priv->y2;
+ case PROP_Y2:
+ g_value_set_double (value, ecb->priv->y2);
break;
default:
- arg->type = GTK_TYPE_INVALID;
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
}
}
@@ -403,15 +410,15 @@ ecb_point (GnomeCanvasItem *item, double x, double y, int cx, int cy,
}
static void
-ecb_class_init (GtkObjectClass *object_class)
+ecb_class_init (GObjectClass *object_class)
{
GnomeCanvasItemClass *item_class = (GnomeCanvasItemClass *) object_class;
- parent_class = gtk_type_class (PARENT_OBJECT_TYPE);
+ parent_class = g_type_class_ref (PARENT_OBJECT_TYPE);
- object_class->destroy = ecb_destroy;
- object_class->set_arg = ecb_set_arg;
- object_class->get_arg = ecb_get_arg;
+ object_class->dispose = ecb_dispose;
+ object_class->set_property = ecb_set_property;
+ object_class->get_property = ecb_get_property;
item_class->update = ecb_update;
item_class->realize = ecb_realize;
@@ -419,43 +426,65 @@ ecb_class_init (GtkObjectClass *object_class)
item_class->draw = ecb_draw;
item_class->point = ecb_point;
- gtk_object_add_arg_type ("ECanvasBackground::fill_color", GTK_TYPE_STRING,
- GTK_ARG_WRITABLE, ARG_FILL_COLOR);
- gtk_object_add_arg_type ("ECanvasBackground::fill_color_gdk", GDK_TYPE_COLOR,
- GTK_ARG_READWRITE, ARG_FILL_COLOR_GDK);
- gtk_object_add_arg_type ("ECanvasBackground::fill_color_rgba", GTK_TYPE_UINT,
- GTK_ARG_READWRITE, ARG_FILL_COLOR_RGBA);
- gtk_object_add_arg_type ("ECanvasBackground::fill_stipple", GDK_TYPE_WINDOW,
- GTK_ARG_READWRITE, ARG_FILL_STIPPLE);
- gtk_object_add_arg_type ("ECanvasBackground::x1", GTK_TYPE_DOUBLE,
- GTK_ARG_READWRITE, ARG_X1);
- gtk_object_add_arg_type ("ECanvasBackground::x2", GTK_TYPE_DOUBLE,
- GTK_ARG_READWRITE, ARG_X2);
- gtk_object_add_arg_type ("ECanvasBackground::y1", GTK_TYPE_DOUBLE,
- GTK_ARG_READWRITE, ARG_Y1);
- gtk_object_add_arg_type ("ECanvasBackground::y2", GTK_TYPE_DOUBLE,
- GTK_ARG_READWRITE, ARG_Y2);
+ g_object_class_install_property (object_class, PROP_FILL_COLOR,
+ g_param_spec_string ("fill_color",
+ _( "Fill color" ),
+ _( "Fill color" ),
+ NULL,
+ G_PARAM_READWRITE));
+
+ g_object_class_install_property (object_class, PROP_FILL_COLOR_GDK,
+ g_param_spec_pointer ("fill_color_gdk",
+ _( "GDK fill color" ),
+ _( "GDK fill color" ),
+ G_PARAM_READWRITE));
+
+ g_object_class_install_property (object_class, PROP_FILL_COLOR_RGBA,
+ g_param_spec_uint ("fill_color_rgba",
+ _( "GDK fill color" ),
+ _( "GDK fill color" ),
+ 0, G_MAXUINT, 0,
+ G_PARAM_READWRITE));
+
+ g_object_class_install_property (object_class, PROP_FILL_STIPPLE,
+ g_param_spec_object ("fill_stipple",
+ _( "Fill stipple" ),
+ _( "FIll stipple" ),
+ GDK_TYPE_WINDOW,
+ G_PARAM_READWRITE));
+
+ g_object_class_install_property (object_class, PROP_X1,
+ g_param_spec_double ("x1",
+ _( "X1" ),
+ _( "X1" ),
+ 0.0, G_MAXDOUBLE, 0.0,
+ G_PARAM_READWRITE));
+
+ g_object_class_install_property (object_class, PROP_X2,
+ g_param_spec_double ("x2",
+ _( "X2" ),
+ _( "X2" ),
+ 0.0, G_MAXDOUBLE, 0.0,
+ G_PARAM_READWRITE));
+
+ g_object_class_install_property (object_class, PROP_Y1,
+ g_param_spec_double ("y1",
+ _( "Y1" ),
+ _( "Y1" ),
+ 0.0, G_MAXDOUBLE, 0.0,
+ G_PARAM_READWRITE));
+
+ g_object_class_install_property (object_class, PROP_Y2,
+ g_param_spec_double ("y2",
+ _( "Y2" ),
+ _( "Y2" ),
+ 0.0, G_MAXDOUBLE, 0.0,
+ G_PARAM_READWRITE));
}
-GtkType
-e_canvas_background_get_type (void)
-{
- static GtkType type = 0;
-
- if (!type){
- GtkTypeInfo info = {
- "ECanvasBackground",
- sizeof (ECanvasBackground),
- sizeof (ECanvasBackgroundClass),
- (GtkClassInitFunc) ecb_class_init,
- (GtkObjectInitFunc) ecb_init,
- NULL, /* reserved 1 */
- NULL, /* reserved 2 */
- (GtkClassInitFunc) NULL
- };
-
- type = gtk_type_unique (PARENT_OBJECT_TYPE, &info);
- }
-
- return type;
-}
+E_MAKE_TYPE (e_canvas_background,
+ "ECanvasBackground",
+ ECanvasBackground,
+ ecb_class_init,
+ ecb_init,
+ PARENT_OBJECT_TYPE)