]> Pileus Git - ~andy/gtk/blob - gtk/gtkenums.h
Merge the gtk-printing branch. For more detailed ChangeLog entries, see
[~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 Lesser 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  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser 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
20 /*
21  * Modified by the GTK+ Team and others 1997-2000.  See the AUTHORS
22  * file for a list of people on the GTK+ Team.  See the ChangeLog
23  * files for a list of changes.  These files are distributed with
24  * GTK+ at ftp://ftp.gtk.org/pub/gtk/. 
25  */
26
27 #ifndef __GTK_ENUMS_H__
28 #define __GTK_ENUMS_H__
29
30 #include <glib-object.h>
31
32 G_BEGIN_DECLS
33
34 /* Anchor types */
35 typedef enum
36 {
37   GTK_ANCHOR_CENTER,
38   GTK_ANCHOR_NORTH,
39   GTK_ANCHOR_NORTH_WEST,
40   GTK_ANCHOR_NORTH_EAST,
41   GTK_ANCHOR_SOUTH,
42   GTK_ANCHOR_SOUTH_WEST,
43   GTK_ANCHOR_SOUTH_EAST,
44   GTK_ANCHOR_WEST,
45   GTK_ANCHOR_EAST,
46   GTK_ANCHOR_N          = GTK_ANCHOR_NORTH,
47   GTK_ANCHOR_NW         = GTK_ANCHOR_NORTH_WEST,
48   GTK_ANCHOR_NE         = GTK_ANCHOR_NORTH_EAST,
49   GTK_ANCHOR_S          = GTK_ANCHOR_SOUTH,
50   GTK_ANCHOR_SW         = GTK_ANCHOR_SOUTH_WEST,
51   GTK_ANCHOR_SE         = GTK_ANCHOR_SOUTH_EAST,
52   GTK_ANCHOR_W          = GTK_ANCHOR_WEST,
53   GTK_ANCHOR_E          = GTK_ANCHOR_EAST
54 } GtkAnchorType;
55
56 /* Arrow types */
57 typedef enum
58 {
59   GTK_ARROW_UP,
60   GTK_ARROW_DOWN,
61   GTK_ARROW_LEFT,
62   GTK_ARROW_RIGHT
63 } GtkArrowType;
64
65 /* Attach options (for tables) */
66 typedef enum
67 {
68   GTK_EXPAND = 1 << 0,
69   GTK_SHRINK = 1 << 1,
70   GTK_FILL   = 1 << 2
71 } GtkAttachOptions;
72
73 /* Button box styles */
74 typedef enum 
75 {
76   GTK_BUTTONBOX_DEFAULT_STYLE,
77   GTK_BUTTONBOX_SPREAD,
78   GTK_BUTTONBOX_EDGE,
79   GTK_BUTTONBOX_START,
80   GTK_BUTTONBOX_END
81 } GtkButtonBoxStyle;
82
83 /* Curve types */
84 typedef enum
85 {
86   GTK_CURVE_TYPE_LINEAR,       /* linear interpolation */
87   GTK_CURVE_TYPE_SPLINE,       /* spline interpolation */
88   GTK_CURVE_TYPE_FREE          /* free form curve */
89 } GtkCurveType;
90  
91 typedef enum {
92   GTK_DELETE_CHARS,
93   GTK_DELETE_WORD_ENDS,           /* delete only the portion of the word to the
94                                    * left/right of cursor if we're in the middle
95                                    * of a word */
96   GTK_DELETE_WORDS,
97   GTK_DELETE_DISPLAY_LINES,
98   GTK_DELETE_DISPLAY_LINE_ENDS,
99   GTK_DELETE_PARAGRAPH_ENDS,      /* like C-k in Emacs (or its reverse) */
100   GTK_DELETE_PARAGRAPHS,          /* C-k in pico, kill whole line */
101   GTK_DELETE_WHITESPACE           /* M-\ in Emacs */
102 } GtkDeleteType;
103
104 /* Focus movement types */
105 typedef enum
106 {
107   GTK_DIR_TAB_FORWARD,
108   GTK_DIR_TAB_BACKWARD,
109   GTK_DIR_UP,
110   GTK_DIR_DOWN,
111   GTK_DIR_LEFT,
112   GTK_DIR_RIGHT
113 } GtkDirectionType;
114
115 /* Expander styles */
116 typedef enum
117 {
118   GTK_EXPANDER_COLLAPSED,
119   GTK_EXPANDER_SEMI_COLLAPSED,
120   GTK_EXPANDER_SEMI_EXPANDED,
121   GTK_EXPANDER_EXPANDED
122 } GtkExpanderStyle;
123
124 /* Built-in stock icon sizes */
125 typedef enum
126 {
127   GTK_ICON_SIZE_INVALID,
128   GTK_ICON_SIZE_MENU,
129   GTK_ICON_SIZE_SMALL_TOOLBAR,
130   GTK_ICON_SIZE_LARGE_TOOLBAR,
131   GTK_ICON_SIZE_BUTTON,
132   GTK_ICON_SIZE_DND,
133   GTK_ICON_SIZE_DIALOG
134 } GtkIconSize;
135
136 /* automatic sensitivity */
137 typedef enum
138 {
139   GTK_SENSITIVITY_AUTO,
140   GTK_SENSITIVITY_ON,
141   GTK_SENSITIVITY_OFF
142 } GtkSensitivityType;
143
144 #ifndef GTK_DISABLE_DEPRECATED
145 /* side types */
146 typedef enum
147 {
148   GTK_SIDE_TOP,
149   GTK_SIDE_BOTTOM,
150   GTK_SIDE_LEFT,
151   GTK_SIDE_RIGHT
152 } GtkSideType;
153 #endif /* GTK_DISABLE_DEPRECATED */
154
155 /* Reading directions for text */
156 typedef enum
157 {
158   GTK_TEXT_DIR_NONE,
159   GTK_TEXT_DIR_LTR,
160   GTK_TEXT_DIR_RTL
161 } GtkTextDirection;
162
163 /* justification for label and maybe other widgets (text?) */
164 typedef enum
165 {
166   GTK_JUSTIFY_LEFT,
167   GTK_JUSTIFY_RIGHT,
168   GTK_JUSTIFY_CENTER,
169   GTK_JUSTIFY_FILL
170 } GtkJustification;
171
172 #ifndef GTK_DISABLE_DEPRECATED
173 /* GtkPatternSpec match types */
174 typedef enum
175 {
176   GTK_MATCH_ALL,       /* "*A?A*" */
177   GTK_MATCH_ALL_TAIL,  /* "*A?AA" */
178   GTK_MATCH_HEAD,      /* "AAAA*" */
179   GTK_MATCH_TAIL,      /* "*AAAA" */
180   GTK_MATCH_EXACT,     /* "AAAAA" */
181   GTK_MATCH_LAST
182 } GtkMatchType;
183 #endif /* GTK_DISABLE_DEPRECATED */
184
185 /* Menu keyboard movement types */
186 typedef enum
187 {
188   GTK_MENU_DIR_PARENT,
189   GTK_MENU_DIR_CHILD,
190   GTK_MENU_DIR_NEXT,
191   GTK_MENU_DIR_PREV
192 } GtkMenuDirectionType;
193
194 typedef enum
195 {
196   GTK_PIXELS,
197   GTK_INCHES,
198   GTK_CENTIMETERS
199 } GtkMetricType;
200
201 typedef enum 
202 {
203   GTK_MOVEMENT_LOGICAL_POSITIONS, /* move by forw/back graphemes */
204   GTK_MOVEMENT_VISUAL_POSITIONS,  /* move by left/right graphemes */
205   GTK_MOVEMENT_WORDS,             /* move by forward/back words */
206   GTK_MOVEMENT_DISPLAY_LINES,     /* move up/down lines (wrapped lines) */
207   GTK_MOVEMENT_DISPLAY_LINE_ENDS, /* move up/down lines (wrapped lines) */
208   GTK_MOVEMENT_PARAGRAPHS,        /* move up/down paragraphs (newline-ended lines) */
209   GTK_MOVEMENT_PARAGRAPH_ENDS,    /* move to either end of a paragraph */
210   GTK_MOVEMENT_PAGES,             /* move by pages */
211   GTK_MOVEMENT_BUFFER_ENDS,       /* move to ends of the buffer */
212   GTK_MOVEMENT_HORIZONTAL_PAGES   /* move horizontally by pages */
213 } GtkMovementStep;
214
215 typedef enum 
216 {
217   GTK_SCROLL_STEPS,
218   GTK_SCROLL_PAGES,
219   GTK_SCROLL_ENDS,
220   GTK_SCROLL_HORIZONTAL_STEPS,
221   GTK_SCROLL_HORIZONTAL_PAGES,
222   GTK_SCROLL_HORIZONTAL_ENDS
223 } GtkScrollStep;
224
225 /* Orientation for toolbars, etc. */
226 typedef enum
227 {
228   GTK_ORIENTATION_HORIZONTAL,
229   GTK_ORIENTATION_VERTICAL
230 } GtkOrientation;
231
232 /* Placement type for scrolled window */
233 typedef enum
234 {
235   GTK_CORNER_TOP_LEFT,
236   GTK_CORNER_BOTTOM_LEFT,
237   GTK_CORNER_TOP_RIGHT,
238   GTK_CORNER_BOTTOM_RIGHT
239 } GtkCornerType;
240
241 /* Packing types (for boxes) */
242 typedef enum
243 {
244   GTK_PACK_START,
245   GTK_PACK_END
246 } GtkPackType;
247
248 /* priorities for path lookups */
249 typedef enum
250 {
251   GTK_PATH_PRIO_LOWEST      = 0,
252   GTK_PATH_PRIO_GTK         = 4,
253   GTK_PATH_PRIO_APPLICATION = 8,
254   GTK_PATH_PRIO_THEME       = 10,
255   GTK_PATH_PRIO_RC          = 12,
256   GTK_PATH_PRIO_HIGHEST     = 15
257 } GtkPathPriorityType;
258 #define GTK_PATH_PRIO_MASK 0x0f
259
260 /* widget path types */
261 typedef enum
262 {
263   GTK_PATH_WIDGET,
264   GTK_PATH_WIDGET_CLASS,
265   GTK_PATH_CLASS
266 } GtkPathType;
267
268 /* Scrollbar policy types (for scrolled windows) */
269 typedef enum
270 {
271   GTK_POLICY_ALWAYS,
272   GTK_POLICY_AUTOMATIC,
273   GTK_POLICY_NEVER
274 } GtkPolicyType;
275
276 typedef enum
277 {
278   GTK_POS_LEFT,
279   GTK_POS_RIGHT,
280   GTK_POS_TOP,
281   GTK_POS_BOTTOM
282 } GtkPositionType;
283
284 #ifndef GTK_DISABLE_DEPRECATED
285 typedef enum
286 {
287   GTK_PREVIEW_COLOR,
288   GTK_PREVIEW_GRAYSCALE
289 } GtkPreviewType;
290 #endif /* GTK_DISABLE_DEPRECATED */
291
292 /* Style for buttons */
293 typedef enum
294 {
295   GTK_RELIEF_NORMAL,
296   GTK_RELIEF_HALF,
297   GTK_RELIEF_NONE
298 } GtkReliefStyle;
299
300 /* Resize type */
301 typedef enum
302 {
303   GTK_RESIZE_PARENT,            /* Pass resize request to the parent */
304   GTK_RESIZE_QUEUE,             /* Queue resizes on this widget */
305   GTK_RESIZE_IMMEDIATE          /* Perform the resizes now */
306 } GtkResizeMode;
307
308 #ifndef GTK_DISABLE_DEPRECATED
309 /* signal run types */
310 typedef enum                    /*< flags >*/
311 {
312   GTK_RUN_FIRST      = G_SIGNAL_RUN_FIRST,
313   GTK_RUN_LAST       = G_SIGNAL_RUN_LAST,
314   GTK_RUN_BOTH       = (GTK_RUN_FIRST | GTK_RUN_LAST),
315   GTK_RUN_NO_RECURSE = G_SIGNAL_NO_RECURSE,
316   GTK_RUN_ACTION     = G_SIGNAL_ACTION,
317   GTK_RUN_NO_HOOKS   = G_SIGNAL_NO_HOOKS
318 } GtkSignalRunType;
319 #endif /* GTK_DISABLE_DEPRECATED */
320
321 /* scrolling types */
322 typedef enum
323 {
324   GTK_SCROLL_NONE,
325   GTK_SCROLL_JUMP,
326   GTK_SCROLL_STEP_BACKWARD,
327   GTK_SCROLL_STEP_FORWARD,
328   GTK_SCROLL_PAGE_BACKWARD,
329   GTK_SCROLL_PAGE_FORWARD,
330   GTK_SCROLL_STEP_UP,
331   GTK_SCROLL_STEP_DOWN,
332   GTK_SCROLL_PAGE_UP,
333   GTK_SCROLL_PAGE_DOWN,
334   GTK_SCROLL_STEP_LEFT,
335   GTK_SCROLL_STEP_RIGHT,
336   GTK_SCROLL_PAGE_LEFT,
337   GTK_SCROLL_PAGE_RIGHT,
338   GTK_SCROLL_START,
339   GTK_SCROLL_END
340 } GtkScrollType;
341
342 /* list selection modes */
343 typedef enum
344 {
345   GTK_SELECTION_NONE,                             /* Nothing can be selected */
346   GTK_SELECTION_SINGLE,
347   GTK_SELECTION_BROWSE,
348   GTK_SELECTION_MULTIPLE,
349   GTK_SELECTION_EXTENDED = GTK_SELECTION_MULTIPLE /* Deprecated */
350 } GtkSelectionMode;
351
352 /* Shadow types */
353 typedef enum
354 {
355   GTK_SHADOW_NONE,
356   GTK_SHADOW_IN,
357   GTK_SHADOW_OUT,
358   GTK_SHADOW_ETCHED_IN,
359   GTK_SHADOW_ETCHED_OUT
360 } GtkShadowType;
361
362 /* Widget states */
363 typedef enum
364 {
365   GTK_STATE_NORMAL,
366   GTK_STATE_ACTIVE,
367   GTK_STATE_PRELIGHT,
368   GTK_STATE_SELECTED,
369   GTK_STATE_INSENSITIVE
370 } GtkStateType;
371
372 #if !defined(GTK_DISABLE_DEPRECATED) || defined (GTK_MENU_INTERNALS)
373 /* Directions for submenus */
374 typedef enum
375 {
376   GTK_DIRECTION_LEFT,
377   GTK_DIRECTION_RIGHT
378 } GtkSubmenuDirection;
379
380 /* Placement of submenus */
381 typedef enum
382 {
383   GTK_TOP_BOTTOM,
384   GTK_LEFT_RIGHT
385 } GtkSubmenuPlacement;
386 #endif /* GTK_DISABLE_DEPRECATED */
387
388 /* Style for toolbars */
389 typedef enum
390 {
391   GTK_TOOLBAR_ICONS,
392   GTK_TOOLBAR_TEXT,
393   GTK_TOOLBAR_BOTH,
394   GTK_TOOLBAR_BOTH_HORIZ
395 } GtkToolbarStyle;
396
397 /* Data update types (for ranges) */
398 typedef enum
399 {
400   GTK_UPDATE_CONTINUOUS,
401   GTK_UPDATE_DISCONTINUOUS,
402   GTK_UPDATE_DELAYED
403 } GtkUpdateType;
404
405 /* Generic visibility flags */
406 typedef enum
407 {
408   GTK_VISIBILITY_NONE,
409   GTK_VISIBILITY_PARTIAL,
410   GTK_VISIBILITY_FULL
411 } GtkVisibility;
412
413 /* Window position types */
414 typedef enum
415 {
416   GTK_WIN_POS_NONE,
417   GTK_WIN_POS_CENTER,
418   GTK_WIN_POS_MOUSE,
419   GTK_WIN_POS_CENTER_ALWAYS,
420   GTK_WIN_POS_CENTER_ON_PARENT
421 } GtkWindowPosition;
422
423 /* Window types */
424 typedef enum
425 {
426   GTK_WINDOW_TOPLEVEL,
427   GTK_WINDOW_POPUP
428 } GtkWindowType;
429
430 /* Text wrap */
431 typedef enum
432 {
433   GTK_WRAP_NONE,
434   GTK_WRAP_CHAR,
435   GTK_WRAP_WORD,
436   GTK_WRAP_WORD_CHAR
437 } GtkWrapMode;
438
439 /* How to sort */
440 typedef enum
441 {
442   GTK_SORT_ASCENDING,
443   GTK_SORT_DESCENDING
444 } GtkSortType;
445
446 /* Style for gtk input method preedit/status */
447 typedef enum
448 {
449   GTK_IM_PREEDIT_NOTHING,
450   GTK_IM_PREEDIT_CALLBACK,
451   GTK_IM_PREEDIT_NONE
452 } GtkIMPreeditStyle;
453
454 typedef enum
455 {
456   GTK_IM_STATUS_NOTHING,
457   GTK_IM_STATUS_CALLBACK,
458   GTK_IM_STATUS_NONE
459 } GtkIMStatusStyle;
460
461 typedef enum
462 {
463   GTK_PACK_DIRECTION_LTR,
464   GTK_PACK_DIRECTION_RTL,
465   GTK_PACK_DIRECTION_TTB,
466   GTK_PACK_DIRECTION_BTT
467 } GtkPackDirection;
468
469 typedef enum {
470   GTK_PRINT_PAGES_ALL,
471   GTK_PRINT_PAGES_CURRENT,
472   GTK_PRINT_PAGES_RANGES
473 } GtkPrintPages;
474
475 typedef enum {
476   GTK_PAGE_SET_ALL,
477   GTK_PAGE_SET_EVEN,
478   GTK_PAGE_SET_ODD
479 } GtkPageSet;
480
481 typedef enum {
482   GTK_PAGE_ORIENTATION_PORTRAIT,
483   GTK_PAGE_ORIENTATION_LANDSCAPE,
484   GTK_PAGE_ORIENTATION_REVERSE_PORTRAIT,
485   GTK_PAGE_ORIENTATION_REVERSE_LANDSCAPE
486 } GtkPageOrientation;
487
488 typedef enum {
489   GTK_PRINT_QUALITY_LOW,
490   GTK_PRINT_QUALITY_NORMAL,
491   GTK_PRINT_QUALITY_HIGH,
492   GTK_PRINT_QUALITY_DRAFT
493 } GtkPrintQuality;
494
495 typedef enum {
496   GTK_PRINT_DUPLEX_SIMPLEX,
497   GTK_PRINT_DUPLEX_HORIZONTAL,
498   GTK_PRINT_DUPLEX_VERTICAL
499 } GtkPrintDuplex;
500
501
502 typedef enum {
503   GTK_UNIT_PIXEL,
504   GTK_UNIT_POINTS,
505   GTK_UNIT_INCH,
506   GTK_UNIT_MM
507 } GtkUnit;
508
509 G_END_DECLS
510
511 #endif /* __GTK_ENUMS_H__ */