source: trunk/third/gtk/gtk/gtkruler.h @ 14482

Revision 14482, 3.2 KB checked in by ghudson, 24 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r14481, which included commits to RCS files with non-trunk default branches.
Line 
1/* GTK - The GIMP Toolkit
2 * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Library General Public
6 * License as published by the Free Software Foundation; either
7 * version 2 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12 * Library General Public License for more details.
13 *
14 * You should have received a copy of the GNU Library General Public
15 * License along with this library; if not, write to the
16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
17 * Boston, MA 02111-1307, USA.
18 */
19
20/*
21 * Modified by the GTK+ Team and others 1997-1999.  See the AUTHORS
22 * file for a list of people on the GTK+ Team.  See the ChangeLog
23 * files for a list of changes.  These files are distributed with
24 * GTK+ at ftp://ftp.gtk.org/pub/gtk/.
25 */
26
27#ifndef __GTK_RULER_H__
28#define __GTK_RULER_H__
29
30
31#include <gdk/gdk.h>
32#include <gtk/gtkwidget.h>
33
34
35#ifdef __cplusplus
36extern "C" {
37#endif /* __cplusplus */
38
39
40#define GTK_TYPE_RULER            (gtk_ruler_get_type ())
41#define GTK_RULER(obj)            (GTK_CHECK_CAST ((obj), GTK_TYPE_RULER, GtkRuler))
42#define GTK_RULER_CLASS(klass)    (GTK_CHECK_CLASS_CAST ((klass), GTK_TYPE_RULER, GtkRulerClass))
43#define GTK_IS_RULER(obj)         (GTK_CHECK_TYPE ((obj), GTK_TYPE_RULER))
44#define GTK_IS_RULER_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), GTK_TYPE_RULER))
45
46typedef struct _GtkRuler        GtkRuler;
47typedef struct _GtkRulerClass   GtkRulerClass;
48typedef struct _GtkRulerMetric  GtkRulerMetric;
49
50/* All distances below are in 1/72nd's of an inch. (According to
51 * Adobe that's a point, but points are really 1/72.27 in.)
52 */
53struct _GtkRuler
54{
55  GtkWidget widget;
56
57  GdkPixmap *backing_store;
58  GdkGC *non_gr_exp_gc;
59  GtkRulerMetric *metric;
60  gint xsrc, ysrc;
61  gint slider_size;
62
63  /* The upper limit of the ruler (in points) */
64  gfloat lower;
65  /* The lower limit of the ruler */
66  gfloat upper;
67  /* The position of the mark on the ruler */
68  gfloat position;
69  /* The maximum size of the ruler */
70  gfloat max_size;
71};
72
73struct _GtkRulerClass
74{
75  GtkWidgetClass parent_class;
76
77  void (* draw_ticks) (GtkRuler *ruler);
78  void (* draw_pos)   (GtkRuler *ruler);
79};
80
81struct _GtkRulerMetric
82{
83  gchar *metric_name;
84  gchar *abbrev;
85  /* This should be points_per_unit. This is the size of the unit
86   * in 1/72nd's of an inch and has nothing to do with screen pixels */
87  gfloat pixels_per_unit;
88  gfloat ruler_scale[10];
89  gint subdivide[5];        /* five possible modes of subdivision */
90};
91
92
93GtkType gtk_ruler_get_type   (void);
94void    gtk_ruler_set_metric (GtkRuler       *ruler,
95                              GtkMetricType   metric);
96void    gtk_ruler_set_range  (GtkRuler       *ruler,
97                              gfloat          lower,
98                              gfloat          upper,
99                              gfloat          position,
100                              gfloat          max_size);
101void    gtk_ruler_draw_ticks (GtkRuler       *ruler);
102void    gtk_ruler_draw_pos   (GtkRuler       *ruler);
103
104
105#ifdef __cplusplus
106}
107#endif /* __cplusplus */
108
109
110#endif /* __GTK_RULER_H__ */
Note: See TracBrowser for help on using the repository browser.