]> git.sur5r.net Git - glabels/blob - glabels2/src/hig.h
2005-04-17 Jim Evins <evins@snaught.com>
[glabels] / glabels2 / src / hig.h
1 /*
2  *  (GLABELS) Label and Business Card Creation program for GNOME
3  *
4  *  hig.h:  HIG inspired dialogs and layout tools
5  *
6  *  Copyright (C) 2002  Jim Evins <evins@snaught.com>.
7  *
8  *  This program is free software; you can redistribute it and/or modify
9  *  it under the terms of the GNU General Public License as published by
10  *  the Free Software Foundation; either version 2 of the License, or
11  *  (at your option) any later version.
12  *
13  *  This program is distributed in the hope that it will be useful,
14  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
15  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16  *  GNU General Public License for more details.
17  *
18  *  You should have received a copy of the GNU General Public License
19  *  along with this program; if not, write to the Free Software
20  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
21  */
22
23 #ifndef __HIG_H__
24 #define __HIG_H__
25
26 #include <gtk/gtkmessagedialog.h>
27 #include <gtk/gtkvbox.h>
28 #include <gtk/gtkhbox.h>
29
30 G_BEGIN_DECLS
31
32 #define GL_HIG_PAD1   6
33 #define GL_HIG_PAD2  12
34
35
36 /*===========================================================================*/
37 /* HIG inspired alert.                                                       */
38 /*===========================================================================*/
39
40 #define GL_TYPE_HIG_ALERT (gl_hig_alert_get_type ())
41 #define GL_HIG_ALERT(obj) \
42         (GTK_CHECK_CAST((obj), GL_TYPE_HIG_ALERT, glHigAlert ))
43 #define GL_HIG_ALERT_CLASS(klass) \
44         (GTK_CHECK_CLASS_CAST ((klass), GL_TYPE_HIG_ALERT, glHigAlertClass))
45 #define GL_IS_HIG_ALERT(obj) \
46         (GTK_CHECK_TYPE ((obj), GL_TYPE_HIG_ALERT))
47 #define GL_IS_HIG_ALERT_CLASS(klass) \
48         (GTK_CHECK_CLASS_TYPE ((klass), GL_TYPE_HIG_ALERT))
49
50 typedef struct _glHigAlert      glHigAlert;
51 typedef struct _glHigAlertClass glHigAlertClass;
52
53 struct _glHigAlert {
54         GtkDialog         parent_widget;
55 };
56
57 struct _glHigAlertClass {
58         GtkDialogClass    parent_class;
59 };
60
61 GType      gl_hig_alert_get_type    (void) G_GNUC_CONST;
62
63 GtkWidget *gl_hig_alert_new         (GtkWindow      *parent,
64                                      GtkDialogFlags  flags,
65                                      GtkMessageType  type,
66                                      GtkButtonsType  buttons,
67                                      const gchar    *primary_text,
68                                      const gchar    *secondary_text);
69
70
71 /*===========================================================================*/
72 /* HIG Dialog wrapper.                                                       */
73 /*===========================================================================*/
74
75 #define GL_TYPE_HIG_DIALOG (gl_hig_dialog_get_type ())
76 #define GL_HIG_DIALOG(obj) \
77         (GTK_CHECK_CAST((obj), GL_TYPE_HIG_DIALOG, glHigDialog ))
78 #define GL_HIG_DIALOG_CLASS(klass) \
79         (GTK_CHECK_CLASS_CAST ((klass), GL_TYPE_HIG_DIALOG, glHigDialogClass))
80 #define GL_IS_HIG_DIALOG(obj) \
81         (GTK_CHECK_TYPE ((obj), GL_TYPE_HIG_DIALOG))
82 #define GL_IS_HIG_DIALOG_CLASS(klass) \
83         (GTK_CHECK_CLASS_TYPE ((klass), GL_TYPE_HIG_DIALOG))
84
85 typedef struct _glHigDialog      glHigDialog;
86 typedef struct _glHigDialogClass glHigDialogClass;
87
88 struct _glHigDialog {
89         GtkDialog         parent_widget;
90
91         GtkWidget        *vbox;
92 };
93
94 struct _glHigDialogClass {
95         GtkDialogClass    parent_class;
96 };
97
98 GType      gl_hig_dialog_get_type         (void) G_GNUC_CONST;
99
100 GtkWidget *gl_hig_dialog_new              (void);
101
102 GtkWidget *gl_hig_dialog_new_with_buttons (const gchar    *title,
103                                            GtkWindow      *parent,
104                                            GtkDialogFlags  flags,
105                                            const gchar    *first_button_text,
106                                            ...);
107
108 void       gl_hig_dialog_add_widget       (glHigDialog   *dialog,
109                                            GtkWidget     *widget);
110
111
112 /*===========================================================================*/
113 /* HIG Category (analogous to a gtk_frame).                                  */
114 /*===========================================================================*/
115
116 #define GL_TYPE_HIG_CATEGORY (gl_hig_category_get_type ())
117 #define GL_HIG_CATEGORY(obj) \
118         (GTK_CHECK_CAST((obj), GL_TYPE_HIG_CATEGORY, glHigCategory ))
119 #define GL_HIG_CATEGORY_CLASS(klass) \
120         (GTK_CHECK_CLASS_CAST ((klass), GL_TYPE_HIG_CATEGORY, glHigCategoryClass))
121 #define GL_IS_HIG_CATEGORY(obj) \
122         (GTK_CHECK_TYPE ((obj), GL_TYPE_HIG_CATEGORY))
123 #define GL_IS_HIG_CATEGORY_CLASS(klass) \
124         (GTK_CHECK_CLASS_TYPE ((klass), GL_TYPE_HIG_CATEGORY))
125
126 typedef struct _glHigCategory      glHigCategory;
127 typedef struct _glHigCategoryClass glHigCategoryClass;
128
129 struct _glHigCategory {
130         GtkVBox           parent_widget;
131
132         GtkWidget        *label;
133         GtkWidget        *vbox;
134 };
135
136 struct _glHigCategoryClass {
137         GtkVBoxClass      parent_class;
138 };
139
140 GType      gl_hig_category_get_type         (void) G_GNUC_CONST;
141
142 GtkWidget *gl_hig_category_new              (const gchar *header);
143
144 void       gl_hig_category_add_widget       (glHigCategory *cat,
145                                              GtkWidget     *widget);
146
147
148 /*===========================================================================*/
149 /* HIG VBOX wrapper.                                                         */
150 /*===========================================================================*/
151
152 typedef enum {
153         GL_HIG_VBOX_OUTER,
154         GL_HIG_VBOX_INNER,
155 } glHigVBoxType;
156
157 #define GL_TYPE_HIG_VBOX (gl_hig_vbox_get_type ())
158 #define GL_HIG_VBOX(obj) \
159         (GTK_CHECK_CAST((obj), GL_TYPE_HIG_VBOX, glHigVBox ))
160 #define GL_HIG_VBOX_CLASS(klass) \
161         (GTK_CHECK_CLASS_CAST ((klass), GL_TYPE_HIG_VBOX, glHigVBoxClass))
162 #define GL_IS_HIG_VBOX(obj) \
163         (GTK_CHECK_TYPE ((obj), GL_TYPE_HIG_VBOX))
164 #define GL_IS_HIG_VBOX_CLASS(klass) \
165         (GTK_CHECK_CLASS_TYPE ((klass), GL_TYPE_HIG_VBOX))
166
167 typedef struct _glHigVBox      glHigVBox;
168 typedef struct _glHigVBoxClass glHigVBoxClass;
169
170 struct _glHigVBox {
171         GtkVBox           parent_widget;
172 };
173
174 struct _glHigVBoxClass {
175         GtkVBoxClass      parent_class;
176 };
177
178 GType      gl_hig_vbox_get_type         (void) G_GNUC_CONST;
179
180 GtkWidget *gl_hig_vbox_new              (glHigVBoxType  type);
181
182 void       gl_hig_vbox_add_widget       (glHigVBox     *hig_vbox,
183                                          GtkWidget     *widget);
184
185
186 /*===========================================================================*/
187 /* HIG HBOX wrapper.                                                         */
188 /*===========================================================================*/
189
190 #define GL_TYPE_HIG_HBOX (gl_hig_hbox_get_type ())
191 #define GL_HIG_HBOX(obj) \
192         (GTK_CHECK_CAST((obj), GL_TYPE_HIG_HBOX, glHigHBox ))
193 #define GL_HIG_HBOX_CLASS(klass) \
194         (GTK_CHECK_CLASS_CAST ((klass), GL_TYPE_HIG_HBOX, glHigHBoxClass))
195 #define GL_IS_HIG_HBOX(obj) \
196         (GTK_CHECK_TYPE ((obj), GL_TYPE_HIG_HBOX))
197 #define GL_IS_HIG_HBOX_CLASS(klass) \
198         (GTK_CHECK_CLASS_TYPE ((klass), GL_TYPE_HIG_HBOX))
199
200 typedef struct _glHigHBox      glHigHBox;
201 typedef struct _glHigHBoxClass glHigHBoxClass;
202
203 struct _glHigHBox {
204         GtkHBox           parent_widget;
205 };
206
207 struct _glHigHBoxClass {
208         GtkHBoxClass      parent_class;
209 };
210
211 GType      gl_hig_hbox_get_type           (void) G_GNUC_CONST;
212
213 GtkWidget *gl_hig_hbox_new                (void);
214
215 void       gl_hig_hbox_add_widget         (glHigHBox     *hig_hbox,
216                                            GtkWidget     *widget);
217
218 void       gl_hig_hbox_add_widget_justify (glHigHBox     *hig_hbox,
219                                            GtkWidget     *widget);
220
221
222 G_END_DECLS
223
224 #endif /* __HIG_H__ */