]> Pileus Git - ~andy/gtk/blob - gtk/gtkscalebutton.h
Bug 539944 – Add GtkScaleButton API so struct fields can be marked as
[~andy/gtk] / gtk / gtkscalebutton.h
1 /* GTK - The GIMP Toolkit
2  * Copyright (C) 2005 Ronald S. Bultje
3  * Copyright (C) 2006, 2007 Christian Persch
4  * Copyright (C) 2006 Jan Arne Petersen
5  * Copyright (C) 2007 Red Hat, Inc.
6  *
7  * Authors:
8  * - Ronald S. Bultje <rbultje@ronald.bitfreak.net>
9  * - Bastien Nocera <bnocera@redhat.com>
10  * - Jan Arne Petersen <jpetersen@jpetersen.org>
11  * - Christian Persch <chpe@svn.gnome.org>
12  *
13  * This library is free software; you can redistribute it and/or
14  * modify it under the terms of the GNU Lesser General Public
15  * License as published by the Free Software Foundation; either
16  * version 2 of the License, or (at your option) any later version.
17  *
18  * This library is distributed in the hope that it will be useful,
19  * but WITHOUT ANY WARRANTY; without even the implied warranty of
20  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
21  * Lesser General Public License for more details.
22  *
23  * You should have received a copy of the GNU Lesser General Public
24  * License along with this library; if not, write to the
25  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
26  * Boston, MA 02111-1307, USA.
27  */
28
29 /*
30  * Modified by the GTK+ Team and others 2007.  See the AUTHORS
31  * file for a list of people on the GTK+ Team.  See the ChangeLog
32  * files for a list of changes.  These files are distributed with
33  * GTK+ at ftp://ftp.gtk.org/pub/gtk/.
34  */
35
36 #if defined(GTK_DISABLE_SINGLE_INCLUDES) && !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION)
37 #error "Only <gtk/gtk.h> can be included directly."
38 #endif
39
40 #ifndef __GTK_SCALE_BUTTON_H__
41 #define __GTK_SCALE_BUTTON_H__
42
43 #include <gtk/gtkbutton.h>
44
45 G_BEGIN_DECLS
46
47 #define GTK_TYPE_SCALE_BUTTON                 (gtk_scale_button_get_type ())
48 #define GTK_SCALE_BUTTON(obj)                 (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_SCALE_BUTTON, GtkScaleButton))
49 #define GTK_SCALE_BUTTON_CLASS(klass)         (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_SCALE_BUTTON, GtkScaleButtonClass))
50 #define GTK_IS_SCALE_BUTTON(obj)              (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_SCALE_BUTTON))
51 #define GTK_IS_SCALE_BUTTON_CLASS(klass)      (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_SCALE_BUTTON))
52 #define GTK_SCALE_BUTTON_GET_CLASS(obj)       (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_SCALE_BUTTON, GtkScaleButtonClass))
53
54 typedef struct _GtkScaleButton        GtkScaleButton;
55 typedef struct _GtkScaleButtonClass   GtkScaleButtonClass;
56 typedef struct _GtkScaleButtonPrivate GtkScaleButtonPrivate;
57
58 struct _GtkScaleButton
59 {
60   GtkButton parent;
61
62   GtkWidget *GSEAL (plus_button);
63   GtkWidget *GSEAL (minus_button);
64
65   /*< private >*/
66   GtkScaleButtonPrivate *GSEAL (priv);
67 };
68
69 struct _GtkScaleButtonClass
70 {
71   GtkButtonClass parent_class;
72
73   /* signals */
74   void  (* value_changed) (GtkScaleButton *button,
75                            gdouble         value);
76
77   /* Padding for future expansion */
78   void (*_gtk_reserved1) (void);
79   void (*_gtk_reserved2) (void);
80   void (*_gtk_reserved3) (void);
81   void (*_gtk_reserved4) (void);
82 };
83
84 GType            gtk_scale_button_get_type         (void) G_GNUC_CONST;
85 GtkWidget *      gtk_scale_button_new              (GtkIconSize      size,
86                                                     gdouble          min,
87                                                     gdouble          max,
88                                                     gdouble          step,
89                                                     const gchar    **icons);
90 void             gtk_scale_button_set_icons        (GtkScaleButton  *button,
91                                                     const gchar    **icons);
92 gdouble          gtk_scale_button_get_value        (GtkScaleButton  *button);
93 void             gtk_scale_button_set_value        (GtkScaleButton  *button,
94                                                     gdouble          value);
95 GtkAdjustment *  gtk_scale_button_get_adjustment   (GtkScaleButton  *button);
96 void             gtk_scale_button_set_adjustment   (GtkScaleButton  *button,
97                                                     GtkAdjustment   *adjustment);
98 GtkOrientation   gtk_scale_button_get_orientation  (GtkScaleButton  *button);
99 void             gtk_scale_button_set_orientation  (GtkScaleButton  *button,
100                                                     GtkOrientation   orientation);
101 GtkWidget *      gtk_scale_button_get_plus_button  (GtkScaleButton  *button);
102 GtkWidget *      gtk_scale_button_get_minus_button (GtkScaleButton  *button);
103 GtkWidget *      gtk_scale_button_get_popup        (GtkScaleButton  *button);
104
105 G_END_DECLS
106
107 #endif /* __GTK_SCALE_BUTTON_H__ */