X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=gtk%2Fgtkruler.c;h=d308ea3e1ba034f67bf4c3cd4ae37fe0969794d4;hb=f35439bfacf90900e2c24f7ae3da173183c79d34;hp=894f8bef328fc9f535402ebea15af2676ad509e7;hpb=c09cc89317d222e54e98d4e2e9f2792de13897ec;p=~andy%2Fgtk diff --git a/gtk/gtkruler.c b/gtk/gtkruler.c index 894f8bef3..d308ea3e1 100644 --- a/gtk/gtkruler.c +++ b/gtk/gtkruler.c @@ -39,8 +39,6 @@ enum { PROP_METRIC }; -static void gtk_ruler_class_init (GtkRulerClass *klass); -static void gtk_ruler_init (GtkRuler *ruler); static void gtk_ruler_realize (GtkWidget *widget); static void gtk_ruler_unrealize (GtkWidget *widget); static void gtk_ruler_size_allocate (GtkWidget *widget, @@ -57,42 +55,14 @@ static void gtk_ruler_get_property (GObject *object, GValue *value, GParamSpec *pspec); -static GtkWidgetClass *parent_class; - static const GtkRulerMetric ruler_metrics[] = { - {"Pixels", "Pi", 1.0, { 1, 2, 5, 10, 25, 50, 100, 250, 500, 1000 }, { 1, 5, 10, 50, 100 }}, - {"Inches", "In", 72.0, { 1, 2, 4, 8, 16, 32, 64, 128, 256, 512 }, { 1, 2, 4, 8, 16 }}, - {"Centimeters", "Cn", 28.35, { 1, 2, 5, 10, 25, 50, 100, 250, 500, 1000 }, { 1, 5, 10, 50, 100 }}, + { "Pixel", "Pi", 1.0, { 1, 2, 5, 10, 25, 50, 100, 250, 500, 1000 }, { 1, 5, 10, 50, 100 }}, + { "Inches", "In", 72.0, { 1, 2, 4, 8, 16, 32, 64, 128, 256, 512 }, { 1, 2, 4, 8, 16 }}, + { "Centimeters", "Cn", 28.35, { 1, 2, 5, 10, 25, 50, 100, 250, 500, 1000 }, { 1, 5, 10, 50, 100 }}, }; - -GType -gtk_ruler_get_type (void) -{ - static GType ruler_type = 0; - - if (!ruler_type) - { - static const GTypeInfo ruler_info = - { - sizeof (GtkRulerClass), - NULL, /* base_init */ - NULL, /* base_finalize */ - (GClassInitFunc) gtk_ruler_class_init, - NULL, /* class_finalize */ - NULL, /* class_data */ - sizeof (GtkRuler), - 0, /* n_preallocs */ - (GInstanceInitFunc) gtk_ruler_init, - }; - - ruler_type = g_type_register_static (GTK_TYPE_WIDGET, g_intern_static_string ("GtkRuler"), - &ruler_info, 0); - } - - return ruler_type; -} +G_DEFINE_TYPE (GtkRuler, gtk_ruler, GTK_TYPE_WIDGET) static void gtk_ruler_class_init (GtkRulerClass *class) @@ -103,8 +73,6 @@ gtk_ruler_class_init (GtkRulerClass *class) gobject_class = G_OBJECT_CLASS (class); widget_class = (GtkWidgetClass*) class; - parent_class = g_type_class_peek_parent (class); - gobject_class->set_property = gtk_ruler_set_property; gobject_class->get_property = gtk_ruler_get_property; @@ -291,6 +259,17 @@ gtk_ruler_get_metric (GtkRuler *ruler) return 0; } +/** + * gtk_ruler_set_range: + * @ruler: the gtkruler + * @lower: the lower limit of the ruler + * @upper: the upper limit of the ruler + * @position: the mark on the ruler + * @max_size: the maximum size of the ruler used when calculating the space to + * leave for the text + * + * This sets the range of the ruler. + */ void gtk_ruler_set_range (GtkRuler *ruler, gdouble lower, @@ -417,13 +396,19 @@ gtk_ruler_unrealize (GtkWidget *widget) GtkRuler *ruler = GTK_RULER (widget); if (ruler->backing_store) - g_object_unref (ruler->backing_store); + { + g_object_unref (ruler->backing_store); + ruler->backing_store = NULL; + } - ruler->backing_store = NULL; - ruler->non_gr_exp_gc = NULL; + if (ruler->non_gr_exp_gc) + { + g_object_unref (ruler->non_gr_exp_gc); + ruler->non_gr_exp_gc = NULL; + } - if (GTK_WIDGET_CLASS (parent_class)->unrealize) - (* GTK_WIDGET_CLASS (parent_class)->unrealize) (widget); + if (GTK_WIDGET_CLASS (gtk_ruler_parent_class)->unrealize) + (* GTK_WIDGET_CLASS (gtk_ruler_parent_class)->unrealize) (widget); } static void