]> git.sur5r.net Git - glabels/blob - glabels2/src/hig.h
2005-05-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 Dialog wrapper.                                                       */
38 /*===========================================================================*/
39
40 #define GL_TYPE_HIG_DIALOG (gl_hig_dialog_get_type ())
41 #define GL_HIG_DIALOG(obj) \
42         (GTK_CHECK_CAST((obj), GL_TYPE_HIG_DIALOG, glHigDialog ))
43 #define GL_HIG_DIALOG_CLASS(klass) \
44         (GTK_CHECK_CLASS_CAST ((klass), GL_TYPE_HIG_DIALOG, glHigDialogClass))
45 #define GL_IS_HIG_DIALOG(obj) \
46         (GTK_CHECK_TYPE ((obj), GL_TYPE_HIG_DIALOG))
47 #define GL_IS_HIG_DIALOG_CLASS(klass) \
48         (GTK_CHECK_CLASS_TYPE ((klass), GL_TYPE_HIG_DIALOG))
49
50 typedef struct _glHigDialog      glHigDialog;
51 typedef struct _glHigDialogClass glHigDialogClass;
52
53 struct _glHigDialog {
54         GtkDialog         parent_widget;
55
56         GtkWidget        *vbox;
57 };
58
59 struct _glHigDialogClass {
60         GtkDialogClass    parent_class;
61 };
62
63 GType      gl_hig_dialog_get_type         (void) G_GNUC_CONST;
64
65 GtkWidget *gl_hig_dialog_new              (void);
66
67 GtkWidget *gl_hig_dialog_new_with_buttons (const gchar    *title,
68                                            GtkWindow      *parent,
69                                            GtkDialogFlags  flags,
70                                            const gchar    *first_button_text,
71                                            ...);
72
73 void       gl_hig_dialog_add_widget       (glHigDialog   *dialog,
74                                            GtkWidget     *widget);
75
76
77 /*===========================================================================*/
78 /* HIG Category (analogous to a gtk_frame).                                  */
79 /*===========================================================================*/
80
81 #define GL_TYPE_HIG_CATEGORY (gl_hig_category_get_type ())
82 #define GL_HIG_CATEGORY(obj) \
83         (GTK_CHECK_CAST((obj), GL_TYPE_HIG_CATEGORY, glHigCategory ))
84 #define GL_HIG_CATEGORY_CLASS(klass) \
85         (GTK_CHECK_CLASS_CAST ((klass), GL_TYPE_HIG_CATEGORY, glHigCategoryClass))
86 #define GL_IS_HIG_CATEGORY(obj) \
87         (GTK_CHECK_TYPE ((obj), GL_TYPE_HIG_CATEGORY))
88 #define GL_IS_HIG_CATEGORY_CLASS(klass) \
89         (GTK_CHECK_CLASS_TYPE ((klass), GL_TYPE_HIG_CATEGORY))
90
91 typedef struct _glHigCategory      glHigCategory;
92 typedef struct _glHigCategoryClass glHigCategoryClass;
93
94 struct _glHigCategory {
95         GtkVBox           parent_widget;
96
97         GtkWidget        *label;
98         GtkWidget        *vbox;
99 };
100
101 struct _glHigCategoryClass {
102         GtkVBoxClass      parent_class;
103 };
104
105 GType      gl_hig_category_get_type         (void) G_GNUC_CONST;
106
107 GtkWidget *gl_hig_category_new              (const gchar *header);
108
109 void       gl_hig_category_add_widget       (glHigCategory *cat,
110                                              GtkWidget     *widget);
111
112
113 /*===========================================================================*/
114 /* HIG VBOX wrapper.                                                         */
115 /*===========================================================================*/
116
117 typedef enum {
118         GL_HIG_VBOX_OUTER,
119         GL_HIG_VBOX_INNER,
120 } glHigVBoxType;
121
122 #define GL_TYPE_HIG_VBOX (gl_hig_vbox_get_type ())
123 #define GL_HIG_VBOX(obj) \
124         (GTK_CHECK_CAST((obj), GL_TYPE_HIG_VBOX, glHigVBox ))
125 #define GL_HIG_VBOX_CLASS(klass) \
126         (GTK_CHECK_CLASS_CAST ((klass), GL_TYPE_HIG_VBOX, glHigVBoxClass))
127 #define GL_IS_HIG_VBOX(obj) \
128         (GTK_CHECK_TYPE ((obj), GL_TYPE_HIG_VBOX))
129 #define GL_IS_HIG_VBOX_CLASS(klass) \
130         (GTK_CHECK_CLASS_TYPE ((klass), GL_TYPE_HIG_VBOX))
131
132 typedef struct _glHigVBox      glHigVBox;
133 typedef struct _glHigVBoxClass glHigVBoxClass;
134
135 struct _glHigVBox {
136         GtkVBox           parent_widget;
137 };
138
139 struct _glHigVBoxClass {
140         GtkVBoxClass      parent_class;
141 };
142
143 GType      gl_hig_vbox_get_type         (void) G_GNUC_CONST;
144
145 GtkWidget *gl_hig_vbox_new              (glHigVBoxType  type);
146
147 void       gl_hig_vbox_add_widget       (glHigVBox     *hig_vbox,
148                                          GtkWidget     *widget);
149
150
151 /*===========================================================================*/
152 /* HIG HBOX wrapper.                                                         */
153 /*===========================================================================*/
154
155 #define GL_TYPE_HIG_HBOX (gl_hig_hbox_get_type ())
156 #define GL_HIG_HBOX(obj) \
157         (GTK_CHECK_CAST((obj), GL_TYPE_HIG_HBOX, glHigHBox ))
158 #define GL_HIG_HBOX_CLASS(klass) \
159         (GTK_CHECK_CLASS_CAST ((klass), GL_TYPE_HIG_HBOX, glHigHBoxClass))
160 #define GL_IS_HIG_HBOX(obj) \
161         (GTK_CHECK_TYPE ((obj), GL_TYPE_HIG_HBOX))
162 #define GL_IS_HIG_HBOX_CLASS(klass) \
163         (GTK_CHECK_CLASS_TYPE ((klass), GL_TYPE_HIG_HBOX))
164
165 typedef struct _glHigHBox      glHigHBox;
166 typedef struct _glHigHBoxClass glHigHBoxClass;
167
168 struct _glHigHBox {
169         GtkHBox           parent_widget;
170 };
171
172 struct _glHigHBoxClass {
173         GtkHBoxClass      parent_class;
174 };
175
176 GType      gl_hig_hbox_get_type           (void) G_GNUC_CONST;
177
178 GtkWidget *gl_hig_hbox_new                (void);
179
180 void       gl_hig_hbox_add_widget         (glHigHBox     *hig_hbox,
181                                            GtkWidget     *widget);
182
183 void       gl_hig_hbox_add_widget_justify (glHigHBox     *hig_hbox,
184                                            GtkWidget     *widget);
185
186
187 G_END_DECLS
188
189 #endif /* __HIG_H__ */