diff options
author | Benjamin Otte <otte@redhat.com> | 2010-11-24 16:44:16 +0100 |
---|---|---|
committer | Benjamin Otte <otte@redhat.com> | 2010-11-24 16:56:10 +0100 |
commit | e0fb7a86e59278dccd7c276c754f9e8b7fdab0d5 (patch) | |
tree | b08fc00a7ffc11df0568968bdbf1f1bfc9d2f69d | |
parent | c5e25b1532535506c9a5d2df126c5e0aa518d1e5 (diff) | |
download | gtk+-e0fb7a86e59278dccd7c276c754f9e8b7fdab0d5.tar.gz |
gtk: Remove GtkRuler
It is really bad code, mostly unused and no one stepped up to fix it.
Note that Gtk developers do not object to a ruler widget in priciple,
just to the current implementation. If someone wants to propose a sane
version, please don't hesitate.
https://bugzilla.gnome.org/show_bug.cgi?id=613942
-rw-r--r-- | docs/reference/gtk/gtk3-sections.txt | 55 | ||||
-rw-r--r-- | docs/reference/gtk/tmpl/gtkenums.sgml | 9 | ||||
-rw-r--r-- | gtk/Makefile.am | 6 | ||||
-rw-r--r-- | gtk/gtk.h | 3 | ||||
-rw-r--r-- | gtk/gtk.symbols | 10 | ||||
-rw-r--r-- | gtk/gtkenums.h | 7 | ||||
-rw-r--r-- | gtk/gtkhruler.c | 51 | ||||
-rw-r--r-- | gtk/gtkhruler.h | 80 | ||||
-rw-r--r-- | gtk/gtkruler.c | 959 | ||||
-rw-r--r-- | gtk/gtkruler.h | 120 | ||||
-rw-r--r-- | gtk/gtkvruler.c | 80 | ||||
-rw-r--r-- | gtk/gtkvruler.h | 80 | ||||
-rw-r--r-- | gtk/makefile.msc.in | 6 | ||||
-rw-r--r-- | gtk/tests/builder.c | 2 | ||||
-rw-r--r-- | tests/testgtk.c | 69 |
15 files changed, 0 insertions, 1537 deletions
diff --git a/docs/reference/gtk/gtk3-sections.txt b/docs/reference/gtk/gtk3-sections.txt index b7e98ae254..cd11a88160 100644 --- a/docs/reference/gtk/gtk3-sections.txt +++ b/docs/reference/gtk/gtk3-sections.txt @@ -1559,22 +1559,6 @@ gtk_hpaned_get_type </SECTION> <SECTION> -<FILE>gtkhruler</FILE> -<TITLE>GtkHRuler</TITLE> -GtkHRuler -gtk_hruler_new -<SUBSECTION Standard> -GTK_HRULER -GTK_IS_HRULER -GTK_TYPE_HRULER -GTK_HRULER_CLASS -GTK_IS_HRULER_CLASS -GTK_HRULER_GET_CLASS -<SUBSECTION Private> -gtk_hruler_get_type -</SECTION> - -<SECTION> <FILE>gtkhscale</FILE> <TITLE>GtkHScale</TITLE> GtkHScale @@ -2712,28 +2696,6 @@ gtk_recent_action_get_type </SECTION> <SECTION> -<FILE>gtkruler</FILE> -<TITLE>GtkRuler</TITLE> -GtkRuler -GtkRulerMetric -gtk_ruler_new -gtk_ruler_set_metric -gtk_ruler_set_range -gtk_ruler_get_metric -gtk_ruler_get_range -<SUBSECTION Standard> -GTK_RULER -GTK_IS_RULER -GTK_TYPE_RULER -GTK_RULER_CLASS -GTK_IS_RULER_CLASS -GTK_RULER_GET_CLASS -<SUBSECTION Private> -GtkRulerPrivate -gtk_ruler_get_type -</SECTION> - -<SECTION> <FILE>gtkscale</FILE> <TITLE>GtkScale</TITLE> GtkScale @@ -4747,22 +4709,6 @@ GtkPanedPrivate </SECTION> <SECTION> -<FILE>gtkvruler</FILE> -<TITLE>GtkVRuler</TITLE> -GtkVRuler -gtk_vruler_new -<SUBSECTION Standard> -GTK_VRULER -GTK_IS_VRULER -GTK_TYPE_VRULER -GTK_VRULER_CLASS -GTK_IS_VRULER_CLASS -GTK_VRULER_GET_CLASS -<SUBSECTION Private> -gtk_vruler_get_type -</SECTION> - -<SECTION> <FILE>gtkvscale</FILE> <TITLE>GtkVScale</TITLE> GtkVScale @@ -5589,7 +5535,6 @@ GtkExpanderStyle GtkIMPreeditStyle GtkIMStatusStyle GtkJustification -GtkMetricType GtkMovementStep GtkOrientation GtkPackType diff --git a/docs/reference/gtk/tmpl/gtkenums.sgml b/docs/reference/gtk/tmpl/gtkenums.sgml index e98cbaf056..90c5817326 100644 --- a/docs/reference/gtk/tmpl/gtkenums.sgml +++ b/docs/reference/gtk/tmpl/gtkenums.sgml @@ -155,15 +155,6 @@ Used for justifying the text inside a #GtkLabel widget. (See also @GTK_JUSTIFY_CENTER: The text is placed in the center of the label. @GTK_JUSTIFY_FILL: The text is placed is distributed across the label. -<!-- ##### ENUM GtkMetricType ##### --> -<para> -Used to indicate which metric is used by a #GtkRuler. -</para> - -@GTK_PIXELS: Pixels. -@GTK_INCHES: Inches. -@GTK_CENTIMETERS: Centimeters. - <!-- ##### ENUM GtkMovementStep ##### --> <para> diff --git a/gtk/Makefile.am b/gtk/Makefile.am index 28ca552b49..b6a92a982d 100644 --- a/gtk/Makefile.am +++ b/gtk/Makefile.am @@ -214,7 +214,6 @@ gtk_public_h_sources = \ gtkhbbox.h \ gtkhbox.h \ gtkhpaned.h \ - gtkhruler.h \ gtkhscale.h \ gtkhscrollbar.h \ gtkhseparator.h \ @@ -269,7 +268,6 @@ gtk_public_h_sources = \ gtkrecentchooserwidget.h \ gtkrecentfilter.h \ gtkrecentmanager.h \ - gtkruler.h \ gtkscale.h \ gtkscalebutton.h \ gtkscrollable.h \ @@ -328,7 +326,6 @@ gtk_public_h_sources = \ gtkviewport.h \ gtkvolumebutton.h \ gtkvpaned.h \ - gtkvruler.h \ gtkvscale.h \ gtkvscrollbar.h \ gtkvseparator.h \ @@ -479,7 +476,6 @@ gtk_base_c_sources = \ gtkhbbox.c \ gtkhbox.c \ gtkhpaned.c \ - gtkhruler.c \ gtkhscale.c \ gtkhscrollbar.c \ gtkhseparator.c \ @@ -545,7 +541,6 @@ gtk_base_c_sources = \ gtkrecentchooser.c \ gtkrecentfilter.c \ gtkrecentmanager.c \ - gtkruler.c \ gtkscale.c \ gtkscalebutton.c \ gtkscrollable.c \ @@ -613,7 +608,6 @@ gtk_base_c_sources = \ gtkvolumebutton.c \ gtkviewport.c \ gtkvpaned.c \ - gtkvruler.c \ gtkvscale.c \ gtkvscrollbar.c \ gtkvseparator.c \ @@ -98,7 +98,6 @@ #include <gtk/gtkhbbox.h> #include <gtk/gtkhbox.h> #include <gtk/gtkhpaned.h> -#include <gtk/gtkhruler.h> #include <gtk/gtkhscale.h> #include <gtk/gtkhscrollbar.h> #include <gtk/gtkhseparator.h> @@ -152,7 +151,6 @@ #include <gtk/gtkrecentchooserwidget.h> #include <gtk/gtkrecentfilter.h> #include <gtk/gtkrecentmanager.h> -#include <gtk/gtkruler.h> #include <gtk/gtkscale.h> #include <gtk/gtkscalebutton.h> #include <gtk/gtkscrollable.h> @@ -211,7 +209,6 @@ #include <gtk/gtkviewport.h> #include <gtk/gtkvolumebutton.h> #include <gtk/gtkvpaned.h> -#include <gtk/gtkvruler.h> #include <gtk/gtkvscale.h> #include <gtk/gtkvscrollbar.h> #include <gtk/gtkvseparator.h> diff --git a/gtk/gtk.symbols b/gtk/gtk.symbols index d649119afe..8188e30e02 100644 --- a/gtk/gtk.symbols +++ b/gtk/gtk.symbols @@ -964,8 +964,6 @@ gtk_hbutton_box_get_type G_GNUC_CONST gtk_hbutton_box_new gtk_hpaned_get_type G_GNUC_CONST gtk_hpaned_new -gtk_hruler_get_type G_GNUC_CONST -gtk_hruler_new gtk_hscale_get_type G_GNUC_CONST gtk_hscale_new gtk_hscale_new_with_range @@ -2029,12 +2027,6 @@ gtk_requisition_new G_GNUC_MALLOC gtk_resize_mode_get_type G_GNUC_CONST gtk_response_type_get_type G_GNUC_CONST gtk_rgb_to_hsv -gtk_ruler_get_metric -gtk_ruler_get_range -gtk_ruler_get_type G_GNUC_CONST -gtk_ruler_new -gtk_ruler_set_metric -gtk_ruler_set_range gtk_scale_add_mark gtk_scale_button_get_adjustment gtk_scale_button_get_minus_button @@ -3113,8 +3105,6 @@ gtk_volume_button_get_type G_GNUC_CONST gtk_volume_button_new gtk_vpaned_get_type G_GNUC_CONST gtk_vpaned_new -gtk_vruler_get_type G_GNUC_CONST -gtk_vruler_new gtk_vscale_get_type G_GNUC_CONST gtk_vscale_new gtk_vscale_new_with_range diff --git a/gtk/gtkenums.h b/gtk/gtkenums.h index 9fd47d7052..9dbab6dff1 100644 --- a/gtk/gtkenums.h +++ b/gtk/gtkenums.h @@ -208,13 +208,6 @@ typedef enum GTK_MESSAGE_OTHER } GtkMessageType; -typedef enum -{ - GTK_PIXELS, - GTK_INCHES, - GTK_CENTIMETERS -} GtkMetricType; - /** * GtkMovementStep: * @GTK_MOVEMENT_LOGICAL_POSITIONS: Move forward or back by graphemes diff --git a/gtk/gtkhruler.c b/gtk/gtkhruler.c deleted file mode 100644 index c8893b160b..0000000000 --- a/gtk/gtkhruler.c +++ /dev/null @@ -1,51 +0,0 @@ -/* GTK - The GIMP Toolkit - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the GTK+ Team and others 1997-2000. See the AUTHORS - * file for a list of people on the GTK+ Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GTK+ at ftp://ftp.gtk.org/pub/gtk/. - */ - -#include "config.h" - -#include "gtkhruler.h" -#include "gtkorientable.h" - - -G_DEFINE_TYPE (GtkHRuler, gtk_hruler, GTK_TYPE_RULER) - -static void -gtk_hruler_class_init (GtkHRulerClass *klass) -{ -} - -static void -gtk_hruler_init (GtkHRuler *hruler) -{ - gtk_orientable_set_orientation (GTK_ORIENTABLE (hruler), - GTK_ORIENTATION_HORIZONTAL); -} - -GtkWidget * -gtk_hruler_new (void) -{ - return g_object_new (GTK_TYPE_HRULER, NULL); -} diff --git a/gtk/gtkhruler.h b/gtk/gtkhruler.h deleted file mode 100644 index d2c876e3f4..0000000000 --- a/gtk/gtkhruler.h +++ /dev/null @@ -1,80 +0,0 @@ -/* GTK - The GIMP Toolkit - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the GTK+ Team and others 1997-2000. See the AUTHORS - * file for a list of people on the GTK+ Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GTK+ at ftp://ftp.gtk.org/pub/gtk/. - */ - -/* - * NOTE this widget is considered too specialized/little-used for - * GTK+, and will in the future be moved to some other package. If - * your application needs this widget, feel free to use it, as the - * widget does work and is useful in some applications; it's just not - * of general interest. However, we are not accepting new features for - * the widget, and it will eventually move out of the GTK+ - * distribution. - */ - -#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION) -#error "Only <gtk/gtk.h> can be included directly." -#endif - -#ifndef __GTK_HRULER_H__ -#define __GTK_HRULER_H__ - - -#include <gtk/gtkruler.h> - - -G_BEGIN_DECLS - - -#define GTK_TYPE_HRULER (gtk_hruler_get_type ()) -#define GTK_HRULER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_HRULER, GtkHRuler)) -#define GTK_HRULER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_HRULER, GtkHRulerClass)) -#define GTK_IS_HRULER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_HRULER)) -#define GTK_IS_HRULER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_HRULER)) -#define GTK_HRULER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_HRULER, GtkHRulerClass)) - - -typedef struct _GtkHRuler GtkHRuler; -typedef struct _GtkHRulerClass GtkHRulerClass; - -struct _GtkHRuler -{ - GtkRuler ruler; -}; - -struct _GtkHRulerClass -{ - GtkRulerClass parent_class; -}; - - -GType gtk_hruler_get_type (void) G_GNUC_CONST; -GtkWidget* gtk_hruler_new (void); - - -G_END_DECLS - - -#endif /* __GTK_HRULER_H__ */ diff --git a/gtk/gtkruler.c b/gtk/gtkruler.c deleted file mode 100644 index a0c5dfe461..0000000000 --- a/gtk/gtkruler.c +++ /dev/null @@ -1,959 +0,0 @@ -/* GTK - The GIMP Toolkit - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the GTK+ Team and others 1997-2000. See the AUTHORS - * file for a list of people on the GTK+ Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GTK+ at ftp://ftp.gtk.org/pub/gtk/. - */ - -#include "config.h" - -#include <math.h> -#include <string.h> - -#include "gtkorientable.h" -#include "gtkruler.h" -#include "gtktypeutils.h" -#include "gtkprivate.h" -#include "gtkintl.h" - -#define RULER_WIDTH 14 -#define MINIMUM_INCR 5 -#define MAXIMUM_SUBDIVIDE 5 -#define MAXIMUM_SCALES 10 - -#define ROUND(x) ((int) ((x) + 0.5)) - -struct _GtkRulerPrivate -{ - GtkOrientation orientation; - GtkRulerMetric *metric; - - cairo_surface_t *backing_store; - - gint slider_size; - gint xsrc; - gint ysrc; - - gdouble lower; /* The upper limit of the ruler (in points) */ - gdouble max_size; /* The maximum size of the ruler */ - gdouble position; /* The position of the mark on the ruler */ - gdouble upper; /* The lower limit of the ruler */ -}; - -enum { - PROP_0, - PROP_ORIENTATION, - PROP_LOWER, - PROP_UPPER, - PROP_POSITION, - PROP_MAX_SIZE, - PROP_METRIC -}; - - -static void gtk_ruler_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec); -static void gtk_ruler_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec); -static void gtk_ruler_realize (GtkWidget *widget); -static void gtk_ruler_unrealize (GtkWidget *widget); -static void gtk_ruler_get_preferred_width - (GtkWidget *widget, - gint *minimum, - gint *natural); -static void gtk_ruler_get_preferred_height - (GtkWidget *widget, - gint *minimum, - gint *natural); -static void gtk_ruler_size_allocate (GtkWidget *widget, - GtkAllocation *allocation); -static gboolean gtk_ruler_motion_notify (GtkWidget *widget, - GdkEventMotion *event); -static gboolean gtk_ruler_draw (GtkWidget *widget, - cairo_t *cr); -static void gtk_ruler_make_pixmap (GtkRuler *ruler); -static void gtk_ruler_draw_ticks (GtkRuler *ruler); -static void gtk_ruler_real_draw_ticks (GtkRuler *ruler, - cairo_t *cr); -static void gtk_ruler_real_draw_pos (GtkRuler *ruler, - cairo_t *cr); - - -static const GtkRulerMetric ruler_metrics[] = -{ - { "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 }}, -}; - - -G_DEFINE_TYPE_WITH_CODE (GtkRuler, gtk_ruler, GTK_TYPE_WIDGET, - G_IMPLEMENT_INTERFACE (GTK_TYPE_ORIENTABLE, - NULL)) - - -static void -gtk_ruler_class_init (GtkRulerClass *class) -{ - GObjectClass *gobject_class = G_OBJECT_CLASS (class); - GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (class); - - gobject_class->set_property = gtk_ruler_set_property; - gobject_class->get_property = gtk_ruler_get_property; - - widget_class->realize = gtk_ruler_realize; - widget_class->unrealize = gtk_ruler_unrealize; - widget_class->get_preferred_width = gtk_ruler_get_preferred_width; - widget_class->get_preferred_height = gtk_ruler_get_preferred_height; - widget_class->size_allocate = gtk_ruler_size_allocate; - widget_class->motion_notify_event = gtk_ruler_motion_notify; - widget_class->draw = gtk_ruler_draw; - - class->draw_ticks = gtk_ruler_real_draw_ticks; - class->draw_pos = gtk_ruler_real_draw_pos; - - g_object_class_override_property (gobject_class, PROP_ORIENTATION, "orientation"); - - g_object_class_install_property (gobject_class, - PROP_LOWER, - g_param_spec_double ("lower", - P_("Lower"), - P_("Lower limit of ruler"), - -G_MAXDOUBLE, - G_MAXDOUBLE, - 0.0, - GTK_PARAM_READWRITE)); - - g_object_class_install_property (gobject_class, - PROP_UPPER, - g_param_spec_double ("upper", - P_("Upper"), - P_("Upper limit of ruler"), - -G_MAXDOUBLE, - G_MAXDOUBLE, - 0.0, - GTK_PARAM_READWRITE)); - - g_object_class_install_property (gobject_class, - PROP_POSITION, - g_param_spec_double ("position", - P_("Position"), - P_("Position of mark on the ruler"), - -G_MAXDOUBLE, - G_MAXDOUBLE, - 0.0, - GTK_PARAM_READWRITE)); - - g_object_class_install_property (gobject_class, - PROP_MAX_SIZE, - g_param_spec_double ("max-size", - P_("Max Size"), - P_("Maximum size of the ruler"), - -G_MAXDOUBLE, - G_MAXDOUBLE, - 0.0, - GTK_PARAM_READWRITE)); - /** - * GtkRuler:metric: - * - * The metric used for the ruler. - * - * Since: 2.8 - */ - g_object_class_install_property (gobject_class, - PROP_METRIC, - g_param_spec_enum ("metric", - P_("Metric"), - P_("The metric used for the ruler"), - GTK_TYPE_METRIC_TYPE, - GTK_PIXELS, - GTK_PARAM_READWRITE)); - - g_type_class_add_private (gobject_class, sizeof (GtkRulerPrivate)); -} - -static void -gtk_ruler_init (GtkRuler *ruler) -{ - GtkRulerPrivate *priv; - - ruler->priv = G_TYPE_INSTANCE_GET_PRIVATE (ruler, - GTK_TYPE_RULER, - GtkRulerPrivate); - priv = ruler->priv; - - priv->orientation = GTK_ORIENTATION_HORIZONTAL; - - priv->backing_store = NULL; - priv->xsrc = 0; - priv->ysrc = 0; - priv->slider_size = 0; - priv->lower = 0; - priv->upper = 0; - priv->position = 0; - priv->max_size = 0; - - gtk_ruler_set_metric (ruler, GTK_PIXELS); -} - -static void -gtk_ruler_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec) -{ - GtkRuler *ruler = GTK_RULER (object); - GtkRulerPrivate *priv = ruler->priv; - - switch (prop_id) - { - case PROP_ORIENTATION: - priv->orientation = g_value_get_enum (value); - gtk_widget_queue_resize (GTK_WIDGET (ruler)); - break; - case PROP_LOWER: - gtk_ruler_set_range (ruler, g_value_get_double (value), priv->upper, - priv->position, priv->max_size); - break; - case PROP_UPPER: - gtk_ruler_set_range (ruler, priv->lower, g_value_get_double (value), - priv->position, priv->max_size); - break; - case PROP_POSITION: - gtk_ruler_set_range (ruler, priv->lower, priv->upper, - g_value_get_double (value), priv->max_size); - break; - case PROP_MAX_SIZE: - gtk_ruler_set_range (ruler, priv->lower, priv->upper, - priv->position, g_value_get_double (value)); - break; - case PROP_METRIC: - gtk_ruler_set_metric (ruler, g_value_get_enum (value)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } -} - -static void -gtk_ruler_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec) -{ - GtkRuler *ruler = GTK_RULER (object); - GtkRulerPrivate *priv = ruler->priv; - - switch (prop_id) - { - case PROP_ORIENTATION: - g_value_set_enum (value, priv->orientation); - break; - case PROP_LOWER: - g_value_set_double (value, priv->lower); - break; - case PROP_UPPER: - g_value_set_double (value, priv->upper); - break; - case PROP_POSITION: - g_value_set_double (value, priv->position); - break; - case PROP_MAX_SIZE: - g_value_set_double (value, priv->max_size); - break; - case PROP_METRIC: - g_value_set_enum (value, gtk_ruler_get_metric (ruler)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } -} - -/** - * gtk_ruler_new: - * @orientation: the ruler's orientation. - * - * Creates a new #GtkRuler with the given orientation. - * - * Return value: a new #GtkRuler. - * - * Since: 3.0 - **/ -GtkWidget * -gtk_ruler_new (GtkOrientation orientation) -{ - return g_object_new (GTK_TYPE_RULER, - "orientation", orientation, - NULL); -} - -/** - * gtk_ruler_invalidate_ticks: - * @ruler: the ruler to invalidate - * - * For performance reasons, #GtkRuler keeps a backbuffer containing the - * prerendered contents of the ticks. To cause a repaint this buffer, - * call this function instead of gtk_widget_queue_draw(). - **/ -static void -gtk_ruler_invalidate_ticks (GtkRuler *ruler) -{ - g_return_if_fail (GTK_IS_RULER (ruler)); - - if (ruler->priv->backing_store == NULL) - return; - - gtk_ruler_draw_ticks (ruler); - gtk_widget_queue_draw (GTK_WIDGET (ruler)); -} - -void -gtk_ruler_set_metric (GtkRuler *ruler, - GtkMetricType metric) -{ - GtkRulerPrivate *priv; - - g_return_if_fail (GTK_IS_RULER (ruler)); - - priv = ruler->priv; - - priv->metric = (GtkRulerMetric *) &ruler_metrics[metric]; - - g_object_notify (G_OBJECT (ruler), "metric"); - - gtk_ruler_invalidate_ticks (ruler); -} - -/** - * gtk_ruler_get_metric: - * @ruler: a #GtkRuler - * - * Gets the units used for a #GtkRuler. See gtk_ruler_set_metric(). - * - * Return value: the units currently used for @ruler - **/ -GtkMetricType -gtk_ruler_get_metric (GtkRuler *ruler) -{ - GtkRulerPrivate *priv; - gint i; - - g_return_val_if_fail (GTK_IS_RULER (ruler), 0); - - priv = ruler->priv; - - for (i = 0; i < G_N_ELEMENTS (ruler_metrics); i++) - if (priv->metric == &ruler_metrics[i]) - return i; - - g_assert_not_reached (); - - 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, - gdouble upper, - gdouble position, - gdouble max_size) -{ - GtkRulerPrivate *priv; - - g_return_if_fail (GTK_IS_RULER (ruler)); - - priv = ruler->priv; - - g_object_freeze_notify (G_OBJECT (ruler)); - if (priv->lower != lower) - { - priv->lower = lower; - g_object_notify (G_OBJECT (ruler), "lower"); - } - if (priv->upper != upper) - { - priv->upper = upper; - g_object_notify (G_OBJECT (ruler), "upper"); - } - if (priv->position != position) - { - priv->position = position; - g_object_notify (G_OBJECT (ruler), "position"); - } - if (priv->max_size != max_size) - { - priv->max_size = max_size; - g_object_notify (G_OBJECT (ruler), "max-size"); - } - g_object_thaw_notify (G_OBJECT (ruler)); - - gtk_ruler_invalidate_ticks (ruler); -} - -/** - * gtk_ruler_get_range: - * @ruler: a #GtkRuler - * @lower: (allow-none): location to store lower limit of the ruler, or %NULL - * @upper: (allow-none): location to store upper limit of the ruler, or %NULL - * @position: (allow-none): location to store the current position of the mark on the ruler, or %NULL - * @max_size: location to store the maximum size of the ruler used when calculating - * the space to leave for the text, or %NULL. - * - * Retrieves values indicating the range and current position of a #GtkRuler. - * See gtk_ruler_set_range(). - **/ -void -gtk_ruler_get_range (GtkRuler *ruler, - gdouble *lower, - gdouble *upper, - gdouble *position, - gdouble *max_size) -{ - GtkRulerPrivate *priv; - - g_return_if_fail (GTK_IS_RULER (ruler)); - - priv = ruler->priv; - - if (lower) - *lower = priv->lower; - if (upper) - *upper = priv->upper; - if (position) - *position = priv->position; - if (max_size) - *max_size = priv->max_size; -} - -static void -gtk_ruler_draw_ticks (GtkRuler *ruler) -{ - GtkRulerPrivate *priv = ruler->priv; - cairo_t *cr; - - g_return_if_fail (GTK_IS_RULER (ruler)); - - if (priv->backing_store == NULL) - return; - - cr = cairo_create (priv->backing_store); - - if (GTK_RULER_GET_CLASS (ruler)->draw_ticks) - GTK_RULER_GET_CLASS (ruler)->draw_ticks (ruler, cr); - - cairo_destroy (cr); -} - -static void -gtk_ruler_realize (GtkWidget *widget) -{ - GtkAllocation allocation; - GtkRuler *ruler; - GdkWindow *window; - GdkWindowAttr attributes; - gint attributes_mask; - - ruler = GTK_RULER (widget); - - gtk_widget_set_realized (widget, TRUE); - - gtk_widget_get_allocation (widget, &allocation); - - attributes.window_type = GDK_WINDOW_CHILD; - attributes.x = allocation.x; - attributes.y = allocation.y; - attributes.width = allocation.width; - attributes.height = allocation.height; - attributes.wclass = GDK_INPUT_OUTPUT; - attributes.visual = gtk_widget_get_visual (widget); - attributes.event_mask = gtk_widget_get_events (widget); - attributes.event_mask |= (GDK_EXPOSURE_MASK | - GDK_POINTER_MOTION_MASK | - GDK_POINTER_MOTION_HINT_MASK); - - attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL; - - window = gdk_window_new (gtk_widget_get_parent_window (widget), - &attributes, attributes_mask); - gtk_widget_set_window (widget, window); - gdk_window_set_user_data (window, ruler); - - gtk_widget_style_attach (widget); - gtk_style_set_background (gtk_widget_get_style (widget), - window, GTK_STATE_ACTIVE); - - gtk_ruler_make_pixmap (ruler); -} - -static void -gtk_ruler_unrealize (GtkWidget *widget) -{ - GtkRuler *ruler = GTK_RULER (widget); - GtkRulerPrivate *priv = ruler->priv; - - if (priv->backing_store) - { - cairo_surface_destroy (priv->backing_store); - priv->backing_store = NULL; - } - - GTK_WIDGET_CLASS (gtk_ruler_parent_class)->unrealize (widget); -} - -static void -gtk_ruler_get_preferred_size (GtkWidget *widget, - GtkOrientation orientation, - gint *minimum, - gint *natural) -{ - GtkRuler *ruler = GTK_RULER (widget); - GtkRulerPrivate *priv = ruler->priv; - GtkStyle *style; - gint thickness; - - style = gtk_widget_get_style (widget); - - if (orientation == GTK_ORIENTATION_HORIZONTAL) - thickness = style->xthickness; - else - thickness = style->ythickness; - - if (priv->orientation == orientation) - *minimum = *natural = thickness * 2 + 1; - else - *minimum = *natural = thickness * 2 + RULER_WIDTH; -} - -static void -gtk_ruler_get_preferred_width (GtkWidget *widget, - gint *minimum, - gint *natural) -{ - gtk_ruler_get_preferred_size (widget, GTK_ORIENTATION_HORIZONTAL, minimum, natural); -} - -static void -gtk_ruler_get_preferred_height (GtkWidget *widget, - gint *minimum, - gint *natural) -{ - gtk_ruler_get_preferred_size (widget, GTK_ORIENTATION_VERTICAL, minimum, natural); -} - -static void -gtk_ruler_size_allocate (GtkWidget *widget, - GtkAllocation *allocation) -{ - GtkRuler *ruler = GTK_RULER (widget); - GtkAllocation old_allocation; - gboolean resized; - - gtk_widget_get_allocation (widget, &old_allocation); - resized = (old_allocation.width != allocation->width || - old_allocation.height != allocation->height); - - gtk_widget_set_allocation (widget, allocation); - - if (gtk_widget_get_realized (widget)) - { - gdk_window_move_resize (gtk_widget_get_window (widget), - allocation->x, allocation->y, - allocation->width, allocation->height); - - if (resized) - gtk_ruler_make_pixmap (ruler); - } -} - -static gboolean -gtk_ruler_motion_notify (GtkWidget *widget, - GdkEventMotion *event) -{ - GtkAllocation allocation; - GtkRuler *ruler = GTK_RULER (widget); - GtkRulerPrivate *priv = ruler->priv; - gint x; - gint y; - - gdk_event_request_motions (event); - x = event->x; - y = event->y; - - gtk_widget_get_allocation (widget, &allocation); - if (priv->orientation == GTK_ORIENTATION_HORIZONTAL) - priv->position = priv->lower + ((priv->upper - priv->lower) * x) / allocation.width; - else - priv->position = priv->lower + ((priv->upper - priv->lower) * y) / allocation.height; - - g_object_notify (G_OBJECT (ruler), "position"); - - gtk_widget_queue_draw (widget); - - return FALSE; -} - -static gboolean -gtk_ruler_draw (GtkWidget *widget, - cairo_t *cr) -{ - GtkRuler *ruler = GTK_RULER (widget); - GtkRulerPrivate *priv = ruler->priv; - - cairo_set_source_surface (cr, priv->backing_store, 0, 0); - cairo_paint (cr); - - if (GTK_RULER_GET_CLASS (ruler)->draw_pos) - GTK_RULER_GET_CLASS (ruler)->draw_pos (ruler, cr); - - return FALSE; -} - -static void -gtk_ruler_make_pixmap (GtkRuler *ruler) -{ - GtkRulerPrivate *priv = ruler->priv; - GtkAllocation allocation; - GtkWidget *widget; - - widget = GTK_WIDGET (ruler); - - gtk_widget_get_allocation (widget, &allocation); - - if (priv->backing_store) - cairo_surface_destroy (priv->backing_store); - - priv->backing_store = gdk_window_create_similar_surface (gtk_widget_get_window (widget), - CAIRO_CONTENT_COLOR, - allocation.width, - allocation.height); - - priv->xsrc = 0; - priv->ysrc = 0; - - gtk_ruler_draw_ticks (ruler); -} - -static void -gtk_ruler_real_draw_ticks (GtkRuler *ruler, - cairo_t *cr) -{ - GtkWidget *widget = GTK_WIDGET (ruler); - GtkRulerPrivate *priv = ruler->priv; - GtkStyle *style; - gint i, j; - gint w, h; - gint width, height; - gint xthickness; - gint ythickness; - gint length, ideal_length; - gdouble lower, upper; /* Upper and lower limits, in ruler units */ - gdouble increment; /* Number of pixels per unit */ - gint scale; /* Number of units per major unit */ - gdouble subd_incr; - gdouble start, end, cur; - gchar unit_str[32]; - gint digit_height; - gint digit_offset; - gint text_width; - gint text_height; - gint pos; - PangoLayout *layout; - PangoRectangle logical_rect, ink_rect; - - style = gtk_widget_get_style (widget); - - xthickness = style->xthickness; - ythickness = style->ythickness; - - layout = gtk_widget_create_pango_layout (widget, "012456789"); - pango_layout_get_extents (layout, &ink_rect, &logical_rect); - - digit_height = PANGO_PIXELS (ink_rect.height) + 2; - digit_offset = ink_rect.y; - - w = gtk_widget_get_allocated_width (widget); - h = gtk_widget_get_allocated_height (widget); - - if (priv->orientation == GTK_ORIENTATION_HORIZONTAL) - { - width = w; - height = h - ythickness * 2; - } - else - { - width = h; - height = w - ythickness * 2; - } - -#define DETAILE(private) (priv->orientation == GTK_ORIENTATION_HORIZONTAL ? "hruler" : "vruler"); - - gdk_cairo_set_source_color (cr, &style->fg[gtk_widget_get_state (widget)]); - - gtk_paint_box (style, cr, - GTK_STATE_NORMAL, GTK_SHADOW_OUT, - widget, - priv->orientation == GTK_ORIENTATION_HORIZONTAL ? - "hruler" : "vruler", - 0, 0, - w, h); - - if (priv->orientation == GTK_ORIENTATION_HORIZONTAL) - { - cairo_rectangle (cr, - xthickness, - height + ythickness, - w - 2 * xthickness, - 1); - } - else - { - cairo_rectangle (cr, - height + xthickness, - ythickness, - 1, - h - 2 * ythickness); - } - - upper = priv->upper / priv->metric->pixels_per_unit; - lower = priv->lower / priv->metric->pixels_per_unit; - - if ((upper - lower) == 0) - goto out; - - increment = (gdouble) width / (upper - lower); - - /* determine the scale H - * We calculate the text size as for the vruler, so that the result - * for the scale looks consistent with an accompanying vruler - */ - /* determine the scale V - * use the maximum extents of the ruler to determine the largest - * possible number to be displayed. Calculate the height in pixels - * of this displayed text. Use this height to find a scale which - * leaves sufficient room for drawing the ruler. - */ - scale = ceil (priv->max_size / priv->metric->pixels_per_unit); - g_snprintf (unit_str, sizeof (unit_str), "%d", scale); - - if (priv->orientation == GTK_ORIENTATION_HORIZONTAL) - { - text_width = strlen (unit_str) * digit_height + 1; - - for (scale = 0; scale < MAXIMUM_SCALES; scale++) - if (priv->metric->ruler_scale[scale] * fabs(increment) > 2 * text_width) - break; - } - else - { - text_height = strlen (unit_str) * digit_height + 1; - - for (scale = 0; scale < MAXIMUM_SCALES; scale++) - if (priv->metric->ruler_scale[scale] * fabs(increment) > 2 * text_height) - break; - } - - if (scale == MAXIMUM_SCALES) - scale = MAXIMUM_SCALES - 1; - - /* drawing starts here */ - length = 0; - for (i = MAXIMUM_SUBDIVIDE - 1; i >= 0; i--) - { - subd_incr = (gdouble) priv->metric->ruler_scale[scale] / - (gdouble) priv->metric->subdivide[i]; - if (subd_incr * fabs(increment) <= MINIMUM_INCR) - continue; - - /* Calculate the length of the tickmarks. Make sure that - * this length increases for each set of ticks - */ - ideal_length = height / (i + 1) - 1; - if (ideal_length > ++length) - length = ideal_length; - - if (lower < upper) - { - start = floor (lower / subd_incr) * subd_incr; - end = ceil (upper / subd_incr) * subd_incr; - } - else - { - start = floor (upper / subd_incr) * subd_incr; - end = ceil (lower / subd_incr) * subd_incr; - } - - for (cur = start; cur <= end; cur += subd_incr) - { - pos = ROUND ((cur - lower) * increment); - - if (priv->orientation == GTK_ORIENTATION_HORIZONTAL) - { - cairo_rectangle (cr, - pos, height + ythickness - length, - 1, length); - } - else - { - cairo_rectangle (cr, - height + xthickness - length, pos, - length, 1); - } - cairo_fill (cr); - - /* draw label */ - if (i == 0) - { - g_snprintf (unit_str, sizeof (unit_str), "%d", (int) cur); - - if (priv->orientation == GTK_ORIENTATION_HORIZONTAL) - { - pango_layout_set_text (layout, unit_str, -1); - pango_layout_get_extents (layout, &logical_rect, NULL); - - gtk_paint_layout (style, - cr, - gtk_widget_get_state (widget), - FALSE, - widget, - "hruler", - pos + 2, ythickness + PANGO_PIXELS (logical_rect.y - digit_offset), - layout); - } - else - { - for (j = 0; j < (int) strlen (unit_str); j++) - { - pango_layout_set_text (layout, unit_str + j, 1); - pango_layout_get_extents (layout, NULL, &logical_rect); - - gtk_paint_layout (style, - cr, - gtk_widget_get_state (widget), - FALSE, - widget, - "vruler", - xthickness + 1, - pos + digit_height * j + 2 + PANGO_PIXELS (logical_rect.y - digit_offset), - layout); - } - } - } - } - } - - cairo_fill (cr); - -out: - g_object_unref (layout); -} - -static void -gtk_ruler_real_draw_pos (GtkRuler *ruler, - cairo_t *cr) -{ - GtkWidget *widget = GTK_WIDGET (ruler); - GtkRulerPrivate *priv = ruler->priv; - GtkStyle *style; - gint x, y, width, height; - gint bs_width, bs_height; - gint xthickness; - gint ythickness; - gdouble increment; - - style = gtk_widget_get_style (widget); - xthickness = style->xthickness; - ythickness = style->ythickness; - width = gtk_widget_get_allocated_width (widget); - height = gtk_widget_get_allocated_height (widget); - - if (priv->orientation == GTK_ORIENTATION_HORIZONTAL) - { - height -= ythickness * 2; - - bs_width = height / 2 + 2; - bs_width |= 1; /* make sure it's odd */ - bs_height = bs_width / 2 + 1; - } - else - { - width -= xthickness * 2; - - bs_height = width / 2 + 2; - bs_height |= 1; /* make sure it's odd */ - bs_width = bs_height / 2 + 1; - } - - if ((bs_width > 0) && (bs_height > 0)) - { - if (priv->orientation == GTK_ORIENTATION_HORIZONTAL) - { - increment = (gdouble) width / (priv->upper - priv->lower); - - x = ROUND ((priv->position - priv->lower) * increment) + (xthickness - bs_width) / 2 - 1; - y = (height + bs_height) / 2 + ythickness; - } - else - { - increment = (gdouble) height / (priv->upper - priv->lower); - - x = (width + bs_width) / 2 + xthickness; - y = ROUND ((priv->position - priv->lower) * increment) + (ythickness - bs_height) / 2 - 1; - } - - gdk_cairo_set_source_color (cr, &style->fg[gtk_widget_get_state (widget)]); - - cairo_move_to (cr, x, y); - - if (priv->orientation == GTK_ORIENTATION_HORIZONTAL) - { - cairo_line_to (cr, x + bs_width / 2.0, y + bs_height); - cairo_line_to (cr, x + bs_width, y); - } - else - { - cairo_line_to (cr, x + bs_width, y + bs_height / 2.0); - cairo_line_to (cr, x, y + bs_height); - } - - cairo_fill (cr); - - priv->xsrc = x; - priv->ysrc = y; - } -} diff --git a/gtk/gtkruler.h b/gtk/gtkruler.h deleted file mode 100644 index 491748c26c..0000000000 --- a/gtk/gtkruler.h +++ /dev/null @@ -1,120 +0,0 @@ -/* GTK - The GIMP Toolkit - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the GTK+ Team and others 1997-2000. See the AUTHORS - * file for a list of people on the GTK+ Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GTK+ at ftp://ftp.gtk.org/pub/gtk/. - */ - -/* - * NOTE this widget is considered too specialized/little-used for - * GTK+, and will in the future be moved to some other package. If - * your application needs this widget, feel free to use it, as the - * widget does work and is useful in some applications; it's just not - * of general interest. However, we are not accepting new features for - * the widget, and it will eventually move out of the GTK+ - * distribution. - */ - -#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION) -#error "Only <gtk/gtk.h> can be included directly." -#endif - -#ifndef __GTK_RULER_H__ -#define __GTK_RULER_H__ - - -#include <gtk/gtkwidget.h> - - -G_BEGIN_DECLS - -#define GTK_TYPE_RULER (gtk_ruler_get_type ()) -#define GTK_RULER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_RULER, GtkRuler)) -#define GTK_RULER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_RULER, GtkRulerClass)) -#define GTK_IS_RULER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_RULER)) -#define GTK_IS_RULER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_RULER)) -#define GTK_RULER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_RULER, GtkRulerClass)) - - -typedef struct _GtkRuler GtkRuler; -typedef struct _GtkRulerPrivate GtkRulerPrivate; -typedef struct _GtkRulerClass GtkRulerClass; -typedef struct _GtkRulerMetric GtkRulerMetric; - -/* All distances below are in 1/72nd's of an inch. (According to - * Adobe that's a point, but points are really 1/72.27 in.) - */ -struct _GtkRuler -{ - GtkWidget widget; - - /*< private >*/ - GtkRulerPrivate *priv; -}; - -struct _GtkRulerClass -{ - GtkWidgetClass parent_class; - - void (* draw_ticks) (GtkRuler *ruler, - cairo_t *cr); - void (* draw_pos) (GtkRuler *ruler, - cairo_t *cr); - - /* Padding for future expansion */ - void (*_gtk_reserved1) (void); - void (*_gtk_reserved2) (void); - void (*_gtk_reserved3) (void); - void (*_gtk_reserved4) (void); -}; - -struct _GtkRulerMetric -{ - gchar *metric_name; - gchar *abbrev; - /* This should be points_per_unit. This is the size of the unit - * in 1/72nd's of an inch and has nothing to do with screen pixels */ - gdouble pixels_per_unit; - gdouble ruler_scale[10]; - gint subdivide[5]; /* five possible modes of subdivision */ -}; - - -GType gtk_ruler_get_type (void) G_GNUC_CONST; -GtkWidget * gtk_ruler_new (GtkOrientation orientation); -void gtk_ruler_set_metric (GtkRuler *ruler, - GtkMetricType metric); -GtkMetricType gtk_ruler_get_metric (GtkRuler *ruler); -void gtk_ruler_set_range (GtkRuler *ruler, - gdouble lower, - gdouble upper, - gdouble position, - gdouble max_size); -void gtk_ruler_get_range (GtkRuler *ruler, - gdouble *lower, - gdouble *upper, - gdouble *position, - gdouble *max_size); - -G_END_DECLS - -#endif /* __GTK_RULER_H__ */ diff --git a/gtk/gtkvruler.c b/gtk/gtkvruler.c deleted file mode 100644 index 61156a0e58..0000000000 --- a/gtk/gtkvruler.c +++ /dev/null @@ -1,80 +0,0 @@ -/* GTK - The GIMP Toolkit - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the GTK+ Team and others 1997-2000. See the AUTHORS - * file for a list of people on the GTK+ Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GTK+ at ftp://ftp.gtk.org/pub/gtk/. - */ - -#include "config.h" - -#include "gtkorientable.h" -#include "gtkvruler.h" - - -/** - * SECTION:gtkvruler - * @Short_description: A vertical ruler - * @Title: GtkVRuler - * - * <note> - * This widget is considered too specialized/little-used for - * GTK+, and will in the future be moved to some other package. If - * your application needs this widget, feel free to use it, as the - * widget does work and is useful in some applications; it's just not - * of general interest. However, we are not accepting new features for - * the widget, and it will eventually move out of the GTK+ - * distribution. - * </note> - * - * The VRuler widget is a widget arranged vertically creating a ruler that is - * utilized around other widgets such as a text widget. The ruler is used to show - * the location of the mouse on the window and to show the size of the window in - * specified units. The available units of measurement are GTK_PIXELS, GTK_INCHES - * and GTK_CENTIMETERS. GTK_PIXELS is the default unit of measurement. - */ - -G_DEFINE_TYPE (GtkVRuler, gtk_vruler, GTK_TYPE_RULER) - -static void -gtk_vruler_class_init (GtkVRulerClass *klass) -{ -} - -static void -gtk_vruler_init (GtkVRuler *vruler) -{ - gtk_orientable_set_orientation (GTK_ORIENTABLE (vruler), - GTK_ORIENTATION_VERTICAL); -} - -/** - * gtk_vruler_new: - * - * Creates a new vertical ruler - * - * Returns: a new #GtkVRuler. - */ -GtkWidget * -gtk_vruler_new (void) -{ - return g_object_new (GTK_TYPE_VRULER, NULL); -} diff --git a/gtk/gtkvruler.h b/gtk/gtkvruler.h deleted file mode 100644 index b9c7829220..0000000000 --- a/gtk/gtkvruler.h +++ /dev/null @@ -1,80 +0,0 @@ -/* GTK - The GIMP Toolkit - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the GTK+ Team and others 1997-2000. See the AUTHORS - * file for a list of people on the GTK+ Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GTK+ at ftp://ftp.gtk.org/pub/gtk/. - */ - -/* - * NOTE this widget is considered too specialized/little-used for - * GTK+, and will in the future be moved to some other package. If - * your application needs this widget, feel free to use it, as the - * widget does work and is useful in some applications; it's just not - * of general interest. However, we are not accepting new features for - * the widget, and it will eventually move out of the GTK+ - * distribution. - */ - -#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION) -#error "Only <gtk/gtk.h> can be included directly." -#endif - -#ifndef __GTK_VRULER_H__ -#define __GTK_VRULER_H__ - - -#include <gtk/gtkruler.h> - - -G_BEGIN_DECLS - - -#define GTK_TYPE_VRULER (gtk_vruler_get_type ()) -#define GTK_VRULER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_VRULER, GtkVRuler)) -#define GTK_VRULER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_VRULER, GtkVRulerClass)) -#define GTK_IS_VRULER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_VRULER)) -#define GTK_IS_VRULER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_VRULER)) -#define GTK_VRULER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_VRULER, GtkVRulerClass)) - - -typedef struct _GtkVRuler GtkVRuler; -typedef struct _GtkVRulerClass GtkVRulerClass; - -struct _GtkVRuler -{ - GtkRuler ruler; -}; - -struct _GtkVRulerClass -{ - GtkRulerClass parent_class; -}; - - -GType gtk_vruler_get_type (void) G_GNUC_CONST; -GtkWidget* gtk_vruler_new (void); - - -G_END_DECLS - - -#endif /* __GTK_VRULER_H__ */ diff --git a/gtk/makefile.msc.in b/gtk/makefile.msc.in index f68a8877f7..bdb138ac47 100644 --- a/gtk/makefile.msc.in +++ b/gtk/makefile.msc.in @@ -248,7 +248,6 @@ gtk_OBJECTS = \ gtkhbbox.obj \ gtkhbox.obj \ gtkhpaned.obj \ - gtkhruler.obj \ gtkhscale.obj \ gtkhscrollbar.obj \ gtkhseparator.obj \ @@ -305,7 +304,6 @@ gtk_OBJECTS = \ gtkrange.obj \ gtkrbtree.obj \ gtkrc.obj \ - gtkruler.obj \ gtkscale.obj \ gtkscalebutton.obj \ gtkscrollbar.obj \ @@ -347,7 +345,6 @@ gtk_OBJECTS = \ gtkviewport.obj \ gtkvolumebutton.obj \ gtkvpaned.obj \ - gtkvruler.obj \ gtkvscale.obj \ gtkvscrollbar.obj \ gtkvseparator.obj \ @@ -433,7 +430,6 @@ gtk_public_h_sources = \ gtkhbbox.h \ gtkhbox.h \ gtkhpaned.h \ - gtkhruler.h \ gtkhscale.h \ gtkhscrollbar.h \ gtkhseparator.h \ @@ -496,7 +492,6 @@ gtk_public_h_sources = \ gtkrecentchooserwidget.h \ gtkrecentfilter.h \ gtkrecentmanager.h \ - gtkruler.h \ gtkscale.h \ gtkscalebutton.h \ gtkscrollbar.h \ @@ -555,7 +550,6 @@ gtk_public_h_sources = \ gtkviewport.h \ gtkvolumebutton.h \ gtkvpaned.h \ - gtkvruler.h \ gtkvscale.h \ gtkvscrollbar.h \ gtkvseparator.h \ diff --git a/gtk/tests/builder.c b/gtk/tests/builder.c index 5c68525fbc..00420af57b 100644 --- a/gtk/tests/builder.c +++ b/gtk/tests/builder.c @@ -722,7 +722,6 @@ test_types (void) " <object class=\"GtkHButtonBox\" id=\"hbuttonbox\"/>" " <object class=\"GtkHBox\" id=\"hbox\"/>" " <object class=\"GtkHPaned\" id=\"hpaned\"/>" - " <object class=\"GtkHRuler\" id=\"hruler\"/>" " <object class=\"GtkHScale\" id=\"hscale\"/>" " <object class=\"GtkHScrollbar\" id=\"hscrollbar\"/>" " <object class=\"GtkHSeparator\" id=\"hseparator\"/>" @@ -749,7 +748,6 @@ test_types (void) " <object class=\"GtkVScrollbar\" id=\"vscrollbar\"/>" " <object class=\"GtkVSeparator\" id=\"vseparator\"/>" " <object class=\"GtkViewport\" id=\"viewport\"/>" - " <object class=\"GtkVRuler\" id=\"vruler\"/>" " <object class=\"GtkVPaned\" id=\"vpaned\"/>" " <object class=\"GtkVScale\" id=\"vscale\"/>" " <object class=\"GtkWindow\" id=\"window\"/>" diff --git a/tests/testgtk.c b/tests/testgtk.c index dc50da0bdf..7e0a7e7cd5 100644 --- a/tests/testgtk.c +++ b/tests/testgtk.c @@ -5910,74 +5910,6 @@ create_range_controls (GtkWidget *widget) gtk_widget_destroy (window); } -/* - * GtkRulers - */ - -void -create_rulers (GtkWidget *widget) -{ - static GtkWidget *window = NULL; - GtkWidget *table; - GtkWidget *ruler; - - if (!window) - { - window = gtk_window_new (GTK_WINDOW_TOPLEVEL); - - gtk_window_set_screen (GTK_WINDOW (window), - gtk_widget_get_screen (widget)); - - gtk_window_set_resizable (GTK_WINDOW (window), TRUE); - - g_signal_connect (window, "destroy", - G_CALLBACK (gtk_widget_destroyed), - &window); - - gtk_window_set_title (GTK_WINDOW (window), "rulers"); - gtk_widget_set_size_request (window, 300, 300); - gtk_widget_set_events (window, - GDK_POINTER_MOTION_MASK - | GDK_POINTER_MOTION_HINT_MASK); - gtk_container_set_border_width (GTK_CONTAINER (window), 0); - - table = gtk_table_new (2, 2, FALSE); - gtk_container_add (GTK_CONTAINER (window), table); - gtk_widget_show (table); - - ruler = gtk_ruler_new (GTK_ORIENTATION_HORIZONTAL); - gtk_ruler_set_metric (GTK_RULER (ruler), GTK_CENTIMETERS); - gtk_ruler_set_range (GTK_RULER (ruler), 100, 0, 0, 20); - - g_signal_connect_swapped (window, - "motion_notify_event", - G_CALLBACK (GTK_WIDGET_GET_CLASS (ruler)->motion_notify_event), - ruler); - - gtk_table_attach (GTK_TABLE (table), ruler, 1, 2, 0, 1, - GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 0); - gtk_widget_show (ruler); - - - ruler = gtk_ruler_new (GTK_ORIENTATION_VERTICAL); - gtk_ruler_set_range (GTK_RULER (ruler), 5, 15, 0, 20); - - g_signal_connect_swapped (window, - "motion_notify_event", - G_CALLBACK (GTK_WIDGET_GET_CLASS (ruler)->motion_notify_event), - ruler); - - gtk_table_attach (GTK_TABLE (table), ruler, 0, 1, 1, 2, - GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0); - gtk_widget_show (ruler); - } - - if (!gtk_widget_get_visible (window)) - gtk_widget_show (window); - else - gtk_widget_destroy (window); -} - struct { GdkColor color; gchar *name; @@ -10016,7 +9948,6 @@ struct { { "resize grips", create_resize_grips }, { "rotated label", create_rotated_label }, { "rotated text", create_rotated_text }, - { "rulers", create_rulers }, { "saved position", create_saved_position }, { "scrolled windows", create_scrolled_windows }, { "shapes", create_shapes }, |