gtkenums.h 32.4 KB
Newer Older
Cody Russell's avatar
Cody Russell committed
1
/* GTK - The GIMP Toolkit
Elliot Lee's avatar
Elliot Lee committed
2 3 4
 * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
 *
 * This library is free software; you can redistribute it and/or
5
 * modify it under the terms of the GNU Lesser General Public
Elliot Lee's avatar
Elliot Lee committed
6 7 8 9 10
 * License as published by the Free Software Foundation; either
 * version 2 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * 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.
Elliot Lee's avatar
Elliot Lee committed
13
 *
14
 * You should have received a copy of the GNU Lesser General Public
Javier Jardón's avatar
Javier Jardón committed
15
 * License along with this library. If not, see <http://www.gnu.org/licenses/>.
Elliot Lee's avatar
Elliot Lee committed
16
 */
17 18

/*
19
 * Modified by the GTK+ Team and others 1997-2000.  See the AUTHORS
20 21
 * file for a list of people on the GTK+ Team.  See the ChangeLog
 * files for a list of changes.  These files are distributed with
22
 * GTK+ at ftp://ftp.gtk.org/pub/gtk/.
23 24
 */

25
#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION)
26 27 28
#error "Only <gtk/gtk.h> can be included directly."
#endif

Elliot Lee's avatar
Elliot Lee committed
29 30 31
#ifndef __GTK_ENUMS_H__
#define __GTK_ENUMS_H__

32
#include <glib-object.h>
33

Matthias Clasen's avatar
Matthias Clasen committed
34 35 36 37 38 39 40 41

/**
 * SECTION:gtkenum
 * @Short_description: Public enumerated types used throughout GTK+
 * @Title: Standard Enumerations
 */


42
G_BEGIN_DECLS
43

44 45 46
/**
 * GtkAlign:
 * @GTK_ALIGN_FILL: stretch to fill all space if possible, center if
47
 *     no meaningful way to stretch
48
 * @GTK_ALIGN_START: snap to left or top side, leaving space on right
49
 *     or bottom
50
 * @GTK_ALIGN_END: snap to right or bottom side, leaving space on left
51
 *     or top
52
 * @GTK_ALIGN_CENTER: center natural width of widget inside the
53
 *     allocation
54 55 56 57
 *
 * Controls how a widget deals with extra space in a single (x or y)
 * dimension.
 *
58 59
 * Alignment only matters if the widget receives a "too large" allocation,
 * for example if you packed the widget with the #GtkWidget:expand
60 61 62 63
 * flag inside a #GtkBox, then the widget might get extra space.  If
 * you have for example a 16x16 icon inside a 32x32 space, the icon
 * could be scaled and stretched, it could be centered, or it could be
 * positioned to one side of the space.
64 65 66
 *
 * Note that in horizontal context @GTK_ALIGN_START and @GTK_ALIGN_END
 * are interpreted relative to text direction.
67 68 69 70 71 72 73 74 75
 */
typedef enum
{
  GTK_ALIGN_FILL,
  GTK_ALIGN_START,
  GTK_ALIGN_END,
  GTK_ALIGN_CENTER
} GtkAlign;

Matthias Clasen's avatar
Matthias Clasen committed
76 77 78 79 80 81 82 83 84

/**
 * GtkArrowPlacement:
 * @GTK_ARROWS_BOTH: Place one arrow on each end of the menu.
 * @GTK_ARROWS_START: Place both arrows at the top of the menu.
 * @GTK_ARROWS_END: Place both arrows at the bottom of the menu.
 *
 * Used to specify the placement of scroll arrows in scrolling menus.
 */
85 86 87 88 89 90 91
typedef enum
{
  GTK_ARROWS_BOTH,
  GTK_ARROWS_START,
  GTK_ARROWS_END
} GtkArrowPlacement;

Matthias Clasen's avatar
Matthias Clasen committed
92
/**
93
 * GtkArrowType:
Matthias Clasen's avatar
Matthias Clasen committed
94 95 96 97 98 99 100 101
 * @GTK_ARROW_UP: Represents an upward pointing arrow.
 * @GTK_ARROW_DOWN: Represents a downward pointing arrow.
 * @GTK_ARROW_LEFT: Represents a left pointing arrow.
 * @GTK_ARROW_RIGHT: Represents a right pointing arrow.
 * @GTK_ARROW_NONE: No arrow. Since 2.10.
 *
 * Used to indicate the direction in which a #GtkArrow should point.
 */
Elliot Lee's avatar
Elliot Lee committed
102 103
typedef enum
{
104 105 106
  GTK_ARROW_UP,
  GTK_ARROW_DOWN,
  GTK_ARROW_LEFT,
Kristian Rietveld's avatar
Kristian Rietveld committed
107 108
  GTK_ARROW_RIGHT,
  GTK_ARROW_NONE
109
} GtkArrowType;
Elliot Lee's avatar
Elliot Lee committed
110

Matthias Clasen's avatar
Matthias Clasen committed
111 112 113 114 115 116 117 118 119 120
/**
 * GtkAttachOptions:
 * @GTK_EXPAND: the widget should expand to take up any extra space in its
 * container that has been allocated.
 * @GTK_SHRINK: the widget should shrink as and when possible.
 * @GTK_FILL: the widget should fill the space allocated to it.
 *
 * Denotes the expansion properties that a widget will have when it (or its
 * parent) is resized.
 */
Elliot Lee's avatar
Elliot Lee committed
121 122
typedef enum
{
123 124 125 126
  GTK_EXPAND = 1 << 0,
  GTK_SHRINK = 1 << 1,
  GTK_FILL   = 1 << 2
} GtkAttachOptions;
Elliot Lee's avatar
Elliot Lee committed
127

Matthias Clasen's avatar
Matthias Clasen committed
128 129 130 131 132 133 134 135 136 137 138 139 140 141
/**
 * GtkButtonBoxStyle:
 * @GTK_BUTTONBOX_DEFAULT_STYLE: Default packing.
 * @GTK_BUTTONBOX_SPREAD: Buttons are evenly spread across the box.
 * @GTK_BUTTONBOX_EDGE: Buttons are placed at the edges of the box.
 * @GTK_BUTTONBOX_START: Buttons are grouped towards the start of the box,
 *   (on the left for a HBox, or the top for a VBox).
 * @GTK_BUTTONBOX_END: Buttons are grouped towards the end of the box,
 *   (on the right for a HBox, or the bottom for a VBox).
 * @GTK_BUTTONBOX_CENTER: Buttons are centered in the box. Since 2.12.
 *
 * Used to dictate the style that a #GtkButtonBox uses to layout the buttons it
 * contains. (See also: #GtkVButtonBox and #GtkHButtonBox).
 */
142
typedef enum
Elliot Lee's avatar
Elliot Lee committed
143
{
144
  GTK_BUTTONBOX_SPREAD = 1,
145 146
  GTK_BUTTONBOX_EDGE,
  GTK_BUTTONBOX_START,
147 148
  GTK_BUTTONBOX_END,
  GTK_BUTTONBOX_CENTER
149 150
} GtkButtonBoxStyle;

Matthias Clasen's avatar
Matthias Clasen committed
151

152 153
typedef enum
{
154 155 156 157 158 159 160 161 162
  GTK_DELETE_CHARS,
  GTK_DELETE_WORD_ENDS,           /* delete only the portion of the word to the
                                   * left/right of cursor if we're in the middle
                                   * of a word */
  GTK_DELETE_WORDS,
  GTK_DELETE_DISPLAY_LINES,
  GTK_DELETE_DISPLAY_LINE_ENDS,
  GTK_DELETE_PARAGRAPH_ENDS,      /* like C-k in Emacs (or its reverse) */
  GTK_DELETE_PARAGRAPHS,          /* C-k in pico, kill whole line */
163
  GTK_DELETE_WHITESPACE           /* M-\ in Emacs */
164 165
} GtkDeleteType;

Tim Janik's avatar
Tim Janik committed
166
/* Focus movement types */
Elliot Lee's avatar
Elliot Lee committed
167 168
typedef enum
{
169 170 171 172 173 174 175
  GTK_DIR_TAB_FORWARD,
  GTK_DIR_TAB_BACKWARD,
  GTK_DIR_UP,
  GTK_DIR_DOWN,
  GTK_DIR_LEFT,
  GTK_DIR_RIGHT
} GtkDirectionType;
Elliot Lee's avatar
Elliot Lee committed
176

Matthias Clasen's avatar
Matthias Clasen committed
177 178 179 180 181 182 183 184 185
/**
 * GtkExpanderStyle:
 * @GTK_EXPANDER_COLLAPSED: The style used for a collapsed subtree.
 * @GTK_EXPANDER_SEMI_COLLAPSED: Intermediate style used during animation.
 * @GTK_EXPANDER_SEMI_EXPANDED: Intermediate style used during animation.
 * @GTK_EXPANDER_EXPANDED: The style used for an expanded subtree.
 *
 * Used to specify the style of the expanders drawn by a #GtkTreeView.
 */
186 187 188 189 190 191 192 193
typedef enum
{
  GTK_EXPANDER_COLLAPSED,
  GTK_EXPANDER_SEMI_COLLAPSED,
  GTK_EXPANDER_SEMI_EXPANDED,
  GTK_EXPANDER_EXPANDED
} GtkExpanderStyle;

194 195 196 197 198 199 200 201
/* Built-in stock icon sizes */
typedef enum
{
  GTK_ICON_SIZE_INVALID,
  GTK_ICON_SIZE_MENU,
  GTK_ICON_SIZE_SMALL_TOOLBAR,
  GTK_ICON_SIZE_LARGE_TOOLBAR,
  GTK_ICON_SIZE_BUTTON,
202
  GTK_ICON_SIZE_DND,
203 204 205
  GTK_ICON_SIZE_DIALOG
} GtkIconSize;

206 207 208 209 210 211 212 213 214 215
/**
 * GtkSensitivityType:
 * @GTK_SENSITIVITY_AUTO: The arrow is made insensitive if the
 *   thumb is at the end
 * @GTK_SENSITIVITY_ON: The arrow is always sensitive
 * @GTK_SENSITIVITY_OFF: The arrow is always insensitive
 *
 * Determines how GTK+ handles the sensitivity of stepper arrows
 * at the end of range widgets.
 */
216 217 218 219 220 221 222
typedef enum
{
  GTK_SENSITIVITY_AUTO,
  GTK_SENSITIVITY_ON,
  GTK_SENSITIVITY_OFF
} GtkSensitivityType;

223 224 225 226
/* Reading directions for text */
typedef enum
{
  GTK_TEXT_DIR_NONE,
227 228
  GTK_TEXT_DIR_LTR,
  GTK_TEXT_DIR_RTL
229 230
} GtkTextDirection;

Matthias Clasen's avatar
Matthias Clasen committed
231 232 233 234 235 236 237 238 239 240
/**
 * GtkJustification:
 * @GTK_JUSTIFY_LEFT: The text is placed at the left edge of the label.
 * @GTK_JUSTIFY_RIGHT: The text is placed at the right edge of the label.
 * @GTK_JUSTIFY_CENTER: The text is placed in the center of the label.
 * @GTK_JUSTIFY_FILL: The text is placed is distributed across the label.
 *
 * Used for justifying the text inside a #GtkLabel widget. (See also
 * #GtkAlignment).
 */
Elliot Lee's avatar
Elliot Lee committed
241 242
typedef enum
{
243 244 245 246 247
  GTK_JUSTIFY_LEFT,
  GTK_JUSTIFY_RIGHT,
  GTK_JUSTIFY_CENTER,
  GTK_JUSTIFY_FILL
} GtkJustification;
Tim Janik's avatar
Tim Janik committed
248

249 250 251 252 253 254 255 256 257
/**
 * GtkMenuDirectionType:
 * @GTK_MENU_DIR_PARENT: To the parent menu shell
 * @GTK_MENU_DIR_CHILD: To the submenu, if any, associated with the item
 * @GTK_MENU_DIR_NEXT: To the next menu item
 * @GTK_MENU_DIR_PREV: To the previous menu item
 *
 * An enumeration representing directional movements within a menu.
 */
258 259 260 261 262 263 264 265
typedef enum
{
  GTK_MENU_DIR_PARENT,
  GTK_MENU_DIR_CHILD,
  GTK_MENU_DIR_NEXT,
  GTK_MENU_DIR_PREV
} GtkMenuDirectionType;

266 267 268 269 270 271 272 273 274 275
/**
 * GtkMessageType:
 * @GTK_MESSAGE_INFO: Informational message
 * @GTK_MESSAGE_WARNING: Nonfatal warning message
 * @GTK_MESSAGE_QUESTION: Question requiring a choice
 * @GTK_MESSAGE_ERROR: Fatal error message
 * @GTK_MESSAGE_OTHER: None of the above, doesn't get an icon
 *
 * The type of message being displayed in the dialog.
 */
276 277 278 279 280 281 282 283 284
typedef enum
{
  GTK_MESSAGE_INFO,
  GTK_MESSAGE_WARNING,
  GTK_MESSAGE_QUESTION,
  GTK_MESSAGE_ERROR,
  GTK_MESSAGE_OTHER
} GtkMessageType;

285 286 287 288 289 290 291 292 293 294 295 296 297
/**
 * GtkMovementStep:
 * @GTK_MOVEMENT_LOGICAL_POSITIONS: Move forward or back by graphemes
 * @GTK_MOVEMENT_VISUAL_POSITIONS:  Move left or right by graphemes
 * @GTK_MOVEMENT_WORDS:             Move forward or back by words
 * @GTK_MOVEMENT_DISPLAY_LINES:     Move up or down lines (wrapped lines)
 * @GTK_MOVEMENT_DISPLAY_LINE_ENDS: Move to either end of a line
 * @GTK_MOVEMENT_PARAGRAPHS:        Move up or down paragraphs (newline-ended lines)
 * @GTK_MOVEMENT_PARAGRAPH_ENDS:    Move to either end of a paragraph
 * @GTK_MOVEMENT_PAGES:             Move by pages
 * @GTK_MOVEMENT_BUFFER_ENDS:       Move to ends of the buffer
 * @GTK_MOVEMENT_HORIZONTAL_PAGES:  Move horizontally by pages
 */
298
typedef enum
299
{
300 301 302 303 304 305 306 307 308 309
  GTK_MOVEMENT_LOGICAL_POSITIONS,
  GTK_MOVEMENT_VISUAL_POSITIONS,
  GTK_MOVEMENT_WORDS,
  GTK_MOVEMENT_DISPLAY_LINES,
  GTK_MOVEMENT_DISPLAY_LINE_ENDS,
  GTK_MOVEMENT_PARAGRAPHS,
  GTK_MOVEMENT_PARAGRAPH_ENDS,
  GTK_MOVEMENT_PAGES,
  GTK_MOVEMENT_BUFFER_ENDS,
  GTK_MOVEMENT_HORIZONTAL_PAGES
310 311
} GtkMovementStep;

312
typedef enum
313 314 315 316 317 318 319 320 321
{
  GTK_SCROLL_STEPS,
  GTK_SCROLL_PAGES,
  GTK_SCROLL_ENDS,
  GTK_SCROLL_HORIZONTAL_STEPS,
  GTK_SCROLL_HORIZONTAL_PAGES,
  GTK_SCROLL_HORIZONTAL_ENDS
} GtkScrollStep;

Matthias Clasen's avatar
Matthias Clasen committed
322 323 324 325 326 327 328 329
/**
 * GtkOrientation:
 * @GTK_ORIENTATION_HORIZONTAL: The widget is in horizontal orientation.
 * @GTK_ORIENTATION_VERTICAL: The widget is in vertical orientation.
 *
 * Represents the orientation of widgets which can be switched between horizontal
 * and vertical orientation on the fly, like #GtkToolbar.
 */
Elliot Lee's avatar
Elliot Lee committed
330 331
typedef enum
{
332 333 334
  GTK_ORIENTATION_HORIZONTAL,
  GTK_ORIENTATION_VERTICAL
} GtkOrientation;
Elliot Lee's avatar
Elliot Lee committed
335

Matthias Clasen's avatar
Matthias Clasen committed
336 337 338 339 340 341 342 343 344 345 346 347 348 349 350
/**
 * GtkCornerType:
 * @GTK_CORNER_TOP_LEFT: Place the scrollbars on the right and bottom of the
 *  widget (default behaviour).
 * @GTK_CORNER_BOTTOM_LEFT: Place the scrollbars on the top and right of the
 *  widget.
 * @GTK_CORNER_TOP_RIGHT: Place the scrollbars on the left and bottom of the
 *  widget.
 * @GTK_CORNER_BOTTOM_RIGHT: Place the scrollbars on the top and left of the
 *  widget.
 *
 * Specifies which corner a child widget should be placed in when packed into
 * a #GtkScrolledWindow. This is effectively the opposite of where the scroll
 * bars are placed.
 */
351 352 353 354 355 356 357 358
typedef enum
{
  GTK_CORNER_TOP_LEFT,
  GTK_CORNER_BOTTOM_LEFT,
  GTK_CORNER_TOP_RIGHT,
  GTK_CORNER_BOTTOM_RIGHT
} GtkCornerType;

Matthias Clasen's avatar
Matthias Clasen committed
359 360 361 362 363 364 365 366
/**
 * GtkPackType:
 * @GTK_PACK_START: The child is packed into the start of the box
 * @GTK_PACK_END: The child is packed into the end of the box
 *
 * Represents the packing location #GtkBox children. (See: #GtkVBox,
 * #GtkHBox, and #GtkButtonBox).
 */
Elliot Lee's avatar
Elliot Lee committed
367 368
typedef enum
{
369 370 371
  GTK_PACK_START,
  GTK_PACK_END
} GtkPackType;
Tim Janik's avatar
Tim Janik committed
372 373 374 375

/* priorities for path lookups */
typedef enum
{
376 377 378
  GTK_PATH_PRIO_LOWEST      = 0,
  GTK_PATH_PRIO_GTK	    = 4,
  GTK_PATH_PRIO_APPLICATION = 8,
379
  GTK_PATH_PRIO_THEME       = 10,
380
  GTK_PATH_PRIO_RC          = 12,
381
  GTK_PATH_PRIO_HIGHEST     = 15
382
} GtkPathPriorityType;
383
#define GTK_PATH_PRIO_MASK 0x0f
Tim Janik's avatar
Tim Janik committed
384 385 386 387

/* widget path types */
typedef enum
{
388 389 390 391
  GTK_PATH_WIDGET,
  GTK_PATH_WIDGET_CLASS,
  GTK_PATH_CLASS
} GtkPathType;
Tim Janik's avatar
Tim Janik committed
392

Matthias Clasen's avatar
Matthias Clasen committed
393 394 395 396 397 398 399 400 401
/**
 * GtkPolicyType:
 * @GTK_POLICY_ALWAYS: The scrollbar is always visible.
 * @GTK_POLICY_AUTOMATIC: The scrollbar will appear and disappear as necessary. For example,
 *  when all of a #GtkCList can not be seen.
 * @GTK_POLICY_NEVER: The scrollbar will never appear.
 *
 * Determines when a scroll bar will be visible.
 */
Tim Janik's avatar
Tim Janik committed
402 403
typedef enum
{
404
  GTK_POLICY_ALWAYS,
405 406
  GTK_POLICY_AUTOMATIC,
  GTK_POLICY_NEVER
407
} GtkPolicyType;
Elliot Lee's avatar
Elliot Lee committed
408

Matthias Clasen's avatar
Matthias Clasen committed
409 410 411 412 413 414 415 416 417 418 419
/**
 * GtkPositionType:
 * @GTK_POS_LEFT: The feature is at the left edge.
 * @GTK_POS_RIGHT: The feature is at the right edge.
 * @GTK_POS_TOP: The feature is at the top edge.
 * @GTK_POS_BOTTOM: The feature is at the bottom edge.
 *
 * Describes which edge of a widget a certain feature is positioned at, e.g. the
 * tabs of a #GtkNotebook, the handle of a #GtkHandleBox or the label of a
 * #GtkScale.
 */
Elliot Lee's avatar
Elliot Lee committed
420 421
typedef enum
{
422 423 424 425 426
  GTK_POS_LEFT,
  GTK_POS_RIGHT,
  GTK_POS_TOP,
  GTK_POS_BOTTOM
} GtkPositionType;
Elliot Lee's avatar
Elliot Lee committed
427

Matthias Clasen's avatar
Matthias Clasen committed
428 429 430 431 432 433 434 435
/**
 * GtkReliefStyle:
 * @GTK_RELIEF_NORMAL: Draw a normal relief.
 * @GTK_RELIEF_HALF: A half relief.
 * @GTK_RELIEF_NONE: No relief.
 *
 * Indicated the relief to be drawn around a #GtkButton.
 */
Elliot Lee's avatar
Elliot Lee committed
436 437
typedef enum
{
438
  GTK_RELIEF_NORMAL,
439
  GTK_RELIEF_HALF,
440 441 442
  GTK_RELIEF_NONE
} GtkReliefStyle;

Matthias Clasen's avatar
Matthias Clasen committed
443 444 445 446 447 448
/**
 * GtkResizeMode:
 * @GTK_RESIZE_PARENT: Pass resize request to the parent
 * @GTK_RESIZE_QUEUE: Queue resizes on this widget
 * @GTK_RESIZE_IMMEDIATE: Resize immediately. Deprecated.
 */
449 450
typedef enum
{
Matthias Clasen's avatar
Matthias Clasen committed
451 452 453
  GTK_RESIZE_PARENT,
  GTK_RESIZE_QUEUE,
  GTK_RESIZE_IMMEDIATE
454 455
} GtkResizeMode;

Tim Janik's avatar
Tim Janik committed
456 457 458
/* scrolling types */
typedef enum
{
459
  GTK_SCROLL_NONE,
460
  GTK_SCROLL_JUMP,
461 462 463 464
  GTK_SCROLL_STEP_BACKWARD,
  GTK_SCROLL_STEP_FORWARD,
  GTK_SCROLL_PAGE_BACKWARD,
  GTK_SCROLL_PAGE_FORWARD,
465 466 467 468 469 470 471
  GTK_SCROLL_STEP_UP,
  GTK_SCROLL_STEP_DOWN,
  GTK_SCROLL_PAGE_UP,
  GTK_SCROLL_PAGE_DOWN,
  GTK_SCROLL_STEP_LEFT,
  GTK_SCROLL_STEP_RIGHT,
  GTK_SCROLL_PAGE_LEFT,
472 473 474
  GTK_SCROLL_PAGE_RIGHT,
  GTK_SCROLL_START,
  GTK_SCROLL_END
475
} GtkScrollType;
Elliot Lee's avatar
Elliot Lee committed
476

Matthias Clasen's avatar
Matthias Clasen committed
477 478 479 480
/**
 * GtkSelectionMode:
 * @GTK_SELECTION_NONE: No selection is possible.
 * @GTK_SELECTION_SINGLE: Zero or one element may be selected.
481 482 483 484 485 486
 * @GTK_SELECTION_BROWSE: Exactly one element is selected.
 *     In some circumstances, such as initially or during a search
 *     operation, it's possible for no element to be selected with
 *     %GTK_SELECTION_BROWSE. What is really enforced is that the user
 *     can't deselect a currently selected element except by selecting
 *     another element.
Matthias Clasen's avatar
Matthias Clasen committed
487
 * @GTK_SELECTION_MULTIPLE: Any number of elements may be selected.
488 489 490
 *      The Ctrl key may be used to enlarge the selection, and Shift
 *      key to select between the focus and the child pointed to.
 *      Some widgets may also allow Click-drag to select a range of elements.
Matthias Clasen's avatar
Matthias Clasen committed
491 492 493 494
 * @GTK_SELECTION_EXTENDED: Deprecated, behaves identical to %GTK_SELECTION_MULTIPLE.
 *
 * Used to control what selections users are allowed to make.
 */
495 496
typedef enum
{
Matthias Clasen's avatar
Matthias Clasen committed
497
  GTK_SELECTION_NONE,
498 499
  GTK_SELECTION_SINGLE,
  GTK_SELECTION_BROWSE,
500
  GTK_SELECTION_MULTIPLE
501
} GtkSelectionMode;
Elliot Lee's avatar
Elliot Lee committed
502

Matthias Clasen's avatar
Matthias Clasen committed
503 504 505 506 507 508 509 510 511 512
/**
 * GtkShadowType:
 * @GTK_SHADOW_NONE: No outline.
 * @GTK_SHADOW_IN: The outline is bevelled inwards.
 * @GTK_SHADOW_OUT: The outline is bevelled outwards like a button.
 * @GTK_SHADOW_ETCHED_IN: The outline has a sunken 3d appearance.
 * @GTK_SHADOW_ETCHED_OUT: The outline has a raised 3d appearance.
 *
 * Used to change the appearance of an outline typically provided by a #GtkFrame.
 */
513 514
typedef enum
{
515 516 517 518 519 520
  GTK_SHADOW_NONE,
  GTK_SHADOW_IN,
  GTK_SHADOW_OUT,
  GTK_SHADOW_ETCHED_IN,
  GTK_SHADOW_ETCHED_OUT
} GtkShadowType;
Tim Janik's avatar
Tim Janik committed
521 522

/* Widget states */
523 524 525 526 527 528 529 530 531 532 533 534 535 536

/**
 * GtkStateType:
 * @GTK_STATE_NORMAL: State during normal operation.
 * @GTK_STATE_ACTIVE: State of a currently active widget, such as a depressed button.
 * @GTK_STATE_PRELIGHT: State indicating that the mouse pointer is over
 *                      the widget and the widget will respond to mouse clicks.
 * @GTK_STATE_SELECTED: State of a selected item, such the selected row in a list.
 * @GTK_STATE_INSENSITIVE: State indicating that the widget is
 *                         unresponsive to user actions.
 * @GTK_STATE_INCONSISTENT: The widget is inconsistent, such as checkbuttons
 *                          or radiobuttons that aren't either set to %TRUE nor %FALSE,
 *                          or buttons requiring the user attention.
 * @GTK_STATE_FOCUSED: The widget has the keyboard focus.
537 538 539 540 541
 *
 * This type indicates the current state of a widget; the state determines how
 * the widget is drawn. The #GtkStateType enumeration is also used to
 * identify different colors in a #GtkStyle for drawing, so states can be
 * used for subparts of a widget as well as entire widgets.
542
 */
Tim Janik's avatar
Tim Janik committed
543 544
typedef enum
{
545 546 547 548
  GTK_STATE_NORMAL,
  GTK_STATE_ACTIVE,
  GTK_STATE_PRELIGHT,
  GTK_STATE_SELECTED,
549
  GTK_STATE_INSENSITIVE,
550
  GTK_STATE_INCONSISTENT,
Carlos Garnacho's avatar
Carlos Garnacho committed
551
  GTK_STATE_FOCUSED
552 553
} GtkStateType;

Matthias Clasen's avatar
Matthias Clasen committed
554 555 556 557 558 559 560 561 562 563 564 565 566 567
/**
 * GtkToolbarStyle:
 * @GTK_TOOLBAR_ICONS: Buttons display only icons in the toolbar.
 * @GTK_TOOLBAR_TEXT: Buttons display only text labels in the toolbar.
 * @GTK_TOOLBAR_BOTH: Buttons display text and icons in the toolbar.
 * @GTK_TOOLBAR_BOTH_HORIZ: Buttons display icons and text alongside each
 *  other, rather than vertically stacked
 *
 * Used to customize the appearance of a #GtkToolbar. Note that
 * setting the toolbar style overrides the user's preferences
 * for the default toolbar style.  Note that if the button has only
 * a label set and GTK_TOOLBAR_ICONS is used, the label will be
 * visible, and vice versa.
 */
568 569
typedef enum
{
570 571
  GTK_TOOLBAR_ICONS,
  GTK_TOOLBAR_TEXT,
572 573
  GTK_TOOLBAR_BOTH,
  GTK_TOOLBAR_BOTH_HORIZ
574
} GtkToolbarStyle;
575

Matthias Clasen's avatar
Matthias Clasen committed
576 577 578 579 580 581 582 583 584 585 586 587 588
/**
 * GtkWindowPosition:
 * @GTK_WIN_POS_NONE: No influence is made on placement.
 * @GTK_WIN_POS_CENTER: Windows should be placed in the center of the screen.
 * @GTK_WIN_POS_MOUSE: Windows should be placed at the current mouse position.
 * @GTK_WIN_POS_CENTER_ALWAYS: Keep window centered as it changes size, etc.
 * @GTK_WIN_POS_CENTER_ON_PARENT: Center the window on its transient
 *  parent (see gtk_window_set_transient_for()).
 *
 * Window placement can be influenced using this enumeration. Note that
 * using #GTK_WIN_POS_CENTER_ALWAYS is almost always a bad idea.
 * It won't necessarily work well with all window managers or on all windowing systems.
 */
Tim Janik's avatar
Tim Janik committed
589 590
typedef enum
{
591 592
  GTK_WIN_POS_NONE,
  GTK_WIN_POS_CENTER,
593
  GTK_WIN_POS_MOUSE,
594 595
  GTK_WIN_POS_CENTER_ALWAYS,
  GTK_WIN_POS_CENTER_ON_PARENT
596
} GtkWindowPosition;
Tim Janik's avatar
Tim Janik committed
597

Matthias Clasen's avatar
Matthias Clasen committed
598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616
/**
 * GtkWindowType:
 * @GTK_WINDOW_TOPLEVEL: A regular window, such as a dialog.
 * @GTK_WINDOW_POPUP: A special window such as a tooltip.
 *
 * A #GtkWindow can be one of these types. Most things you'd consider a
 * "window" should have type #GTK_WINDOW_TOPLEVEL; windows with this type
 * are managed by the window manager and have a frame by default (call
 * gtk_window_set_decorated() to toggle the frame).  Windows with type
 * #GTK_WINDOW_POPUP are ignored by the window manager; window manager
 * keybindings won't work on them, the window manager won't decorate the
 * window with a frame, many GTK+ features that rely on the window
 * manager will not work (e.g. resize grips and
 * maximization/minimization). #GTK_WINDOW_POPUP is used to implement
 * widgets such as #GtkMenu or tooltips that you normally don't think of
 * as windows per se. Nearly all windows should be #GTK_WINDOW_TOPLEVEL.
 * In particular, do not use #GTK_WINDOW_POPUP just to turn off
 * the window borders; use gtk_window_set_decorated() for that.
 */
Tim Janik's avatar
Tim Janik committed
617 618
typedef enum
{
619 620 621
  GTK_WINDOW_TOPLEVEL,
  GTK_WINDOW_POPUP
} GtkWindowType;
Tim Janik's avatar
Tim Janik committed
622

623 624 625 626 627 628 629 630 631 632 633 634
/**
 * GtkWrapMode:
 * @GTK_WRAP_NONE: do not wrap lines; just make the text area wider
 * @GTK_WRAP_CHAR: wrap text, breaking lines anywhere the cursor can
 *     appear (between characters, usually - if you want to be technical,
 *     between graphemes, see pango_get_log_attrs())
 * @GTK_WRAP_WORD: wrap text, breaking lines in between words
 * @GTK_WRAP_WORD_CHAR: wrap text, breaking lines in between words, or if
 *     that is not enough, also between graphemes
 *
 * Describes a type of line wrapping.
 */
635 636 637 638
typedef enum
{
  GTK_WRAP_NONE,
  GTK_WRAP_CHAR,
639 640
  GTK_WRAP_WORD,
  GTK_WRAP_WORD_CHAR
641 642
} GtkWrapMode;

Matthias Clasen's avatar
Matthias Clasen committed
643 644 645 646 647 648 649
/**
 * GtkSortType:
 * @GTK_SORT_ASCENDING: Sorting is in ascending order.
 * @GTK_SORT_DESCENDING: Sorting is in descending order.
 *
 * Determines the direction of a sort.
 */
Stefan Jeske's avatar
Stefan Jeske committed
650 651 652 653 654 655
typedef enum
{
  GTK_SORT_ASCENDING,
  GTK_SORT_DESCENDING
} GtkSortType;

656
/* Style for gtk input method preedit/status */
657 658 659
typedef enum
{
  GTK_IM_PREEDIT_NOTHING,
660 661
  GTK_IM_PREEDIT_CALLBACK,
  GTK_IM_PREEDIT_NONE
662 663 664 665 666
} GtkIMPreeditStyle;

typedef enum
{
  GTK_IM_STATUS_NOTHING,
667 668
  GTK_IM_STATUS_CALLBACK,
  GTK_IM_STATUS_NONE
669 670
} GtkIMStatusStyle;

671 672 673 674 675 676 677 678 679 680
/**
 * GtkPackDirection:
 * @GTK_PACK_DIRECTION_LTR: Widgets are packed left-to-right
 * @GTK_PACK_DIRECTION_RTL: Widgets are packed right-to-left
 * @GTK_PACK_DIRECTION_TTB: Widgets are packed top-to-bottom
 * @GTK_PACK_DIRECTION_BTT: Widgets are packed bottom-to-top
 *
 * Determines how widgets should be packed insided menubars
 * and menuitems contained in menubars.
 */
681 682 683 684 685 686 687
typedef enum
{
  GTK_PACK_DIRECTION_LTR,
  GTK_PACK_DIRECTION_RTL,
  GTK_PACK_DIRECTION_TTB,
  GTK_PACK_DIRECTION_BTT
} GtkPackDirection;
Elliot Lee's avatar
Elliot Lee committed
688

689 690
typedef enum
{
691 692
  GTK_PRINT_PAGES_ALL,
  GTK_PRINT_PAGES_CURRENT,
693 694
  GTK_PRINT_PAGES_RANGES,
  GTK_PRINT_PAGES_SELECTION
695 696
} GtkPrintPages;

697 698
typedef enum
{
699 700 701 702 703
  GTK_PAGE_SET_ALL,
  GTK_PAGE_SET_EVEN,
  GTK_PAGE_SET_ODD
} GtkPageSet;

704 705 706 707 708 709 710 711 712 713 714 715 716 717
/**
 * GtkNumberUpLayout:
 * @GTK_NUMBER_UP_LAYOUT_LEFT_TO_RIGHT_TOP_TO_BOTTOM: <inlinegraphic valign="middle" fileref="layout-lrtb.png" format="PNG"></inlinegraphic>
 * @GTK_NUMBER_UP_LAYOUT_LEFT_TO_RIGHT_BOTTOM_TO_TOP: <inlinegraphic valign="middle" fileref="layout-lrbt.png" format="PNG"></inlinegraphic>
 * @GTK_NUMBER_UP_LAYOUT_RIGHT_TO_LEFT_TOP_TO_BOTTOM: <inlinegraphic valign="middle" fileref="layout-rltb.png" format="PNG"></inlinegraphic>
 * @GTK_NUMBER_UP_LAYOUT_RIGHT_TO_LEFT_BOTTOM_TO_TOP: <inlinegraphic valign="middle" fileref="layout-rlbt.png" format="PNG"></inlinegraphic>
 * @GTK_NUMBER_UP_LAYOUT_TOP_TO_BOTTOM_LEFT_TO_RIGHT: <inlinegraphic valign="middle" fileref="layout-tblr.png" format="PNG"></inlinegraphic>
 * @GTK_NUMBER_UP_LAYOUT_TOP_TO_BOTTOM_RIGHT_TO_LEFT: <inlinegraphic valign="middle" fileref="layout-tbrl.png" format="PNG"></inlinegraphic>
 * @GTK_NUMBER_UP_LAYOUT_BOTTOM_TO_TOP_LEFT_TO_RIGHT: <inlinegraphic valign="middle" fileref="layout-btlr.png" format="PNG"></inlinegraphic>
 * @GTK_NUMBER_UP_LAYOUT_BOTTOM_TO_TOP_RIGHT_TO_LEFT: <inlinegraphic valign="middle" fileref="layout-btrl.png" format="PNG"></inlinegraphic>
 *
 * Used to determine the layout of pages on a sheet when printing
 * multiple pages per sheet.
 */
718 719
typedef enum
{
720 721 722 723 724 725 726 727
  GTK_NUMBER_UP_LAYOUT_LEFT_TO_RIGHT_TOP_TO_BOTTOM, /*< nick=lrtb >*/
  GTK_NUMBER_UP_LAYOUT_LEFT_TO_RIGHT_BOTTOM_TO_TOP, /*< nick=lrbt >*/
  GTK_NUMBER_UP_LAYOUT_RIGHT_TO_LEFT_TOP_TO_BOTTOM, /*< nick=rltb >*/
  GTK_NUMBER_UP_LAYOUT_RIGHT_TO_LEFT_BOTTOM_TO_TOP, /*< nick=rlbt >*/
  GTK_NUMBER_UP_LAYOUT_TOP_TO_BOTTOM_LEFT_TO_RIGHT, /*< nick=tblr >*/
  GTK_NUMBER_UP_LAYOUT_TOP_TO_BOTTOM_RIGHT_TO_LEFT, /*< nick=tbrl >*/
  GTK_NUMBER_UP_LAYOUT_BOTTOM_TO_TOP_LEFT_TO_RIGHT, /*< nick=btlr >*/
  GTK_NUMBER_UP_LAYOUT_BOTTOM_TO_TOP_RIGHT_TO_LEFT  /*< nick=btrl >*/
728 729
} GtkNumberUpLayout;

730 731
typedef enum
{
732 733 734 735 736 737
  GTK_PAGE_ORIENTATION_PORTRAIT,
  GTK_PAGE_ORIENTATION_LANDSCAPE,
  GTK_PAGE_ORIENTATION_REVERSE_PORTRAIT,
  GTK_PAGE_ORIENTATION_REVERSE_LANDSCAPE
} GtkPageOrientation;

738 739
typedef enum
{
740 741 742 743 744 745
  GTK_PRINT_QUALITY_LOW,
  GTK_PRINT_QUALITY_NORMAL,
  GTK_PRINT_QUALITY_HIGH,
  GTK_PRINT_QUALITY_DRAFT
} GtkPrintQuality;

746 747
typedef enum
{
748 749 750 751 752 753
  GTK_PRINT_DUPLEX_SIMPLEX,
  GTK_PRINT_DUPLEX_HORIZONTAL,
  GTK_PRINT_DUPLEX_VERTICAL
} GtkPrintDuplex;


754 755
typedef enum
{
756
  GTK_UNIT_NONE,
757 758 759 760 761
  GTK_UNIT_POINTS,
  GTK_UNIT_INCH,
  GTK_UNIT_MM
} GtkUnit;

762 763
#define GTK_UNIT_PIXEL GTK_UNIT_NONE

764 765 766 767 768 769 770 771 772
/**
 * GtkTreeViewGridLines:
 * @GTK_TREE_VIEW_GRID_LINES_NONE: No grid lines.
 * @GTK_TREE_VIEW_GRID_LINES_HORIZONTAL: Horizontal grid lines.
 * @GTK_TREE_VIEW_GRID_LINES_VERTICAL: Vertical grid lines.
 * @GTK_TREE_VIEW_GRID_LINES_BOTH: Horizontal and vertical grid lines.
 *
 * Used to indicate which grid lines to draw in a tree view.
 */
773 774
typedef enum
{
775 776 777 778 779 780
  GTK_TREE_VIEW_GRID_LINES_NONE,
  GTK_TREE_VIEW_GRID_LINES_HORIZONTAL,
  GTK_TREE_VIEW_GRID_LINES_VERTICAL,
  GTK_TREE_VIEW_GRID_LINES_BOTH
} GtkTreeViewGridLines;

Matthias Clasen's avatar
Matthias Clasen committed
781 782 783 784 785 786 787 788 789 790 791 792 793 794 795
/**
 * GtkDragResult:
 * @GTK_DRAG_RESULT_SUCCESS: The drag operation was successful.
 * @GTK_DRAG_RESULT_NO_TARGET: No suitable drag target.
 * @GTK_DRAG_RESULT_USER_CANCELLED: The user cancelled the drag operation.
 * @GTK_DRAG_RESULT_TIMEOUT_EXPIRED: The drag operation timed out.
 * @GTK_DRAG_RESULT_GRAB_BROKEN: The pointer or keyboard grab used
 *  for the drag operation was broken.
 * @GTK_DRAG_RESULT_ERROR: The drag operation failed due to some
 *  unspecified error.
 *
 * Gives an indication why a drag operation failed.
 * The value can by obtained by connecting to the
 * #GtkWidget::drag-failed signal.
 */
796 797
typedef enum
{
798 799 800 801 802 803 804 805
  GTK_DRAG_RESULT_SUCCESS,
  GTK_DRAG_RESULT_NO_TARGET,
  GTK_DRAG_RESULT_USER_CANCELLED,
  GTK_DRAG_RESULT_TIMEOUT_EXPIRED,
  GTK_DRAG_RESULT_GRAB_BROKEN,
  GTK_DRAG_RESULT_ERROR
} GtkDragResult;

806 807 808 809
/**
 * GtkSizeRequestMode:
 * @GTK_SIZE_REQUEST_HEIGHT_FOR_WIDTH: Prefer height-for-width geometry management
 * @GTK_SIZE_REQUEST_WIDTH_FOR_HEIGHT: Prefer width-for-height geometry management
810
 * @GTK_SIZE_REQUEST_CONSTANT_SIZE: Dont trade height-for-width or width-for-height
811 812 813 814 815 816 817
 * 
 * Specifies a preference for height-for-width or
 * width-for-height geometry management.
 */
typedef enum
{
  GTK_SIZE_REQUEST_HEIGHT_FOR_WIDTH = 0,
818 819
  GTK_SIZE_REQUEST_WIDTH_FOR_HEIGHT,
  GTK_SIZE_REQUEST_CONSTANT_SIZE
820 821
} GtkSizeRequestMode;

822 823 824 825 826 827 828 829 830 831 832 833 834 835
/**
 * GtkScrollablePolicy:
 * @GTK_SCROLL_MINIMUM: Scrollable adjustments are based on the minimum size
 * @GTK_SCROLL_NATURAL: Scrollable adjustments are based on the natural size
 *
 * Defines the policy to be used in a scrollable widget when updating
 * the scrolled window adjustments in a given orientation.
 */
typedef enum
{
  GTK_SCROLL_MINIMUM = 0,
  GTK_SCROLL_NATURAL
} GtkScrollablePolicy;

Carlos Garnacho's avatar
Carlos Garnacho committed
836 837
/**
 * GtkStateFlags:
838
 * @GTK_STATE_FLAG_NORMAL: State during normal operation.
Carlos Garnacho's avatar
Carlos Garnacho committed
839 840 841
 * @GTK_STATE_FLAG_ACTIVE: Widget is active.
 * @GTK_STATE_FLAG_PRELIGHT: Widget has a mouse pointer over it.
 * @GTK_STATE_FLAG_SELECTED: Widget is selected.
842
 * @GTK_STATE_FLAG_INSENSITIVE: Widget is insensitive.
Carlos Garnacho's avatar
Carlos Garnacho committed
843 844
 * @GTK_STATE_FLAG_INCONSISTENT: Widget is inconsistent.
 * @GTK_STATE_FLAG_FOCUSED: Widget has the keyboard focus.
845
 * @GTK_STATE_FLAG_BACKDROP: Widget is in a background toplevel window.
Carlos Garnacho's avatar
Carlos Garnacho committed
846 847 848
 *
 * Describes a widget state.
 */
Carlos Garnacho's avatar
Carlos Garnacho committed
849 850
typedef enum
{
851
  GTK_STATE_FLAG_NORMAL       = 0,
Carlos Garnacho's avatar
Carlos Garnacho committed
852 853 854 855 856
  GTK_STATE_FLAG_ACTIVE       = 1 << 0,
  GTK_STATE_FLAG_PRELIGHT     = 1 << 1,
  GTK_STATE_FLAG_SELECTED     = 1 << 2,
  GTK_STATE_FLAG_INSENSITIVE  = 1 << 3,
  GTK_STATE_FLAG_INCONSISTENT = 1 << 4,
857
  GTK_STATE_FLAG_FOCUSED      = 1 << 5,
858
  GTK_STATE_FLAG_BACKDROP     = 1 << 6
Carlos Garnacho's avatar
Carlos Garnacho committed
859 860
} GtkStateFlags;

Carlos Garnacho's avatar
Carlos Garnacho committed
861 862 863 864 865 866
/**
 * GtkRegionFlags:
 * @GTK_REGION_EVEN: Region has an even number within a set.
 * @GTK_REGION_ODD: Region has an odd number within a set.
 * @GTK_REGION_FIRST: Region is the first one within a set.
 * @GTK_REGION_LAST: Region is the last one within a set.
867
 * @GTK_REGION_ONLY: Region is the only one within a set.
Carlos Garnacho's avatar
Carlos Garnacho committed
868 869 870 871
 * @GTK_REGION_SORTED: Region is part of a sorted area.
 *
 * Describes a region within a widget.
 */
872
typedef enum {
873 874 875 876
  GTK_REGION_EVEN    = 1 << 0,
  GTK_REGION_ODD     = 1 << 1,
  GTK_REGION_FIRST   = 1 << 2,
  GTK_REGION_LAST    = 1 << 3,
877
  GTK_REGION_ONLY    = 1 << 4,
878 879
  GTK_REGION_SORTED  = 1 << 5
} GtkRegionFlags;
880

Carlos Garnacho's avatar
Carlos Garnacho committed
881 882 883
/**
 * GtkJunctionSides:
 * @GTK_JUNCTION_NONE: No junctions.
884 885 886 887
 * @GTK_JUNCTION_CORNER_TOPLEFT: Element connects on the top-left corner.
 * @GTK_JUNCTION_CORNER_TOPRIGHT: Element connects on the top-right corner.
 * @GTK_JUNCTION_CORNER_BOTTOMLEFT: Element connects on the bottom-left corner.
 * @GTK_JUNCTION_CORNER_BOTTOMRIGHT: Element connects on the bottom-right corner.
Carlos Garnacho's avatar
Carlos Garnacho committed
888 889 890 891 892 893 894
 * @GTK_JUNCTION_TOP: Element connects on the top side.
 * @GTK_JUNCTION_BOTTOM: Element connects on the bottom side.
 * @GTK_JUNCTION_LEFT: Element connects on the left side.
 * @GTK_JUNCTION_RIGHT: Element connects on the right side.
 *
 * Describes how a rendered element connects to adjacent elements.
 */
895 896
typedef enum {
  GTK_JUNCTION_NONE   = 0,
897 898 899 900 901 902 903 904
  GTK_JUNCTION_CORNER_TOPLEFT = 1 << 0,
  GTK_JUNCTION_CORNER_TOPRIGHT = 1 << 1,
  GTK_JUNCTION_CORNER_BOTTOMLEFT = 1 << 2,
  GTK_JUNCTION_CORNER_BOTTOMRIGHT = 1 << 3,
  GTK_JUNCTION_TOP    = (GTK_JUNCTION_CORNER_TOPLEFT | GTK_JUNCTION_CORNER_TOPRIGHT),
  GTK_JUNCTION_BOTTOM = (GTK_JUNCTION_CORNER_BOTTOMLEFT | GTK_JUNCTION_CORNER_BOTTOMRIGHT),
  GTK_JUNCTION_LEFT   = (GTK_JUNCTION_CORNER_TOPLEFT | GTK_JUNCTION_CORNER_BOTTOMLEFT),
  GTK_JUNCTION_RIGHT  = (GTK_JUNCTION_CORNER_TOPRIGHT | GTK_JUNCTION_CORNER_BOTTOMRIGHT)
905 906
} GtkJunctionSides;

907 908 909
/**
 * GtkBorderStyle:
 * @GTK_BORDER_STYLE_NONE: No visible border
910 911 912 913 914 915 916 917 918
 * @GTK_BORDER_STYLE_SOLID: A single line segment
 * @GTK_BORDER_STYLE_INSET: Looks as if the content is sunken into the canvas
 * @GTK_BORDER_STYLE_OUTSET: Looks as if the content is coming out of the canvas
 * @GTK_BORDER_STYLE_HIDDEN: Same as @GTK_BORDER_STYLE_NONE
 * @GTK_BORDER_STYLE_DOTTED: A series of round dots
 * @GTK_BORDER_STYLE_DASHED: A series of square-ended dashes
 * @GTK_BORDER_STYLE_DOUBLE: Two parrallel lines with some space between them
 * @GTK_BORDER_STYLE_GROOVE: Looks as if it were carved in the canvas
 * @GTK_BORDER_STYLE_RIDGE: Looks as if it were coming out of the canvas
919 920 921
 *
 * Describes how the border of a UI element should be rendered.
 */
922 923 924 925
typedef enum {
  GTK_BORDER_STYLE_NONE,
  GTK_BORDER_STYLE_SOLID,
  GTK_BORDER_STYLE_INSET,
926 927 928 929 930 931 932
  GTK_BORDER_STYLE_OUTSET,
  GTK_BORDER_STYLE_HIDDEN,
  GTK_BORDER_STYLE_DOTTED,
  GTK_BORDER_STYLE_DASHED,
  GTK_BORDER_STYLE_DOUBLE,
  GTK_BORDER_STYLE_GROOVE,
  GTK_BORDER_STYLE_RIDGE
933
} GtkBorderStyle;
Carlos Garnacho's avatar
Carlos Garnacho committed
934

935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950
/**
 * GtkLevelBarMode:
 * @GTK_LEVEL_BAR_MODE_CONTINUOUS: the bar has a continuous mode
 * @GTK_LEVEL_BAR_MODE_DISCRETE: the bar has a discrete mode
 *
 * Describes how #GtkLevelBar contents should be rendered.
 * Note that this enumeration could be extended with additional modes
 * in the future.
 *
 * Since: 3.6
 */
typedef enum {
  GTK_LEVEL_BAR_MODE_CONTINUOUS,
  GTK_LEVEL_BAR_MODE_DISCRETE
} GtkLevelBarMode;

951
G_END_DECLS
Elliot Lee's avatar
Elliot Lee committed
952

953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012
/**
 * GtkInputPurpose:
 * @GTK_INPUT_PURPOSE_FREE_FORM: Allow any character
 * @GTK_INPUT_PURPOSE_ALPHA: Allow only alphabetic characters
 * @GTK_INPUT_PURPOSE_DIGITS: Allow only digits
 * @GTK_INPUT_PURPOSE_NUMBER: Edited field expects numbers
 * @GTK_INPUT_PURPOSE_PHONE: Edited field expects phone number
 * @GTK_INPUT_PURPOSE_URL: Edited field expects URL
 * @GTK_INPUT_PURPOSE_EMAIL: Edited field expects email address
 * @GTK_INPUT_PURPOSE_NAME: Edited field expects the name of a person
 * @GTK_INPUT_PURPOSE_PASSWORD: Like @GTK_INPUT_PURPOSE_FREE_FORM, but characters are hidden
 * @GTK_INPUT_PURPOSE_PIN: Like @GTK_INPUT_PURPOSE_DIGITS, but characters are hidden
 *
 * Describes primary purpose of the input widget. This information is
 * useful for on-screen keyboards and similar input methods to decide
 * which keys should be presented to the user.
 *
 * Note that the purpose is not meant to impose a totally strict rule
 * about allowed characters, and does not replace input validation.
 * It is fine for an on-screen keyboard to let the user override the
 * character set restriction that is expressed by the purpose. The
 * application is expected to validate the entry contents, even if
 * it specified a purpose.
 *
 * The difference between @GTK_INPUT_PURPOSE_DIGITS and
 * @GTK_INPUT_PURPOSE_NUMBER is that the former accepts only digits
 * while the latter also some punctuation (like commas or points, plus,
 * minus) and 'e' or 'E' as in 3.14E+000.
 *
 * This enumeration may be extended in the future; input methods should
 * interpret unknown values as 'free form'.
 *
 * Since: 3.6
 */
typedef enum
{
  GTK_INPUT_PURPOSE_FREE_FORM,
  GTK_INPUT_PURPOSE_ALPHA,
  GTK_INPUT_PURPOSE_DIGITS,
  GTK_INPUT_PURPOSE_NUMBER,
  GTK_INPUT_PURPOSE_PHONE,
  GTK_INPUT_PURPOSE_URL,
  GTK_INPUT_PURPOSE_EMAIL,
  GTK_INPUT_PURPOSE_NAME,
  GTK_INPUT_PURPOSE_PASSWORD,
  GTK_INPUT_PURPOSE_PIN
} GtkInputPurpose;

/**
 * GtkInputHints:
 * @GDK_INPUT_HINT_NONE: No special behaviour suggested
 * @GTK_INPUT_HINT_SPELLCHECK: Suggest checking for typos
 * @GTK_INPUT_HINT_NO_SPELLCHECK: Suggest not checking for typos
 * @GTK_INPUT_HINT_WORD_COMPLETION: Suggest word completion
 * @GTK_INPUT_HINT_LOWERCASE: Suggest to convert all text to lowercase
 * @GTK_INPUT_HINT_UPPERCASE_CHARS: Suggest to capitalize all text
 * @GTK_INPUT_HINT_UPPERCASE_WORDS: Suggest to capitalize the first
 *     character of each word
 * @GTK_INPUT_HINT_UPPERCASE_SENTENCES: Suggest to capitalize the
 *     first word of each sentence
1013 1014
 * @GTK_INPUT_HINT_INHIBIT_OSK: Suggest to not show an onscreen keyboard
 *     (e.g for a calculator that already has all the keys).
1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036
 *
 * Describes hints that might be taken into account by input methods
 * or applications. Note that input methods may already tailor their
 * behaviour according to the #GtkInputPurpose of the entry.
 *
 * Some common sense is expected when using these flags - mixing
 * @GTK_INPUT_HINT_LOWERCASE with any of the uppercase hints makes no sense.
 *
 * This enumeration may be extended in the future; input methods should
 * ignore unknown values.
 *
 * Since: 3.6
 */
typedef enum
{
  GTK_INPUT_HINT_NONE                = 0,
  GTK_INPUT_HINT_SPELLCHECK          = 1 << 0,
  GTK_INPUT_HINT_NO_SPELLCHECK       = 1 << 1,
  GTK_INPUT_HINT_WORD_COMPLETION     = 1 << 2,
  GTK_INPUT_HINT_LOWERCASE           = 1 << 3,
  GTK_INPUT_HINT_UPPERCASE_CHARS     = 1 << 4,
  GTK_INPUT_HINT_UPPERCASE_WORDS     = 1 << 5,
1037 1038
  GTK_INPUT_HINT_UPPERCASE_SENTENCES = 1 << 6,
  GTK_INPUT_HINT_INHIBIT_OSK         = 1 << 7
1039
} GtkInputHints;
1040

Elliot Lee's avatar
Elliot Lee committed
1041
#endif /* __GTK_ENUMS_H__ */