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