1 /* GTK - The GIMP Toolkit
2 * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
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.
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.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library. If not, see <http://www.gnu.org/licenses/>.
19 * Modified by the GTK+ Team and others 1997-2000. See the AUTHORS
20 * file for a list of people on the GTK+ Team. See the ChangeLog
21 * files for a list of changes. These files are distributed with
22 * GTK+ at ftp://ftp.gtk.org/pub/gtk/.
25 #if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION)
26 #error "Only <gtk/gtk.h> can be included directly."
29 #ifndef __GTK_RANGE_H__
30 #define __GTK_RANGE_H__
33 #include <gtk/gtkadjustment.h>
34 #include <gtk/gtkwidget.h>
40 #define GTK_TYPE_RANGE (gtk_range_get_type ())
41 #define GTK_RANGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_RANGE, GtkRange))
42 #define GTK_RANGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_RANGE, GtkRangeClass))
43 #define GTK_IS_RANGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_RANGE))
44 #define GTK_IS_RANGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_RANGE))
45 #define GTK_RANGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_RANGE, GtkRangeClass))
47 typedef struct _GtkRange GtkRange;
48 typedef struct _GtkRangePrivate GtkRangePrivate;
49 typedef struct _GtkRangeClass GtkRangeClass;
55 GtkRangePrivate *priv;
60 GtkWidgetClass parent_class;
62 /* what detail to pass to GTK drawing functions */
64 gchar *stepper_detail;
66 void (* value_changed) (GtkRange *range);
67 void (* adjust_bounds) (GtkRange *range,
70 /* action signals for keybindings */
71 void (* move_slider) (GtkRange *range,
72 GtkScrollType scroll);
74 /* Virtual functions */
75 void (* get_range_border) (GtkRange *range,
78 gboolean (* change_value) (GtkRange *range,
82 /* Padding for future expansion */
83 void (*_gtk_reserved1) (void);
84 void (*_gtk_reserved2) (void);
85 void (*_gtk_reserved3) (void);
86 void (*_gtk_reserved4) (void);
90 GType gtk_range_get_type (void) G_GNUC_CONST;
92 void gtk_range_set_adjustment (GtkRange *range,
93 GtkAdjustment *adjustment);
94 GtkAdjustment* gtk_range_get_adjustment (GtkRange *range);
96 void gtk_range_set_inverted (GtkRange *range,
98 gboolean gtk_range_get_inverted (GtkRange *range);
100 void gtk_range_set_flippable (GtkRange *range,
102 gboolean gtk_range_get_flippable (GtkRange *range);
104 void gtk_range_set_slider_size_fixed (GtkRange *range,
105 gboolean size_fixed);
106 gboolean gtk_range_get_slider_size_fixed (GtkRange *range);
108 void gtk_range_set_min_slider_size (GtkRange *range,
110 gint gtk_range_get_min_slider_size (GtkRange *range);
112 void gtk_range_get_range_rect (GtkRange *range,
113 GdkRectangle *range_rect);
114 void gtk_range_get_slider_range (GtkRange *range,
118 void gtk_range_set_lower_stepper_sensitivity (GtkRange *range,
119 GtkSensitivityType sensitivity);
120 GtkSensitivityType gtk_range_get_lower_stepper_sensitivity (GtkRange *range);
121 void gtk_range_set_upper_stepper_sensitivity (GtkRange *range,
122 GtkSensitivityType sensitivity);
123 GtkSensitivityType gtk_range_get_upper_stepper_sensitivity (GtkRange *range);
125 void gtk_range_set_increments (GtkRange *range,
128 void gtk_range_set_range (GtkRange *range,
131 void gtk_range_set_value (GtkRange *range,
133 gdouble gtk_range_get_value (GtkRange *range);
135 void gtk_range_set_show_fill_level (GtkRange *range,
136 gboolean show_fill_level);
137 gboolean gtk_range_get_show_fill_level (GtkRange *range);
138 void gtk_range_set_restrict_to_fill_level (GtkRange *range,
139 gboolean restrict_to_fill_level);
140 gboolean gtk_range_get_restrict_to_fill_level (GtkRange *range);
141 void gtk_range_set_fill_level (GtkRange *range,
143 gdouble gtk_range_get_fill_level (GtkRange *range);
144 void gtk_range_set_round_digits (GtkRange *range,
146 gint gtk_range_get_round_digits (GtkRange *range);
149 gdouble _gtk_range_get_wheel_delta (GtkRange *range,
150 GdkEventScroll *event);
151 void _gtk_range_set_has_origin (GtkRange *range,
152 gboolean has_origin);
153 gboolean _gtk_range_get_has_origin (GtkRange *range);
154 void _gtk_range_set_stop_values (GtkRange *range,
157 gint _gtk_range_get_stop_positions (GtkRange *range,
159 void _gtk_range_set_steppers (GtkRange *range,
168 #endif /* __GTK_RANGE_H__ */