X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fcanvas-ruler.c;h=8be3c89e51a483ed597e6f0c8b457c6100f97aef;hb=76c25a4a4459b8e550c3c687458d04db0beaee77;hp=031e71d4be4ac380be125b9574acb5eb65a2cbfc;hpb=a0663fbd278f4514ba26c4a4c0e2aa5ec2964dd9;p=ardour.git diff --git a/gtk2_ardour/canvas-ruler.c b/gtk2_ardour/canvas-ruler.c index 031e71d4be..8be3c89e51 100644 --- a/gtk2_ardour/canvas-ruler.c +++ b/gtk2_ardour/canvas-ruler.c @@ -6,26 +6,27 @@ #include "rgb_macros.h" enum { - ARG_0, - ARG_X1, - ARG_Y1, - ARG_X2, - ARG_Y2, - ARG_FRAMES_PER_UNIT, - ARG_FILL_COLOR, - ARG_TICK_COLOR + PROP_0, + PROP_X1, + PROP_Y1, + PROP_X2, + PROP_Y2, + PROP_FRAMES_PER_UNIT, + PROP_FILL_COLOR, + PROP_TICK_COLOR }; static void gnome_canvas_ruler_class_init (GnomeCanvasRulerClass *class); static void gnome_canvas_ruler_init (GnomeCanvasRuler *ruler); -static void gnome_canvas_ruler_set_arg (GtkObject *object, - GtkArg *arg, - guint arg_id); -static void gnome_canvas_ruler_get_arg (GtkObject *object, - GtkArg *arg, - guint arg_id); - +static void gnome_canvas_ruler_set_arg (GObject *object, + guint prop_id + const GValue *value, + GParamSpec *pspec); +static void gnome_canvas_ruler_get_arg (GObject *object, + guint prop_id + GValue *value, + GParamSpec *pspec); static void gnome_canvas_ruler_update (GnomeCanvasItem *item, double *affine, ArtSVP *clip_path, int flags); static void gnome_canvas_ruler_bounds (GnomeCanvasItem *item, double *x1, double *y1, double *x2, double *y2); static double gnome_canvas_ruler_point (GnomeCanvasItem *item, double x, double y, int cx, int cy, GnomeCanvasItem **actual_item); @@ -64,22 +65,87 @@ gnome_canvas_ruler_class_init (GnomeCanvasRulerClass *class) GtkObjectClass *object_class; GnomeCanvasItemClass *item_class; - object_class = (GtkObjectClass *) class; + object_class = G_OBJECT_CLASS (class); item_class = (GnomeCanvasItemClass *) class; parent_class = gtk_type_class (gnome_canvas_item_get_type ()); - gtk_object_add_arg_type ("GnomeCanvasRuler::x1", GTK_TYPE_DOUBLE, GTK_ARG_READWRITE, ARG_X1); - gtk_object_add_arg_type ("GnomeCanvasRuler::y1", GTK_TYPE_DOUBLE, GTK_ARG_READWRITE, ARG_Y1); - gtk_object_add_arg_type ("GnomeCanvasRuler::x2", GTK_TYPE_DOUBLE, GTK_ARG_READWRITE, ARG_X2); - gtk_object_add_arg_type ("GnomeCanvasRuler::y2", GTK_TYPE_DOUBLE, GTK_ARG_READWRITE, ARG_Y2); - gtk_object_add_arg_type ("GnomeCanvasRuler::frames_per_unit", GTK_TYPE_LONG, GTK_ARG_READWRITE, ARG_FRAMES_PER_UNIT); - gtk_object_add_arg_type ("GnomeCanvasRuler::fill_color", GTK_TYPE_INT, GTK_ARG_READWRITE, ARG_FILL_COLOR); - gtk_object_add_arg_type ("GnomeCanvasRuler::tick_color", GTK_TYPE_INT, GTK_ARG_READWRITE, ARG_TICK_COLOR); - - object_class->set_arg = gnome_canvas_ruler_set_arg; - object_class->get_arg = gnome_canvas_ruler_get_arg; - + object_class->set_property = gnome_canvas_ruler_set_property; + object_class->get_property = gnome_canvas_ruler_get_property; + + g_object_class_install_property (object_class, + PROP_X1, + g_param_spec_double ("x1", + _("x1"), + _("x coordinate of upper left corner of rect"), + -G_MAXDOUBLE, + G_MAXDOUBLE, + 0.0, + G_PARAM_READWRITE)); + + g_object_class_install_property (object_class, + PROP_Y1, + g_param_spec_double ("y1", + _("y1"), + _("y coordinate of upper left corner of rect "), + -G_MAXDOUBLE, + G_MAXDOUBLE, + 0.0, + G_PARAM_READWRITE)); + + + g_object_class_install_property (object_class, + PROP_X2, + g_param_spec_double ("x2", + _("x2"), + _("x coordinate of lower right corner of rect"), + -G_MAXDOUBLE, + G_MAXDOUBLE, + 0.0, + G_PARAM_READWRITE)); + + g_object_class_install_property (object_class, + PROP_Y2, + g_param_spec_double ("y2", + _("y2"), + _("y coordinate of lower right corner of rect "), + -G_MAXDOUBLE, + G_MAXDOUBLE, + 0.0, + G_PARAM_READWRITE)); + + + g_object_class_install_property (object_class, + PROP_FRAMES_PER_UNIT, + g_param_spec_long ("frames_per_unit", + _("frames_per_unit"), + _("frames_per_unit of ruler"), + -G_MAXLONG, + G_MAXLONG, + 0, + G_PARAM_READWRITE)); + + + g_object_class_install_property (object_class, + PROP_FILL_COLOR, + g_param_spec_uint ("fill_color", + _("fill color"), + _("color of fill"), + 0, + G_MAXINT, + 0, + G_PARAM_READWRITE)); + + + g_object_class_install_property (object_class, + PROP_TICK_COLOR, + g_param_spec_uint ("tick_color", + _("tick color"), + _("color of tick"), + 0, + G_MAXINT, + 0, + G_PARAM_READWRITE)); item_class->update = gnome_canvas_ruler_update; item_class->bounds = gnome_canvas_ruler_bounds; item_class->point = gnome_canvas_ruler_point; @@ -97,9 +163,6 @@ gnome_canvas_ruler_init (GnomeCanvasRuler *ruler) ruler->frames_per_unit = 1; ruler->fill_color = 0; ruler->tick_color = 0; - - // GTK2FIX - //GNOME_CANVAS_ITEM(ruler)->object.flags |= GNOME_CANVAS_ITEM_NO_AUTO_REDRAW; } static void @@ -136,7 +199,10 @@ gnome_canvas_ruler_reset_bounds (GnomeCanvasItem *item) */ static void -gnome_canvas_ruler_set_arg (GtkObject *object, GtkArg *arg, guint arg_id) +gnome_canvas_ruler_set_property (GObject *object, +guint prop_id, + const GValue *value, + GParamSpec *pspec) { GnomeCanvasItem *item; GnomeCanvasRuler *ruler; @@ -149,52 +215,52 @@ gnome_canvas_ruler_set_arg (GtkObject *object, GtkArg *arg, guint arg_id) redraw = FALSE; calc_bounds = FALSE; - switch (arg_id) { - case ARG_X1: - if (ruler->x1 != GTK_VALUE_DOUBLE (*arg)) { - ruler->x1 = GTK_VALUE_DOUBLE (*arg); + switch (prop_id) { + case PROP_X1: + if (ruler->x1 != g_value_get_double (value)) { + ruler->x1 = g_value_get_double (value); calc_bounds = TRUE; } break; - case ARG_Y1: - if (ruler->y1 != GTK_VALUE_DOUBLE (*arg)) { - ruler->y1 = GTK_VALUE_DOUBLE (*arg); + case PROP_Y1: + if (ruler->y1 != g_value_get_double (value)) { + ruler->y1 = g_value_get_double (value); calc_bounds = TRUE; } break; - case ARG_X2: - if (ruler->x2 != GTK_VALUE_DOUBLE (*arg)) { - ruler->x2 = GTK_VALUE_DOUBLE (*arg); + case PROP_X2: + if (ruler->x2 != g_value_get_double (value)) { + ruler->x2 = g_value_get_double (value); calc_bounds = TRUE; } break; - case ARG_Y2: - if (ruler->y2 != GTK_VALUE_DOUBLE (*arg)) { - ruler->y2 = GTK_VALUE_DOUBLE (*arg); + case PROP_Y2: + if (ruler->y2 != g_value_get_double (value)) { + ruler->y2 = g_value_get_double (value); calc_bounds = TRUE; } break; - case ARG_FRAMES_PER_UNIT: - if (ruler->frames_per_unit != GTK_VALUE_LONG(*arg)) { - ruler->frames_per_unit = GTK_VALUE_LONG(*arg); + case PROP_FRAMES_PER_UNIT: + if (ruler->frames_per_unit != g_value_get_long(value)) { + ruler->frames_per_unit = g_value_get_long(value); redraw = TRUE; } break; - case ARG_FILL_COLOR: - if (ruler->fill_color != GTK_VALUE_INT(*arg)) { - ruler->fill_color = GTK_VALUE_INT(*arg); + case PROP_FILL_COLOR: + if (ruler->fill_color != g_value_get_uint(value)) { + ruler->fill_color = g_value_get_uint(value); redraw = TRUE; } break; - case ARG_TICK_COLOR: - if (ruler->tick_color != GTK_VALUE_INT(*arg)) { - ruler->tick_color = GTK_VALUE_INT(*arg); + case PROP_TICK_COLOR: + if (ruler->tick_color != g_value_get_uint(value)) { + ruler->tick_color = g_value_get_uint(value); redraw = TRUE; } break; @@ -214,33 +280,37 @@ gnome_canvas_ruler_set_arg (GtkObject *object, GtkArg *arg, guint arg_id) } static void -gnome_canvas_ruler_get_arg (GtkObject *object, GtkArg *arg, guint arg_id) +gnome_canvas_ruler_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec) + { GnomeCanvasRuler *ruler; ruler = GNOME_CANVAS_RULER (object); - switch (arg_id) { - case ARG_X1: - GTK_VALUE_DOUBLE (*arg) = ruler->x1; + switch (prop_id) { + case PROP_X1: + g_value_set_double (value, ruler->x1); break; - case ARG_Y1: - GTK_VALUE_DOUBLE (*arg) = ruler->y1; + case PROP_Y1: + g_value_set_double (value, ruler->y1); break; - case ARG_X2: - GTK_VALUE_DOUBLE (*arg) = ruler->x2; + case PROP_X2: + g_value_set_double (value, ruler->x2); break; - case ARG_Y2: - GTK_VALUE_DOUBLE (*arg) = ruler->y2; + case PROP_Y2: + g_value_set_double (value, ruler->y2); break; - case ARG_FRAMES_PER_UNIT: - GTK_VALUE_LONG (*arg) = ruler->frames_per_unit; + case PROP_FRAMES_PER_UNIT: + g_value_set_long (value, ruler->frames_per_unit); break; - case ARG_FILL_COLOR: - GTK_VALUE_INT (*arg) = ruler->fill_color; + case PROP_FILL_COLOR: + g_value_set_uint (value, ruler->fill_color); break; - case ARG_TICK_COLOR: - GTK_VALUE_INT (*arg) = ruler->tick_color; + case PROP_TICK_COLOR: + g_value_set_uint (value, ruler->tick_color); break; default: arg->type = GTK_TYPE_INVALID;