diff options
-rw-r--r-- | gtk2_ardour/canvas-simpleline.c | 113 | ||||
-rw-r--r-- | gtk2_ardour/canvas-simpleline.h | 13 | ||||
-rw-r--r-- | gtk2_ardour/canvas-simplerect.c | 116 | ||||
-rw-r--r-- | gtk2_ardour/canvas-simplerect.h | 13 |
4 files changed, 177 insertions, 78 deletions
diff --git a/gtk2_ardour/canvas-simpleline.c b/gtk2_ardour/canvas-simpleline.c index 22e968edd5..e776d46ca7 100644 --- a/gtk2_ardour/canvas-simpleline.c +++ b/gtk2_ardour/canvas-simpleline.c @@ -16,10 +16,14 @@ enum { PROP_COLOR_RGBA }; -static void gnome_canvas_simpleline_class_init (GnomeCanvasSimpleLineClass *class); -static void gnome_canvas_simpleline_init (GnomeCanvasSimpleLine *simpleline); +static void gnome_canvas_simpleline_class_init (GnomeCanvasSimpleLineClass *class); + +static void gnome_canvas_simpleline_init (GnomeCanvasSimpleLine *simpleline); + +static void gnome_canvas_simpleline_destroy (GtkObject *object); + static void gnome_canvas_simpleline_set_property (GObject *object, - guint prop_id, + guint prop_id, const GValue *value, GParamSpec *pspec); static void gnome_canvas_simpleline_get_property (GObject *object, @@ -27,33 +31,58 @@ static void gnome_canvas_simpleline_get_property (GObject *object, GValue *value, GParamSpec *pspec); -static void gnome_canvas_simpleline_update (GnomeCanvasItem *item, double *affine, ArtSVP *clip_path, int flags); -static void gnome_canvas_simpleline_bounds (GnomeCanvasItem *item, double *x1, double *y1, double *x2, double *y2); -static double gnome_canvas_simpleline_point (GnomeCanvasItem *item, double x, double y, int cx, int cy, GnomeCanvasItem **actual_item); -static void gnome_canvas_simpleline_render (GnomeCanvasItem *item, GnomeCanvasBuf *buf); -static void gnome_canvas_simpleline_draw (GnomeCanvasItem *item, GdkDrawable *drawable, int x, int y, int w, int h); +static void gnome_canvas_simpleline_update (GnomeCanvasItem *item, + double *affine, + ArtSVP *clip_path, + int flags); + +static void gnome_canvas_simpleline_bounds (GnomeCanvasItem *item, + double *x1, + double *y1, + double *x2, + double *y2); + +static double gnome_canvas_simpleline_point (GnomeCanvasItem *item, + double x, + double y, + int cx, + int cy, + GnomeCanvasItem **actual_item); + +static void gnome_canvas_simpleline_render (GnomeCanvasItem *item, + GnomeCanvasBuf *buf); + +static void gnome_canvas_simpleline_draw (GnomeCanvasItem *item, + GdkDrawable *drawable, + int x, + int y, + int w, + int h); static GnomeCanvasItemClass *parent_class; -GtkType +GType gnome_canvas_simpleline_get_type (void) { - static GtkType simpleline_type = 0; + static GType simpleline_type; if (!simpleline_type) { - GtkTypeInfo simpleline_info = { - "GnomeCanvasSimpleLine", - sizeof (GnomeCanvasSimpleLine), + static const GTypeInfo object_info = { sizeof (GnomeCanvasSimpleLineClass), - (GtkClassInitFunc) gnome_canvas_simpleline_class_init, - (GtkObjectInitFunc) gnome_canvas_simpleline_init, - NULL, /* reserved_1 */ - NULL, /* reserved_2 */ - (GtkClassInitFunc) NULL + (GBaseInitFunc) NULL, + (GBaseFinalizeFunc) NULL, + (GClassInitFunc) gnome_canvas_simpleline_class_init, + (GClassFinalizeFunc) NULL, + NULL, /* class_data */ + sizeof (GnomeCanvasSimpleLine), + 0, /* n_preallocs */ + (GInstanceInitFunc) gnome_canvas_simpleline_init, + NULL /* value_table */ }; - simpleline_type = gtk_type_unique (gnome_canvas_item_get_type (), &simpleline_info); + simpleline_type = g_type_register_static (GNOME_TYPE_CANVAS_ITEM, "GnomeCanvasSimpleLine", + &object_info, 0); } return simpleline_type; @@ -62,18 +91,20 @@ gnome_canvas_simpleline_get_type (void) static void gnome_canvas_simpleline_class_init (GnomeCanvasSimpleLineClass *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 ()); + parent_class = g_type_class_peek_parent (class); - object_class->set_property = gnome_canvas_simpleline_set_property; - object_class->get_property = gnome_canvas_simpleline_get_property; + gobject_class->set_property = gnome_canvas_simpleline_set_property; + gobject_class->get_property = gnome_canvas_simpleline_get_property; - g_object_class_install_property (object_class, + g_object_class_install_property (gobject_class, PROP_X1, g_param_spec_double ("x1", _("x1"), @@ -83,7 +114,7 @@ gnome_canvas_simpleline_class_init (GnomeCanvasSimpleLineClass *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"), @@ -94,7 +125,7 @@ gnome_canvas_simpleline_class_init (GnomeCanvasSimpleLineClass *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"), @@ -104,7 +135,7 @@ gnome_canvas_simpleline_class_init (GnomeCanvasSimpleLineClass *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"), @@ -113,7 +144,7 @@ gnome_canvas_simpleline_class_init (GnomeCanvasSimpleLineClass *class) G_MAXDOUBLE, 0.0, G_PARAM_READWRITE)); - g_object_class_install_property (object_class, + g_object_class_install_property (gobject_class, PROP_COLOR_RGBA, g_param_spec_uint ("color_rgba", _("color rgba"), @@ -123,6 +154,8 @@ gnome_canvas_simpleline_class_init (GnomeCanvasSimpleLineClass *class) 0, G_PARAM_READWRITE)); + object_class->destroy = gnome_canvas_simpleline_destroy; + item_class->update = gnome_canvas_simpleline_update; item_class->bounds = gnome_canvas_simpleline_bounds; item_class->point = gnome_canvas_simpleline_point; @@ -144,6 +177,20 @@ gnome_canvas_simpleline_init (GnomeCanvasSimpleLine *simpleline) } static void +gnome_canvas_simpleline_destroy (GtkObject *object) +{ + GnomeCanvasSimpleLine *line; + + g_return_if_fail (object != NULL); + g_return_if_fail (GNOME_IS_CANVAS_LINE (object)); + + line = GNOME_CANVAS_SIMPLELINE (object); + + if (GTK_OBJECT_CLASS (parent_class)->destroy) + (* GTK_OBJECT_CLASS (parent_class)->destroy) (object); +} + +static void gnome_canvas_simpleline_bounds_world (GnomeCanvasItem *item, int* ix1, int* iy1, int* ix2, int* iy2) { double x1, x2, y1, y2; @@ -203,6 +250,9 @@ gnome_canvas_simpleline_set_property (GObject *object, int update = FALSE; int bounds_changed = FALSE; + g_return_if_fail (object != NULL); + g_return_if_fail (GNOME_IS_CANVAS_SIMPLELINE (object)); + simpleline = GNOME_CANVAS_SIMPLELINE (object); switch (prop_id) { @@ -255,8 +305,11 @@ gnome_canvas_simpleline_get_property (GObject *object, GValue *value, GParamSpec *pspec) { - GnomeCanvasSimpleLine *line = GNOME_CANVAS_SIMPLELINE (object); + g_return_if_fail (object != NULL); + g_return_if_fail (GNOME_IS_CANVAS_SIMPLELINE (object)); + GnomeCanvasSimpleLine *line = GNOME_CANVAS_SIMPLELINE (object); + switch (prop_id) { case PROP_X1: g_value_set_double (value, line->x1); diff --git a/gtk2_ardour/canvas-simpleline.h b/gtk2_ardour/canvas-simpleline.h index 510eb92133..0839b4c224 100644 --- a/gtk2_ardour/canvas-simpleline.h +++ b/gtk2_ardour/canvas-simpleline.h @@ -31,11 +31,12 @@ G_BEGIN_DECLS /* Wave viewer item for canvas. */ -#define GNOME_CANVAS_TYPE_CANVAS_SIMPLELINE (gnome_canvas_simpleline_get_type ()) -#define GNOME_CANVAS_SIMPLELINE(obj) (GTK_CHECK_CAST ((obj), GNOME_CANVAS_TYPE_CANVAS_SIMPLELINE, GnomeCanvasSimpleLine)) -#define GNOME_CANVAS_SIMPLELINE_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), GNOME_CANVAS_TYPE_CANVAS_SIMPLELINE, GnomeCanvasSimpleLineClass)) -#define GNOME_CANVAS_IS_CANVAS_SIMPLELINE(obj) (GTK_CHECK_TYPE ((obj), GNOME_CANVAS_TYPE_CANVAS_SIMPLELINE)) -#define GNOME_CANVAS_IS_CANVAS_SIMPLELINE_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), GNOME_CANVAS_TYPE_CANVAS_SIMPLELINE)) +#define GNOME_TYPE_CANVAS_SIMPLELINE (gnome_canvas_simpleline_get_type ()) +#define GNOME_CANVAS_SIMPLELINE(obj) (GTK_CHECK_CAST ((obj), GNOME_TYPE_CANVAS_SIMPLELINE, GnomeCanvasSimpleLine)) +#define GNOME_CANVAS_SIMPLELINE_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), GNOME_TYPE_CANVAS_SIMPLELINE, GnomeCanvasSimpleLineClass)) +#define GNOME_IS_CANVAS_SIMPLELINE(obj) (GTK_CHECK_TYPE ((obj), GNOME_TYPE_CANVAS_SIMPLELINE)) +#define GNOME_IS_CANVAS_SIMPLELINE_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), GNOME_TYPE_CANVAS_SIMPLELINE)) +#define GNOME_CANVAS_SIMPLELINE_GET_CLASS(obj) (GTK_CHECK_GET_CLASS ((obj), GNOME_TYPE_CANVAS_SIMPLELINE, GnomeCanvasSimpleLineClass)) typedef struct _GnomeCanvasSimpleLine GnomeCanvasSimpleLine; typedef struct _GnomeCanvasSimpleLineClass GnomeCanvasSimpleLineClass; @@ -58,7 +59,7 @@ struct _GnomeCanvasSimpleLineClass { GnomeCanvasItemClass parent_class; }; -GtkType gnome_canvas_simpleline_get_type (void); +GType gnome_canvas_simpleline_get_type (void) G_GNUC_CONST; G_END_DECLS 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); diff --git a/gtk2_ardour/canvas-simplerect.h b/gtk2_ardour/canvas-simplerect.h index fba27f4284..2e3ec1b7cc 100644 --- a/gtk2_ardour/canvas-simplerect.h +++ b/gtk2_ardour/canvas-simplerect.h @@ -31,11 +31,12 @@ G_BEGIN_DECLS /* Wave viewer item for canvas. */ -#define GNOME_CANVAS_TYPE_CANVAS_SIMPLERECT (gnome_canvas_simplerect_get_type ()) -#define GNOME_CANVAS_SIMPLERECT(obj) (GTK_CHECK_CAST ((obj), GNOME_CANVAS_TYPE_CANVAS_SIMPLERECT, GnomeCanvasSimpleRect)) -#define GNOME_CANVAS_SIMPLERECT_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), GNOME_CANVAS_TYPE_CANVAS_SIMPLERECT, GnomeCanvasSimpleRectClass)) -#define GNOME_CANVAS_IS_CANVAS_SIMPLERECT(obj) (GTK_CHECK_TYPE ((obj), GNOME_CANVAS_TYPE_CANVAS_SIMPLERECT)) -#define GNOME_CANVAS_IS_CANVAS_SIMPLERECT_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), GNOME_CANVAS_TYPE_CANVAS_SIMPLERECT)) +#define GNOME_TYPE_CANVAS_SIMPLERECT (gnome_canvas_simplerect_get_type ()) +#define GNOME_CANVAS_SIMPLERECT(obj) (GTK_CHECK_CAST ((obj), GNOME_TYPE_CANVAS_SIMPLERECT, GnomeCanvasSimpleRect)) +#define GNOME_CANVAS_SIMPLERECT_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), GNOME_TYPE_CANVAS_SIMPLERECT, GnomeCanvasSimpleRectClass)) +#define GNOME_IS_CANVAS_SIMPLERECT(obj) (GTK_CHECK_TYPE ((obj), GNOME_TYPE_CANVAS_SIMPLERECT)) +#define GNOME_IS_CANVAS_SIMPLERECT_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), GNOME_TYPE_CANVAS_SIMPLERECT)) +#define GNOME_CANVAS_SIMPLERECT_GET_CLASS(obj) (GTK_CHECK_GET_CLASS ((obj), GNOME_TYPE_CANVAS_SIMPLERECT, GnomeCanvasSimpleRectClass)) typedef struct _GnomeCanvasSimpleRect GnomeCanvasSimpleRect; typedef struct _GnomeCanvasSimpleRectClass GnomeCanvasSimpleRectClass; @@ -64,7 +65,7 @@ struct _GnomeCanvasSimpleRectClass { GnomeCanvasItemClass parent_class; }; -GtkType gnome_canvas_simplerect_get_type (void); +GType gnome_canvas_simplerect_get_type (void) G_GNUC_CONST; G_END_DECLS |