]> Pileus Git - ~andy/gtk/blob - gtk/gtkenums.h
Added gdk_text/string_extents() - too calculate all the metrics at once of
[~andy/gtk] / gtk / gtkenums.h
1 /* GTK - The GIMP Toolkit
2  * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Library 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.
8  *
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  * Library General Public License for more details.
13  *
14  * You should have received a copy of the GNU Library General Public
15  * License along with this library; if not, write to the
16  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
17  * Boston, MA 02111-1307, USA.
18  */
19 #ifndef __GTK_ENUMS_H__
20 #define __GTK_ENUMS_H__
21
22 #ifdef __cplusplus
23 extern "C" {
24 #pragma }
25 #endif /* __cplusplus */
26
27 typedef enum
28 {
29   /* should the accelerator appear in
30    * the widget's display?
31    */
32   GTK_ACCEL_VISIBLE        = 1 << 0,
33   /* should the signal associated with
34    * this accelerator be also visible?
35    */
36   GTK_ACCEL_SIGNAL_VISIBLE = 1 << 1,
37   /* may the accelerator be removed
38    * again?
39    */
40   GTK_ACCEL_LOCKED         = 1 << 2,
41   GTK_ACCEL_MASK           = 0x07
42 } GtkAccelFlags;
43
44 /* Arrow types */
45 typedef enum
46 {
47   GTK_ARROW_UP,
48   GTK_ARROW_DOWN,
49   GTK_ARROW_LEFT,
50   GTK_ARROW_RIGHT
51 } GtkArrowType;
52
53 /* Attach options (for tables) */
54 typedef enum
55 {
56   GTK_EXPAND = 1 << 0,
57   GTK_SHRINK = 1 << 1,
58   GTK_FILL   = 1 << 2
59 } GtkAttachOptions;
60
61 /* Button box styles */
62 typedef enum 
63 {
64   GTK_BUTTONBOX_DEFAULT_STYLE,
65   GTK_BUTTONBOX_SPREAD,
66   GTK_BUTTONBOX_EDGE,
67   GTK_BUTTONBOX_START,
68   GTK_BUTTONBOX_END
69 } GtkButtonBoxStyle;
70
71 /* Curve types */
72 typedef enum
73 {
74   GTK_CURVE_TYPE_LINEAR,       /* linear interpolation */
75   GTK_CURVE_TYPE_SPLINE,       /* spline interpolation */
76   GTK_CURVE_TYPE_FREE          /* free form curve */
77 } GtkCurveType;
78  
79 /* Focus movement types */
80 typedef enum
81 {
82   GTK_DIR_TAB_FORWARD,
83   GTK_DIR_TAB_BACKWARD,
84   GTK_DIR_UP,
85   GTK_DIR_DOWN,
86   GTK_DIR_LEFT,
87   GTK_DIR_RIGHT
88 } GtkDirectionType;
89
90 /* justification for label and maybe other widgets (text?) */
91 typedef enum
92 {
93   GTK_JUSTIFY_LEFT,
94   GTK_JUSTIFY_RIGHT,
95   GTK_JUSTIFY_CENTER,
96   GTK_JUSTIFY_FILL
97 } GtkJustification;
98
99 /* GtkPatternSpec match types */
100 typedef enum
101 {
102   GTK_MATCH_ALL,       /* "*A?A*" */
103   GTK_MATCH_ALL_TAIL,  /* "*A?AA" */
104   GTK_MATCH_HEAD,      /* "AAAA*" */
105   GTK_MATCH_TAIL,      /* "*AAAA" */
106   GTK_MATCH_EXACT,     /* "AAAAA" */
107   GTK_MATCH_LAST
108 } GtkMatchType;
109
110 /* Menu keyboard movement types */
111 typedef enum
112 {
113   GTK_MENU_DIR_PARENT,
114   GTK_MENU_DIR_CHILD,
115   GTK_MENU_DIR_NEXT,
116   GTK_MENU_DIR_PREV
117 } GtkMenuDirectionType;
118
119 typedef enum
120 {
121   GTK_MENU_FACTORY_MENU,
122   GTK_MENU_FACTORY_MENU_BAR,
123   GTK_MENU_FACTORY_OPTION_MENU
124 } GtkMenuFactoryType;
125
126 typedef enum
127 {
128   GTK_PIXELS,
129   GTK_INCHES,
130   GTK_CENTIMETERS
131 } GtkMetricType;
132
133 /* Orientation for toolbars, etc. */
134 typedef enum
135 {
136   GTK_ORIENTATION_HORIZONTAL,
137   GTK_ORIENTATION_VERTICAL
138 } GtkOrientation;
139
140 /* Packing types (for boxes) */
141 typedef enum
142 {
143   GTK_PACK_START,
144   GTK_PACK_END
145 } GtkPackType;
146
147 /* priorities for path lookups */
148 typedef enum
149 {
150   GTK_PATH_PRIO_LOWEST      = 0,
151   GTK_PATH_PRIO_GTK         = 4,
152   GTK_PATH_PRIO_APPLICATION = 8,
153   GTK_PATH_PRIO_RC          = 12,
154   GTK_PATH_PRIO_HIGHEST     = 15,
155   GTK_PATH_PRIO_MASK        = 0x0f
156 } GtkPathPriorityType;
157
158 /* widget path types */
159 typedef enum
160 {
161   GTK_PATH_WIDGET,
162   GTK_PATH_WIDGET_CLASS,
163   GTK_PATH_CLASS
164 } GtkPathType;
165
166 /* Scrollbar policy types (for scrolled windows) */
167 typedef enum
168 {
169   GTK_POLICY_ALWAYS,
170   GTK_POLICY_AUTOMATIC
171 } GtkPolicyType;
172
173 typedef enum
174 {
175   GTK_POS_LEFT,
176   GTK_POS_RIGHT,
177   GTK_POS_TOP,
178   GTK_POS_BOTTOM
179 } GtkPositionType;
180
181 typedef enum
182 {
183   GTK_PREVIEW_COLOR,
184   GTK_PREVIEW_GRAYSCALE
185 } GtkPreviewType;
186
187 /* Style for buttons */
188 typedef enum
189 {
190   GTK_RELIEF_NORMAL,
191   GTK_RELIEF_HALF,
192   GTK_RELIEF_NONE
193 } GtkReliefStyle;
194
195 /* Resize type */
196 typedef enum
197 {
198   GTK_RESIZE_PARENT,            /* Pass resize request to the parent */
199   GTK_RESIZE_QUEUE,             /* Queue resizes on this widget */
200   GTK_RESIZE_IMMEDIATE          /* Perform the resizes now */
201 } GtkResizeMode;
202
203 /* signal run types */
204 typedef enum                    /*< flags >*/
205 {
206   GTK_RUN_FIRST      = 0x1,
207   GTK_RUN_LAST       = 0x2,
208   GTK_RUN_BOTH       = 0x3,
209   GTK_RUN_MASK       = 0xF,
210   GTK_RUN_NO_RECURSE = 0x10,
211   GTK_RUN_ACTION  = 0x20
212 } GtkSignalRunType;
213
214 /* scrolling types */
215 typedef enum
216 {
217   GTK_SCROLL_NONE,
218   GTK_SCROLL_STEP_BACKWARD,
219   GTK_SCROLL_STEP_FORWARD,
220   GTK_SCROLL_PAGE_BACKWARD,
221   GTK_SCROLL_PAGE_FORWARD,
222   GTK_SCROLL_JUMP
223 } GtkScrollType;
224
225 /* list selection modes */
226 typedef enum
227 {
228   GTK_SELECTION_SINGLE,
229   GTK_SELECTION_BROWSE,
230   GTK_SELECTION_MULTIPLE,
231   GTK_SELECTION_EXTENDED
232 } GtkSelectionMode;
233
234 /* Shadow types */
235 typedef enum
236 {
237   GTK_SHADOW_NONE,
238   GTK_SHADOW_IN,
239   GTK_SHADOW_OUT,
240   GTK_SHADOW_ETCHED_IN,
241   GTK_SHADOW_ETCHED_OUT
242 } GtkShadowType;
243
244 /* Widget states */
245 typedef enum
246 {
247   GTK_STATE_NORMAL,
248   GTK_STATE_ACTIVE,
249   GTK_STATE_PRELIGHT,
250   GTK_STATE_SELECTED,
251   GTK_STATE_INSENSITIVE
252 } GtkStateType;
253
254 /* Directions for submenus */
255 typedef enum
256 {
257   GTK_DIRECTION_LEFT,
258   GTK_DIRECTION_RIGHT
259 } GtkSubmenuDirection;
260
261 /* Placement of submenus */
262 typedef enum
263 {
264   GTK_TOP_BOTTOM,
265   GTK_LEFT_RIGHT
266 } GtkSubmenuPlacement;
267
268 /* Style for toolbars */
269 typedef enum
270 {
271   GTK_TOOLBAR_ICONS,
272   GTK_TOOLBAR_TEXT,
273   GTK_TOOLBAR_BOTH
274 } GtkToolbarStyle;
275
276 /* Trough types for GtkRange */
277 typedef enum
278 {
279   GTK_TROUGH_NONE,
280   GTK_TROUGH_START,
281   GTK_TROUGH_END,
282   GTK_TROUGH_JUMP
283 } GtkTroughType;
284
285 /* Data update types (for ranges) */
286 typedef enum
287 {
288   GTK_UPDATE_CONTINUOUS,
289   GTK_UPDATE_DISCONTINUOUS,
290   GTK_UPDATE_DELAYED
291 } GtkUpdateType;
292
293 /* Generic visibility flags */
294 typedef enum
295 {
296   GTK_VISIBILITY_NONE,
297   GTK_VISIBILITY_PARTIAL,
298   GTK_VISIBILITY_FULL
299 } GtkVisibility;
300
301 /* Window position types */
302 typedef enum
303 {
304   GTK_WIN_POS_NONE,
305   GTK_WIN_POS_CENTER,
306   GTK_WIN_POS_MOUSE
307 } GtkWindowPosition;
308
309 /* Window types */
310 typedef enum
311 {
312   GTK_WINDOW_TOPLEVEL,
313   GTK_WINDOW_DIALOG,
314   GTK_WINDOW_POPUP
315 } GtkWindowType;
316
317 /* How to sort */
318 typedef enum
319 {
320   GTK_SORT_ASCENDING,
321   GTK_SORT_DESCENDING
322 } GtkSortType;
323
324 #ifdef __cplusplus
325 }
326 #endif /* __cplusplus */
327
328
329 #endif /* __GTK_ENUMS_H__ */