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 36 G_BEGIN_DECLS 37 38 /* Anchor types */ 39 typedef 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 */ 61 typedef enum 62 { 63 GTK_ARROWS_BOTH, 64 GTK_ARROWS_START, 65 GTK_ARROWS_END 66 } GtkArrowPlacement; 67 68 /* Arrow types */ 69 typedef 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) */ 79 typedef enum 80 { 81 GTK_EXPAND = 1 << 0, 82 GTK_SHRINK = 1 << 1, 83 GTK_FILL = 1 << 2 84 } GtkAttachOptions; 85 86 /* Button box styles */ 87 typedef 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 */ 99 typedef 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 107 typedef 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 */ 122 typedef 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 */ 133 typedef 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 */ 142 typedef 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 */ 154 typedef 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 */ 163 typedef 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 */ 173 typedef 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?) */ 181 typedef 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 */ 191 typedef 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 */ 203 typedef 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 */ 221 typedef 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 230 typedef enum 231 { 232 GTK_PIXELS, 233 GTK_INCHES, 234 GTK_CENTIMETERS 235 } GtkMetricType; 236 237 typedef 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 251 typedef 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. */ 262 typedef enum 263 { 264 GTK_ORIENTATION_HORIZONTAL, 265 GTK_ORIENTATION_VERTICAL 266 } GtkOrientation; 267 268 /* Placement type for scrolled window */ 269 typedef 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) */ 278 typedef enum 279 { 280 GTK_PACK_START, 281 GTK_PACK_END 282 } GtkPackType; 283 284 /* priorities for path lookups */ 285 typedef 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 */ 297 typedef 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) */ 305 typedef enum 306 { 307 GTK_POLICY_ALWAYS, 308 GTK_POLICY_AUTOMATIC, 309 GTK_POLICY_NEVER 310 } GtkPolicyType; 311 312 typedef 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 321 typedef enum 322 { 323 GTK_PREVIEW_COLOR, 324 GTK_PREVIEW_GRAYSCALE 325 } GtkPreviewType; 326 #endif /* GTK_DISABLE_DEPRECATED */ 327 328 /* Style for buttons */ 329 typedef enum 330 { 331 GTK_RELIEF_NORMAL, 332 GTK_RELIEF_HALF, 333 GTK_RELIEF_NONE 334 } GtkReliefStyle; 335 336 /* Resize type */ 337 typedef 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 */ 346 typedef 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 */ 358 typedef 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 */ 379 typedef 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 */ 389 typedef 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 */ 399 typedef 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 */ 410 typedef enum 411 { 412 GTK_DIRECTION_LEFT, 413 GTK_DIRECTION_RIGHT 414 } GtkSubmenuDirection; 415 416 /* Placement of submenus */ 417 typedef enum 418 { 419 GTK_TOP_BOTTOM, 420 GTK_LEFT_RIGHT 421 } GtkSubmenuPlacement; 422 #endif /* GTK_DISABLE_DEPRECATED */ 423 424 /* Style for toolbars */ 425 typedef 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) */ 434 typedef enum 435 { 436 GTK_UPDATE_CONTINUOUS, 437 GTK_UPDATE_DISCONTINUOUS, 438 GTK_UPDATE_DELAYED 439 } GtkUpdateType; 440 441 /* Generic visibility flags */ 442 typedef enum 443 { 444 GTK_VISIBILITY_NONE, 445 GTK_VISIBILITY_PARTIAL, 446 GTK_VISIBILITY_FULL 447 } GtkVisibility; 448 449 /* Window position types */ 450 typedef 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 */ 460 typedef enum 461 { 462 GTK_WINDOW_TOPLEVEL, 463 GTK_WINDOW_POPUP 464 } GtkWindowType; 465 466 /* Text wrap */ 467 typedef 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 */ 476 typedef enum 477 { 478 GTK_SORT_ASCENDING, 479 GTK_SORT_DESCENDING 480 } GtkSortType; 481 482 /* Style for gtk input method preedit/status */ 483 typedef enum 484 { 485 GTK_IM_PREEDIT_NOTHING, 486 GTK_IM_PREEDIT_CALLBACK, 487 GTK_IM_PREEDIT_NONE 488 } GtkIMPreeditStyle; 489 490 typedef enum 491 { 492 GTK_IM_STATUS_NOTHING, 493 GTK_IM_STATUS_CALLBACK, 494 GTK_IM_STATUS_NONE 495 } GtkIMStatusStyle; 496 497 typedef 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 505 typedef 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 513 typedef enum 514 { 515 GTK_PAGE_SET_ALL, 516 GTK_PAGE_SET_EVEN, 517 GTK_PAGE_SET_ODD 518 } GtkPageSet; 519 520 typedef 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 532 typedef 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 540 typedef 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 548 typedef enum 549 { 550 GTK_PRINT_DUPLEX_SIMPLEX, 551 GTK_PRINT_DUPLEX_HORIZONTAL, 552 GTK_PRINT_DUPLEX_VERTICAL 553 } GtkPrintDuplex; 554 555 556 typedef enum 557 { 558 GTK_UNIT_PIXEL, 559 GTK_UNIT_POINTS, 560 GTK_UNIT_INCH, 561 GTK_UNIT_MM 562 } GtkUnit; 563 564 typedef 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 572 typedef 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 582 G_END_DECLS 583 584 #endif /* __GTK_ENUMS_H__ */ 585