X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=gtk%2Fgtkrange.h;h=8495cdb78fa64c8da73cf4aade61c2897eec1ba4;hb=ea043cab5718304d9b6170afa2d3f959fc99c718;hp=925715b6884a66271c761ac7151d085bc2b2b2b9;hpb=489c376bf4b98f0e521f6ab4992a1c9ac7529657;p=~andy%2Fgtk diff --git a/gtk/gtkrange.h b/gtk/gtkrange.h index 925715b68..8495cdb78 100644 --- a/gtk/gtkrange.h +++ b/gtk/gtkrange.h @@ -12,155 +12,156 @@ * 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. + * License along with this library. If not, see . */ /* * 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/. + * GTK+ at ftp://ftp.gtk.org/pub/gtk/. */ #ifndef __GTK_RANGE_H__ #define __GTK_RANGE_H__ -#include -#include +#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION) +#error "Only can be included directly." +#endif + #include -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ +G_BEGIN_DECLS #define GTK_TYPE_RANGE (gtk_range_get_type ()) -#define GTK_RANGE(obj) (GTK_CHECK_CAST ((obj), GTK_TYPE_RANGE, GtkRange)) -#define GTK_RANGE_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), GTK_TYPE_RANGE, GtkRangeClass)) -#define GTK_IS_RANGE(obj) (GTK_CHECK_TYPE ((obj), GTK_TYPE_RANGE)) -#define GTK_IS_RANGE_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), GTK_TYPE_RANGE)) -#define GTK_RANGE_GET_CLASS(obj) (GTK_CHECK_GET_CLASS ((obj), GTK_TYPE_RANGE, GtkRangeClass)) - +#define GTK_RANGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_RANGE, GtkRange)) +#define GTK_RANGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_RANGE, GtkRangeClass)) +#define GTK_IS_RANGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_RANGE)) +#define GTK_IS_RANGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_RANGE)) +#define GTK_RANGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_RANGE, GtkRangeClass)) -typedef struct _GtkRange GtkRange; -typedef struct _GtkRangeClass GtkRangeClass; +typedef struct _GtkRange GtkRange; +typedef struct _GtkRangePrivate GtkRangePrivate; +typedef struct _GtkRangeClass GtkRangeClass; struct _GtkRange { GtkWidget widget; - GdkWindow *trough; - GdkWindow *slider; - GdkWindow *step_forw; - GdkWindow *step_back; - - gint16 x_click_point; - gint16 y_click_point; - - guint8 button; - gint8 digits; - guint policy : 2; - guint scroll_type : 5; - guint in_child : 3; - guint click_child : 3; - guint need_timer : 1; - guint flippable : 1; - guint inverted : 1; - - guint32 timer; - - gdouble old_value; - gdouble old_lower; - gdouble old_upper; - gdouble old_page_size; - - GtkAdjustment *adjustment; + GtkRangePrivate *priv; }; struct _GtkRangeClass { GtkWidgetClass parent_class; - gint slider_width; - gint stepper_size; - gint stepper_slider_spacing; - gint min_slider_size; - - guint8 trough; - guint8 slider; - guint8 step_forw; - guint8 step_back; - - void (* draw_background) (GtkRange *range); - void (* clear_background) (GtkRange *range); - void (* draw_trough) (GtkRange *range); - void (* draw_slider) (GtkRange *range); - void (* draw_step_forw) (GtkRange *range); - void (* draw_step_back) (GtkRange *range); - void (* slider_update) (GtkRange *range); - gint (* trough_click) (GtkRange *range, - gint x, - gint y, - gdouble *jump_perc); - gint (* trough_keys) (GtkRange *range, - GdkEventKey *key, - GtkScrollType *scroll, - GtkTroughType *trough); - void (* motion) (GtkRange *range, - gint xdelta, - gint ydelta); - gint (* timer) (GtkRange *range); + /* what detail to pass to GTK drawing functions */ + gchar *slider_detail; + gchar *stepper_detail; + + void (* value_changed) (GtkRange *range); + void (* adjust_bounds) (GtkRange *range, + gdouble new_value); + + /* action signals for keybindings */ + void (* move_slider) (GtkRange *range, + GtkScrollType scroll); + + /* Virtual functions */ + void (* get_range_border) (GtkRange *range, + GtkBorder *border_); + + gboolean (* change_value) (GtkRange *range, + GtkScrollType scroll, + gdouble new_value); + + /* Padding for future expansion */ + void (*_gtk_reserved1) (void); + void (*_gtk_reserved2) (void); + void (*_gtk_reserved3) (void); + void (*_gtk_reserved4) (void); }; -GtkType gtk_range_get_type (void) G_GNUC_CONST; -GtkAdjustment* gtk_range_get_adjustment (GtkRange *range); -void gtk_range_set_update_policy (GtkRange *range, - GtkUpdateType policy); -void gtk_range_set_adjustment (GtkRange *range, - GtkAdjustment *adjustment); - -void gtk_range_set_inverted (GtkRange *range, - gboolean setting); -gboolean gtk_range_get_inverted (GtkRange *range); - -void _gtk_range_draw_background (GtkRange *range); -void _gtk_range_clear_background (GtkRange *range); -void _gtk_range_draw_trough (GtkRange *range); -void _gtk_range_draw_slider (GtkRange *range); -void _gtk_range_draw_step_forw (GtkRange *range); -void _gtk_range_draw_step_back (GtkRange *range); -void _gtk_range_slider_update (GtkRange *range); -gint _gtk_range_trough_click (GtkRange *range, - gint x, - gint y, - gdouble *jump_perc); - -void _gtk_range_default_hslider_update (GtkRange *range); -void _gtk_range_default_vslider_update (GtkRange *range); -gint _gtk_range_default_htrough_click (GtkRange *range, - gint x, - gint y, - gdouble *jump_perc); -gint _gtk_range_default_vtrough_click (GtkRange *range, - gint x, - gint y, - gdouble *jump_perc); -void _gtk_range_default_hmotion (GtkRange *range, - gint xdelta, - gint ydelta); -void _gtk_range_default_vmotion (GtkRange *range, - gint xdelta, - gint ydelta); - - -#ifdef __cplusplus -} -#endif /* __cplusplus */ +GType gtk_range_get_type (void) G_GNUC_CONST; + +void gtk_range_set_adjustment (GtkRange *range, + GtkAdjustment *adjustment); +GtkAdjustment* gtk_range_get_adjustment (GtkRange *range); + +void gtk_range_set_inverted (GtkRange *range, + gboolean setting); +gboolean gtk_range_get_inverted (GtkRange *range); + +void gtk_range_set_flippable (GtkRange *range, + gboolean flippable); +gboolean gtk_range_get_flippable (GtkRange *range); + +void gtk_range_set_slider_size_fixed (GtkRange *range, + gboolean size_fixed); +gboolean gtk_range_get_slider_size_fixed (GtkRange *range); + +void gtk_range_set_min_slider_size (GtkRange *range, + gint min_size); +gint gtk_range_get_min_slider_size (GtkRange *range); + +void gtk_range_get_range_rect (GtkRange *range, + GdkRectangle *range_rect); +void gtk_range_get_slider_range (GtkRange *range, + gint *slider_start, + gint *slider_end); + +void gtk_range_set_lower_stepper_sensitivity (GtkRange *range, + GtkSensitivityType sensitivity); +GtkSensitivityType gtk_range_get_lower_stepper_sensitivity (GtkRange *range); +void gtk_range_set_upper_stepper_sensitivity (GtkRange *range, + GtkSensitivityType sensitivity); +GtkSensitivityType gtk_range_get_upper_stepper_sensitivity (GtkRange *range); + +void gtk_range_set_increments (GtkRange *range, + gdouble step, + gdouble page); +void gtk_range_set_range (GtkRange *range, + gdouble min, + gdouble max); +void gtk_range_set_value (GtkRange *range, + gdouble value); +gdouble gtk_range_get_value (GtkRange *range); + +void gtk_range_set_show_fill_level (GtkRange *range, + gboolean show_fill_level); +gboolean gtk_range_get_show_fill_level (GtkRange *range); +void gtk_range_set_restrict_to_fill_level (GtkRange *range, + gboolean restrict_to_fill_level); +gboolean gtk_range_get_restrict_to_fill_level (GtkRange *range); +void gtk_range_set_fill_level (GtkRange *range, + gdouble fill_level); +gdouble gtk_range_get_fill_level (GtkRange *range); +void gtk_range_set_round_digits (GtkRange *range, + gint round_digits); +gint gtk_range_get_round_digits (GtkRange *range); + +/* internal API */ +gdouble _gtk_range_get_wheel_delta (GtkRange *range, + GdkEventScroll *event); +void _gtk_range_set_has_origin (GtkRange *range, + gboolean has_origin); +gboolean _gtk_range_get_has_origin (GtkRange *range); +void _gtk_range_set_stop_values (GtkRange *range, + gdouble *values, + gint n_values); +gint _gtk_range_get_stop_positions (GtkRange *range, + gint **values); +void _gtk_range_set_steppers (GtkRange *range, + gboolean has_a, + gboolean has_b, + gboolean has_c, + gboolean has_d); + +G_END_DECLS #endif /* __GTK_RANGE_H__ */