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 Lesser 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 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser 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-2000. 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_ADJUSTMENT_H__
28#define __GTK_ADJUSTMENT_H__
29
30
31#if defined(GTK_DISABLE_SINGLE_INCLUDES) && !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION)
32#error "Only <gtk/gtk.h> can be included directly."
33#endif
34
35#include <gdk/gdk.h>
36#include <gtk/gtkobject.h>
37
38G_BEGIN_DECLS
39
40#define GTK_TYPE_ADJUSTMENT (gtk_adjustment_get_type ())
41#define GTK_ADJUSTMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_ADJUSTMENT, GtkAdjustment))
42#define GTK_ADJUSTMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_ADJUSTMENT, GtkAdjustmentClass))
43#define GTK_IS_ADJUSTMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_ADJUSTMENT))
44#define GTK_IS_ADJUSTMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_ADJUSTMENT))
45#define GTK_ADJUSTMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_ADJUSTMENT, GtkAdjustmentClass))
46
47
48typedef struct _GtkAdjustment GtkAdjustment;
49typedef struct _GtkAdjustmentClass GtkAdjustmentClass;
50
51struct _GtkAdjustment
52{
53 GtkObject parent_instance;
54
55 gdouble GSEAL (lower);
56 gdouble GSEAL (upper);
57 gdouble GSEAL (value);
58 gdouble GSEAL (step_increment);
59 gdouble GSEAL (page_increment);
60 gdouble GSEAL (page_size);
61};
62
63struct _GtkAdjustmentClass
64{
65 GtkObjectClass parent_class;
66
67 void (* changed) (GtkAdjustment *adjustment);
68 void (* value_changed) (GtkAdjustment *adjustment);
69
70 /* Padding for future expansion */
71 void (*_gtk_reserved1) (void);
72 void (*_gtk_reserved2) (void);
73 void (*_gtk_reserved3) (void);
74 void (*_gtk_reserved4) (void);
75};
76
77
78GType gtk_adjustment_get_type (void) G_GNUC_CONST;
79GtkObject* gtk_adjustment_new (gdouble value,
80 gdouble lower,
81 gdouble upper,
82 gdouble step_increment,
83 gdouble page_increment,
84 gdouble page_size);
85
86void gtk_adjustment_changed (GtkAdjustment *adjustment);
87void gtk_adjustment_value_changed (GtkAdjustment *adjustment);
88void gtk_adjustment_clamp_page (GtkAdjustment *adjustment,
89 gdouble lower,
90 gdouble upper);
91
92gdouble gtk_adjustment_get_value (GtkAdjustment *adjustment);
93void gtk_adjustment_set_value (GtkAdjustment *adjustment,
94 gdouble value);
95gdouble gtk_adjustment_get_lower (GtkAdjustment *adjustment);
96void gtk_adjustment_set_lower (GtkAdjustment *adjustment,
97 gdouble lower);
98gdouble gtk_adjustment_get_upper (GtkAdjustment *adjustment);
99void gtk_adjustment_set_upper (GtkAdjustment *adjustment,
100 gdouble upper);
101gdouble gtk_adjustment_get_step_increment (GtkAdjustment *adjustment);
102void gtk_adjustment_set_step_increment (GtkAdjustment *adjustment,
103 gdouble step_increment);
104gdouble gtk_adjustment_get_page_increment (GtkAdjustment *adjustment);
105void gtk_adjustment_set_page_increment (GtkAdjustment *adjustment,
106 gdouble page_increment);
107gdouble gtk_adjustment_get_page_size (GtkAdjustment *adjustment);
108void gtk_adjustment_set_page_size (GtkAdjustment *adjustment,
109 gdouble page_size);
110
111void gtk_adjustment_configure (GtkAdjustment *adjustment,
112 gdouble value,
113 gdouble lower,
114 gdouble upper,
115 gdouble step_increment,
116 gdouble page_increment,
117 gdouble page_size);
118
119G_END_DECLS
120
121#endif /* __GTK_ADJUSTMENT_H__ */
122