diff options
author | Tim Mayberry <mojofunk@gmail.com> | 2005-11-26 10:28:55 +0000 |
---|---|---|
committer | Tim Mayberry <mojofunk@gmail.com> | 2005-11-26 10:28:55 +0000 |
commit | f59b4c3c0948934eec12020442aac78d2d004b77 (patch) | |
tree | 3178d6b352bc1fc8c8e2455ce938e33ba53d2db5 /gtk2_ardour/canvas-simplerect.c | |
parent | 0c8284ca6a83312cd5794485519fc278eb4472aa (diff) |
Canvas GObject fixes
git-svn-id: svn://localhost/trunk/ardour2@118 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/canvas-simplerect.c')
-rw-r--r-- | gtk2_ardour/canvas-simplerect.c | 116 |
1 files changed, 80 insertions, 36 deletions
diff --git a/gtk2_ardour/canvas-simplerect.c b/gtk2_ardour/canvas-simplerect.c index 92c05e7f76..49f63603cf 100644 --- a/gtk2_ardour/canvas-simplerect.c +++ b/gtk2_ardour/canvas-simplerect.c @@ -22,43 +22,63 @@ enum { }; -static void gnome_canvas_simplerect_class_init (GnomeCanvasSimpleRectClass *class); -static void gnome_canvas_simplerect_init (GnomeCanvasSimpleRect *simplerect); +static void gnome_canvas_simplerect_class_init (GnomeCanvasSimpleRectClass *class); + +static void gnome_canvas_simplerect_init (GnomeCanvasSimpleRect *simplerect); + +static void gnome_canvas_simplerect_destroy (GtkObject *object); + static void gnome_canvas_simplerect_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec); + static void gnome_canvas_simplerect_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec); -static void gnome_canvas_simplerect_update (GnomeCanvasItem *item, double *affine, ArtSVP *clip_path, int flags); -static void gnome_canvas_simplerect_bounds (GnomeCanvasItem *item, double *x1, double *y1, double *x2, double *y2); -static double gnome_canvas_simplerect_point (GnomeCanvasItem *item, double x, double y, int cx, int cy, GnomeCanvasItem **actual_item); -static void gnome_canvas_simplerect_render (GnomeCanvasItem *item, GnomeCanvasBuf *buf); -static void gnome_canvas_simplerect_draw (GnomeCanvasItem *item, GdkDrawable *drawable, int x, int y, int w, int h); + +static void gnome_canvas_simplerect_update (GnomeCanvasItem *item, + double *affine, + ArtSVP *clip_path, + int flags); + +static void gnome_canvas_simplerect_bounds (GnomeCanvasItem *item, + double *x1, + double *y1, + double *x2, + double *y2); + +static double gnome_canvas_simplerect_point (GnomeCanvasItem *item, double x, double y, int cx, int cy, GnomeCanvasItem **actual_item); + +static void gnome_canvas_simplerect_render (GnomeCanvasItem *item, GnomeCanvasBuf *buf); + +static void gnome_canvas_simplerect_draw (GnomeCanvasItem *item, GdkDrawable *drawable, int x, int y, int w, int h); static GnomeCanvasItemClass *parent_class; -GtkType +GType gnome_canvas_simplerect_get_type (void) { - static GtkType simplerect_type = 0; + static GType simplerect_type; if (!simplerect_type) { - GtkTypeInfo simplerect_info = { - "GnomeCanvasSimpleRect", - sizeof (GnomeCanvasSimpleRect), + static const GTypeInfo object_info = { sizeof (GnomeCanvasSimpleRectClass), - (GtkClassInitFunc) gnome_canvas_simplerect_class_init, - (GtkObjectInitFunc) gnome_canvas_simplerect_init, - NULL, /* reserved_1 */ - NULL, /* reserved_2 */ - (GtkClassInitFunc) NULL + (GBaseInitFunc) NULL, + (GBaseFinalizeFunc) NULL, + (GClassInitFunc) gnome_canvas_simplerect_class_init, + (GClassFinalizeFunc) NULL, + NULL, /* class_data */ + sizeof (GnomeCanvasSimpleRect), + 0, /* n_preallocs */ + (GInstanceInitFunc) gnome_canvas_simplerect_init, + NULL /* value_table */ }; - simplerect_type = gtk_type_unique (gnome_canvas_item_get_type (), &simplerect_info); + simplerect_type = g_type_register_static (GNOME_TYPE_CANVAS_ITEM, "GnomeCanvasSimpleRect", + &object_info, 0); } return simplerect_type; @@ -67,18 +87,18 @@ gnome_canvas_simplerect_get_type (void) static void gnome_canvas_simplerect_class_init (GnomeCanvasSimpleRectClass *class) { - GObjectClass *object_class; + GObjectClass *gobject_class; + GtkObjectClass *object_class; GnomeCanvasItemClass *item_class; - object_class = G_OBJECT_CLASS (class); + gobject_class = (GObjectClass *) class; + object_class = (GtkObjectClass *) class; item_class = (GnomeCanvasItemClass *) class; - parent_class = gtk_type_class (gnome_canvas_item_get_type ()); - - object_class->set_property = gnome_canvas_simplerect_set_property; - object_class->get_property = gnome_canvas_simplerect_get_property; + gobject_class->set_property = gnome_canvas_simplerect_set_property; + gobject_class->get_property = gnome_canvas_simplerect_get_property; - g_object_class_install_property (object_class, + g_object_class_install_property (gobject_class, PROP_X1, g_param_spec_double ("x1", _("x1"), @@ -88,7 +108,7 @@ gnome_canvas_simplerect_class_init (GnomeCanvasSimpleRectClass *class) 0.0, G_PARAM_READWRITE)); - g_object_class_install_property (object_class, + g_object_class_install_property (gobject_class, PROP_Y1, g_param_spec_double ("y1", _("y1"), @@ -99,7 +119,7 @@ gnome_canvas_simplerect_class_init (GnomeCanvasSimpleRectClass *class) G_PARAM_READWRITE)); - g_object_class_install_property (object_class, + g_object_class_install_property (gobject_class, PROP_X2, g_param_spec_double ("x2", _("x2"), @@ -109,7 +129,7 @@ gnome_canvas_simplerect_class_init (GnomeCanvasSimpleRectClass *class) 0.0, G_PARAM_READWRITE)); - g_object_class_install_property (object_class, + g_object_class_install_property (gobject_class, PROP_Y2, g_param_spec_double ("y2", _("y2"), @@ -120,7 +140,7 @@ gnome_canvas_simplerect_class_init (GnomeCanvasSimpleRectClass *class) G_PARAM_READWRITE)); - g_object_class_install_property (object_class, + g_object_class_install_property (gobject_class, PROP_OUTLINE_PIXELS, g_param_spec_uint ("outline_pixels", _("outline pixels"), @@ -131,7 +151,7 @@ gnome_canvas_simplerect_class_init (GnomeCanvasSimpleRectClass *class) G_PARAM_READWRITE)); - g_object_class_install_property (object_class, + g_object_class_install_property (gobject_class, PROP_OUTLINE_WHAT, g_param_spec_uint ("outline_what", _("outline what"), @@ -143,7 +163,7 @@ gnome_canvas_simplerect_class_init (GnomeCanvasSimpleRectClass *class) - g_object_class_install_property (object_class, + g_object_class_install_property (gobject_class, PROP_FILL, g_param_spec_boolean ("fill", _("fill"), @@ -151,7 +171,7 @@ gnome_canvas_simplerect_class_init (GnomeCanvasSimpleRectClass *class) TRUE, G_PARAM_READWRITE)); - g_object_class_install_property (object_class, + g_object_class_install_property (gobject_class, PROP_DRAW, g_param_spec_boolean ("draw", _("draw"), @@ -160,7 +180,7 @@ gnome_canvas_simplerect_class_init (GnomeCanvasSimpleRectClass *class) G_PARAM_READWRITE)); - g_object_class_install_property (object_class, + g_object_class_install_property (gobject_class, PROP_OUTLINE_COLOR_RGBA, g_param_spec_uint ("outline_color_rgba", _("outline color rgba"), @@ -171,7 +191,7 @@ gnome_canvas_simplerect_class_init (GnomeCanvasSimpleRectClass *class) G_PARAM_READWRITE)); - g_object_class_install_property (object_class, + g_object_class_install_property (gobject_class, PROP_FILL_COLOR_RGBA, g_param_spec_uint ("fill_color_rgba", _("fill color rgba"), @@ -180,12 +200,15 @@ gnome_canvas_simplerect_class_init (GnomeCanvasSimpleRectClass *class) G_MAXUINT, 0, G_PARAM_READWRITE)); - + + object_class->destroy = gnome_canvas_simplerect_destroy; + item_class->update = gnome_canvas_simplerect_update; + item_class->draw = gnome_canvas_simplerect_draw; item_class->bounds = gnome_canvas_simplerect_bounds; item_class->point = gnome_canvas_simplerect_point; item_class->render = gnome_canvas_simplerect_render; - item_class->draw = gnome_canvas_simplerect_draw; + } static void @@ -208,6 +231,22 @@ gnome_canvas_simplerect_init (GnomeCanvasSimpleRect *simplerect) } static void +gnome_canvas_simplerect_destroy (GtkObject *object) +{ + GnomeCanvasSimpleRect *rect; + + g_return_if_fail (object != NULL); + g_return_if_fail (GNOME_IS_CANVAS_SIMPLERECT (object)); + + rect = GNOME_CANVAS_SIMPLERECT (object); + + /* remember, destroy can be run multiple times! */ + + if (GTK_OBJECT_CLASS (parent_class)->destroy) + (* GTK_OBJECT_CLASS (parent_class)->destroy) (object); +} + +static void gnome_canvas_simplerect_bounds (GnomeCanvasItem *item, double *x1, double *y1, double *x2, double *y2) { GnomeCanvasSimpleRect *simplerect = GNOME_CANVAS_SIMPLERECT (item); @@ -301,6 +340,8 @@ gnome_canvas_simplerect_set_property (GObject *object, GnomeCanvasSimpleRect *simplerect; int update = FALSE; int bounds_changed = FALSE; + g_return_if_fail (object != NULL); + g_return_if_fail (GNOME_IS_CANVAS_SIMPLERECT (object)); simplerect = GNOME_CANVAS_SIMPLERECT (object); @@ -395,6 +436,9 @@ gnome_canvas_simplerect_get_property (GObject *object, { GnomeCanvasSimpleRect *rect = GNOME_CANVAS_SIMPLERECT (object); + g_return_if_fail (object != NULL); + g_return_if_fail (GNOME_IS_CANVAS_SIMPLERECT (object)); + switch (prop_id) { case PROP_X1: g_value_set_double (value, rect->x1); |