## GtkRuler GtkRuler — Base class for horizontal or vertical rulers |

## Synopsis

    #include <gtk/gtk.h>

                        GtkRuler;
                        GtkRulerMetric;
    void                gtk_ruler_set_metric                (GtkRuler *ruler,
                                                             GtkMetricType metric);
    void                gtk_ruler_set_range                 (GtkRuler *ruler,
                                                             gdouble lower,
                                                             gdouble upper,
                                                             gdouble position,
                                                             gdouble max_size);
    GtkMetricType       gtk_ruler_get_metric                (GtkRuler *ruler);
    void                gtk_ruler_get_range                 (GtkRuler *ruler,
                                                             gdouble *lower,
                                                             gdouble *upper,
                                                             gdouble *position,
                                                             gdouble *max_size);

## Object Hierarchy

      GObject
       +----GInitiallyUnowned
             +----GtkObject
                   +----GtkWidget
                         +----GtkRuler
                               +----GtkHRuler
                               +----GtkVRuler

## Implemented Interfaces

GtkRuler implements AtkImplementorIface.

## Properties

      lower                    gdouble               : Read / Write
      max-size                 gdouble               : Read / Write
      metric                   GtkMetricType         : Read / Write
      position                 gdouble               : Read / Write
      upper                    gdouble               : Read / Write

## Description

### 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.

The GTKRuler widget is a base class for horizontal and vertical rulers. Rulers are used to show the mouse pointer's location in a window. The ruler can either be horizontal or vertical on the window. Within the ruler a small triangle indicates the location of the mouse relative to the horizontal or vertical ruler. See GtkHRuler to learn how to create a new horizontal ruler. See GtkVRuler to learn how to create a new vertical ruler.

## Details

### GtkRuler

    typedef struct _GtkRuler GtkRuler;

All distances are in 1/72nd's of an inch. (According to Adobe thats a point, but points are really 1/72.27 in.)

### GtkRulerMetric

    typedef struct {
      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 */
    } GtkRulerMetric;

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.

### gtk_ruler_set_metric ()

    void                gtk_ruler_set_metric                (GtkRuler *ruler,
                                                             GtkMetricType metric);

This calls the GTKMetricType to set the ruler to units defined. Available units are GTK_PIXELS, GTK_INCHES, or GTK_CENTIMETERS. The default unit of measurement is GTK_PIXELS.

`ruler` : | the gtkruler
`metric` : | the unit of measurement

### gtk_ruler_set_range ()

    void                gtk_ruler_set_range                 (GtkRuler *ruler,
                                                             gdouble lower,
                                                             gdouble upper,
                                                             gdouble position,
                                                             gdouble max_size);

This sets the range of the ruler using gfloat lower, gfloat upper, gfloat position, and gfloat max_size.

`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

### gtk_ruler_get_metric ()

    GtkMetricType       gtk_ruler_get_metric                (GtkRuler *ruler);

Gets the units used for a GtkRuler. See `gtk_ruler_set_metric()`.

`ruler` : | a GtkRuler
Returns : | the units currently used for `ruler`

### gtk_ruler_get_range ()

    void                gtk_ruler_get_range                 (GtkRuler *ruler,
                                                             gdouble *lower,
                                                             gdouble *upper,
                                                             gdouble *position,
                                                             gdouble *max_size);

Retrieves values indicating the range and current position of a GtkRuler. See `gtk_ruler_set_range()`.

`ruler` : | a GtkRuler
`lower` : | location to store lower limit of the ruler, or `NULL`
`upper` : | location to store upper limit of the ruler, or `NULL`
`position` : | 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`.

## Property Details

### The :`lower` property

      lower                    gdouble               : Read / Write

Lower limit of ruler.

Default value: 0

### The :`max-size` property

      max-size                 gdouble               : Read / Write

Maximum size of the ruler.

Default value: 0

### The :`metric` property

      metric                   GtkMetricType         : Read / Write

The metric used for the ruler.

Default value: GTK_PIXELS

Since 2.8

### The :`position` property

      position                 gdouble               : Read / Write

Position of mark on the ruler.

Default value: 0

### The :`upper` property

      upper                    gdouble               : Read / Write

Upper limit of ruler.

Default value: 0

## See Also

GtkHRuler, GtkVRuler