## Standard Enumerations

Standard Enumerations — Public enumerated types used throughout GTK+

## Synopsis

    #include <gtk/gtk.h>

    enum        GtkAccelFlags;
    enum        GtkAnchorType;
    enum        GtkArrowType;
    enum        GtkAttachOptions;
    enum        GtkButtonBoxStyle;
    enum        GtkCornerType;
    enum        GtkCurveType;
    enum        GtkDeleteType;
    enum        GtkDirectionType;
    enum        GtkExpanderStyle;
    enum        GtkIMPreeditStyle;
    enum        GtkIMStatusStyle;
    enum        GtkJustification;
    enum        GtkMatchType;
    enum        GtkMetricType;
    enum        GtkMovementStep;
    enum        GtkOrientation;
    enum        GtkPackType;
    enum        GtkPathPriorityType;
    enum        GtkPathType;
    enum        GtkPolicyType;
    enum        GtkPositionType;
    enum        GtkPreviewType;
    enum        GtkReliefStyle;
    enum        GtkResizeMode;
    enum        GtkScrollStep;
    enum        GtkScrollType;
    enum        GtkSelectionMode;
    enum        GtkShadowType;
    enum        GtkSideType;
    enum        GtkStateType;
    enum        GtkSubmenuDirection;
    enum        GtkSubmenuPlacement;
    enum        GtkToolbarStyle;
    enum        GtkUpdateType;
    enum        GtkVisibility;
    enum        GtkWindowPosition;
    enum        GtkWindowType;
    enum        GtkSortType;

## Description

## Details

### enum GtkAccelFlags

    typedef enum
    {
      GTK_ACCEL_VISIBLE        = 1 << 0,	/* display in GtkAccelLabel? */
      GTK_ACCEL_LOCKED         = 1 << 1,	/* is it removable? */
      GTK_ACCEL_MASK           = 0x07
    } GtkAccelFlags;

### enum GtkAnchorType

    typedef enum
    {
      GTK_ANCHOR_CENTER,
      GTK_ANCHOR_NORTH,
      GTK_ANCHOR_NORTH_WEST,
      GTK_ANCHOR_NORTH_EAST,
      GTK_ANCHOR_SOUTH,
      GTK_ANCHOR_SOUTH_WEST,
      GTK_ANCHOR_SOUTH_EAST,
      GTK_ANCHOR_WEST,
      GTK_ANCHOR_EAST,
      GTK_ANCHOR_N		= GTK_ANCHOR_NORTH,
      GTK_ANCHOR_NW		= GTK_ANCHOR_NORTH_WEST,
      GTK_ANCHOR_NE		= GTK_ANCHOR_NORTH_EAST,
      GTK_ANCHOR_S		= GTK_ANCHOR_SOUTH,
      GTK_ANCHOR_SW		= GTK_ANCHOR_SOUTH_WEST,
      GTK_ANCHOR_SE		= GTK_ANCHOR_SOUTH_EAST,
      GTK_ANCHOR_W		= GTK_ANCHOR_WEST,
      GTK_ANCHOR_E		= GTK_ANCHOR_EAST
    } GtkAnchorType;

### enum GtkArrowType

    typedef enum
    {
      GTK_ARROW_UP,
      GTK_ARROW_DOWN,
      GTK_ARROW_LEFT,
      GTK_ARROW_RIGHT
    } GtkArrowType;

Used to indicate the direction in which a GtkArrow should point.

`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.

### enum GtkAttachOptions

    typedef enum
    {
      GTK_EXPAND = 1 << 0,
      GTK_SHRINK = 1 << 1,
      GTK_FILL   = 1 << 2
    } GtkAttachOptions;

Denotes the expansion properties that a widget will have when it (or its parent) is resized.

`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.

### enum GtkButtonBoxStyle

    typedef enum
    {
      GTK_BUTTONBOX_DEFAULT_STYLE,
      GTK_BUTTONBOX_SPREAD,
      GTK_BUTTONBOX_EDGE,
      GTK_BUTTONBOX_START,
      GTK_BUTTONBOX_END
    } GtkButtonBoxStyle;

Used to dictate the style that a GtkButtonBox uses to layout the buttons it contains. (See also: GtkVButtonBox and GtkHButtonBox).

`GTK_BUTTONBOX_DEFAULT_STYLE` | Default packing.
`GTK_BUTTONBOX_SPREAD` | Buttons are evenly spread across the ButtonBox.
`GTK_BUTTONBOX_EDGE` | Buttons are placed at the edges of the ButtonBox.
`GTK_BUTTONBOX_START` | Buttons are grouped towards the start of box, (on the left for a HBox, or the top for a VBox).
`GTK_BUTTONBOX_END` | Buttons are grouped towards the end of a box, (on the right for a HBox, or the bottom for a VBox).

### enum GtkCornerType

    typedef enum
    {
      GTK_CORNER_TOP_LEFT,
      GTK_CORNER_BOTTOM_LEFT,
      GTK_CORNER_TOP_RIGHT,
      GTK_CORNER_BOTTOM_RIGHT
    } GtkCornerType;

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.

`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.

### enum GtkCurveType

    typedef enum
    {
      GTK_CURVE_TYPE_LINEAR,       /* linear interpolation */
      GTK_CURVE_TYPE_SPLINE,       /* spline interpolation */
      GTK_CURVE_TYPE_FREE          /* free form curve */
    } GtkCurveType;

### enum GtkDeleteType

    typedef enum {
      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 */
      GTK_DELETE_WHITESPACE           /* M-\ in Emacs */
    } GtkDeleteType;

### enum GtkDirectionType

    typedef enum
    {
      GTK_DIR_TAB_FORWARD,
      GTK_DIR_TAB_BACKWARD,
      GTK_DIR_UP,
      GTK_DIR_DOWN,
      GTK_DIR_LEFT,
      GTK_DIR_RIGHT
    } GtkDirectionType;

### enum GtkExpanderStyle

    typedef enum
    {
      GTK_EXPANDER_COLLAPSED,
      GTK_EXPANDER_SEMI_COLLAPSED,
      GTK_EXPANDER_SEMI_EXPANDED,
      GTK_EXPANDER_EXPANDED
    } GtkExpanderStyle;

Used to specify the style of the expanders drawn by a GtkTreeView.

`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.

### enum GtkIMPreeditStyle

    typedef enum
    {
      GTK_IM_PREEDIT_NOTHING,
      GTK_IM_PREEDIT_CALLBACK,
      GTK_IM_PREEDIT_NONE
    } GtkIMPreeditStyle;

### enum GtkIMStatusStyle

    typedef enum
    {
      GTK_IM_STATUS_NOTHING,
      GTK_IM_STATUS_CALLBACK,
      GTK_IM_STATUS_NONE
    } GtkIMStatusStyle;

### enum GtkJustification

    typedef enum
    {
      GTK_JUSTIFY_LEFT,
      GTK_JUSTIFY_RIGHT,
      GTK_JUSTIFY_CENTER,
      GTK_JUSTIFY_FILL
    } GtkJustification;

Used for justifying the text inside a GtkLabel widget. (See also GtkAlignment).

`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.

### enum GtkMatchType

    typedef enum
    {
      GTK_MATCH_ALL,       /* "*A?A*" */
      GTK_MATCH_ALL_TAIL,  /* "*A?AA" */
      GTK_MATCH_HEAD,      /* "AAAA*" */
      GTK_MATCH_TAIL,      /* "*AAAA" */
      GTK_MATCH_EXACT,     /* "AAAAA" */
      GTK_MATCH_LAST
    } GtkMatchType;

### Warning

`GtkMatchType` is deprecated and should not be used in newly-written code.

### enum GtkMetricType

    typedef enum
    {
      GTK_PIXELS,
      GTK_INCHES,
      GTK_CENTIMETERS
    } GtkMetricType;

Used to indicate which metric is used by a GtkRuler.

`GTK_PIXELS` | Pixels.
`GTK_INCHES` | Inches.
`GTK_CENTIMETERS` | Centimeters.

### enum GtkMovementStep

    typedef enum
    {
      GTK_MOVEMENT_LOGICAL_POSITIONS, /* move by forw/back graphemes */
      GTK_MOVEMENT_VISUAL_POSITIONS,  /* move by left/right graphemes */
      GTK_MOVEMENT_WORDS,             /* move by forward/back words */
      GTK_MOVEMENT_DISPLAY_LINES,     /* move up/down lines (wrapped lines) */
      GTK_MOVEMENT_DISPLAY_LINE_ENDS, /* move up/down lines (wrapped lines) */
      GTK_MOVEMENT_PARAGRAPHS,        /* move up/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 */
    } GtkMovementStep;

### enum GtkOrientation

    typedef enum
    {
      GTK_ORIENTATION_HORIZONTAL,
      GTK_ORIENTATION_VERTICAL
    } GtkOrientation;

Represents the orientation of widgets which can be switched between horizontal and vertical orientation on the fly, like GtkToolbar.

`GTK_ORIENTATION_HORIZONTAL` | The widget is in horizontal orientation.
`GTK_ORIENTATION_VERTICAL` | The widget is in vertical orientation.

### enum GtkPackType

    typedef enum
    {
      GTK_PACK_START,
      GTK_PACK_END
    } GtkPackType;

Represents the packing location GtkBox children. (See: GtkVBox, GtkHBox, and GtkButtonBox).

`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

### enum GtkPathPriorityType

    typedef enum
    {
      GTK_PATH_PRIO_LOWEST      = 0,
      GTK_PATH_PRIO_GTK	    = 4,
      GTK_PATH_PRIO_APPLICATION = 8,
      GTK_PATH_PRIO_THEME       = 10,
      GTK_PATH_PRIO_RC          = 12,
      GTK_PATH_PRIO_HIGHEST     = 15
    } GtkPathPriorityType;

### enum GtkPathType

    typedef enum
    {
      GTK_PATH_WIDGET,
      GTK_PATH_WIDGET_CLASS,
      GTK_PATH_CLASS
    } GtkPathType;

### enum GtkPolicyType

    typedef enum
    {
      GTK_POLICY_ALWAYS,
      GTK_POLICY_AUTOMATIC,
      GTK_POLICY_NEVER
    } GtkPolicyType;

Determines when a scroll bar will be visible.

`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.

### enum GtkPositionType

    typedef enum
    {
      GTK_POS_LEFT,
      GTK_POS_RIGHT,
      GTK_POS_TOP,
      GTK_POS_BOTTOM
    } GtkPositionType;

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.

`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.

### enum GtkPreviewType

    typedef enum
    {
      GTK_PREVIEW_COLOR,
      GTK_PREVIEW_GRAYSCALE
    } GtkPreviewType;

### Warning

`GtkPreviewType` is deprecated and should not be used in newly-written code.

An enumeration which describes whether a preview contains grayscale or red-green-blue data.

`GTK_PREVIEW_COLOR` | the preview contains red-green-blue data.
`GTK_PREVIEW_GRAYSCALE` | The preview contains grayscale data.

### enum GtkReliefStyle

    typedef enum
    {
      GTK_RELIEF_NORMAL,
      GTK_RELIEF_HALF,
      GTK_RELIEF_NONE
    } GtkReliefStyle;

Indicated the relief to be drawn around a GtkButton.

`GTK_RELIEF_NORMAL` | Draw a normal relief.
`GTK_RELIEF_HALF` | A half relief.
`GTK_RELIEF_NONE` | No relief.

### enum GtkResizeMode

    typedef enum
    {
      GTK_RESIZE_PARENT,		/* Pass resize request to the parent */
      GTK_RESIZE_QUEUE,		/* Queue resizes on this widget */
      GTK_RESIZE_IMMEDIATE		/* Perform the resizes now */
    } GtkResizeMode;

### enum GtkScrollStep

    typedef enum
    {
      GTK_SCROLL_STEPS,
      GTK_SCROLL_PAGES,
      GTK_SCROLL_ENDS,
      GTK_SCROLL_HORIZONTAL_STEPS,
      GTK_SCROLL_HORIZONTAL_PAGES,
      GTK_SCROLL_HORIZONTAL_ENDS
    } GtkScrollStep;

### enum GtkScrollType

    typedef enum
    {
      GTK_SCROLL_NONE,
      GTK_SCROLL_JUMP,
      GTK_SCROLL_STEP_BACKWARD,
      GTK_SCROLL_STEP_FORWARD,
      GTK_SCROLL_PAGE_BACKWARD,
      GTK_SCROLL_PAGE_FORWARD,
      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,
      GTK_SCROLL_PAGE_RIGHT,
      GTK_SCROLL_START,
      GTK_SCROLL_END
    } GtkScrollType;

### enum GtkSelectionMode

    typedef enum
    {
      GTK_SELECTION_NONE,                             /* Nothing can be selected */
      GTK_SELECTION_SINGLE,
      GTK_SELECTION_BROWSE,
      GTK_SELECTION_MULTIPLE,
      GTK_SELECTION_EXTENDED = GTK_SELECTION_MULTIPLE /* Deprecated */
    } GtkSelectionMode;

Used to control what selections users are allowed to make.

`GTK_SELECTION_NONE` | No selection is possible.
`GTK_SELECTION_SINGLE` | Zero or one element may be selected.
`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.
`GTK_SELECTION_MULTIPLE` | Any number of elements may be selected. Clicks toggle the state of an item. Any number of elements may be selected. Click-drag selects a range of elements; the Ctrl key may be used to enlarge the selection, and Shift key to select between the focus and the child pointed to.
`GTK_SELECTION_EXTENDED` | Deprecated, behaves identical to `GTK_SELECTION_MULTIPLE`.

### enum GtkShadowType

    typedef enum
    {
      GTK_SHADOW_NONE,
      GTK_SHADOW_IN,
      GTK_SHADOW_OUT,
      GTK_SHADOW_ETCHED_IN,
      GTK_SHADOW_ETCHED_OUT
    } GtkShadowType;

Used to change the appearance of an outline typically provided by a GtkFrame.

`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 itself is an inward bevel, but the frame does
`GTK_SHADOW_ETCHED_OUT` |

### enum GtkSideType

    typedef enum
    {
      GTK_SIDE_TOP,
      GTK_SIDE_BOTTOM,
      GTK_SIDE_LEFT,
      GTK_SIDE_RIGHT
    } GtkSideType;

### Warning

`GtkSideType` is deprecated and should not be used in newly-written code.

### enum GtkStateType

    typedef enum
    {
      GTK_STATE_NORMAL,
      GTK_STATE_ACTIVE,
      GTK_STATE_PRELIGHT,
      GTK_STATE_SELECTED,
      GTK_STATE_INSENSITIVE
    } GtkStateType;

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.

`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.

### enum GtkSubmenuDirection

    typedef enum
    {
      GTK_DIRECTION_LEFT,
      GTK_DIRECTION_RIGHT
    } GtkSubmenuDirection;

### Warning

`GtkSubmenuDirection` is deprecated and should not be used in newly-written code.

Indicates the direction a sub-menu will appear.

`GTK_DIRECTION_LEFT` | A sub-menu will appear
`GTK_DIRECTION_RIGHT` |

### enum GtkSubmenuPlacement

    typedef enum
    {
      GTK_TOP_BOTTOM,
      GTK_LEFT_RIGHT
    } GtkSubmenuPlacement;

### Warning

`GtkSubmenuPlacement` is deprecated and should not be used in newly-written code.

### enum GtkToolbarStyle

    typedef enum
    {
      GTK_TOOLBAR_ICONS,
      GTK_TOOLBAR_TEXT,
      GTK_TOOLBAR_BOTH,
      GTK_TOOLBAR_BOTH_HORIZ
    } GtkToolbarStyle;

Used to customize the appearance of a GtkToolbar. Note that setting the toolbar style overrides the user's preferences for the default toolbar style.

`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

### enum GtkUpdateType

    typedef enum
    {
      GTK_UPDATE_CONTINUOUS,
      GTK_UPDATE_DISCONTINUOUS,
      GTK_UPDATE_DELAYED
    } GtkUpdateType;

### enum GtkVisibility

    typedef enum
    {
      GTK_VISIBILITY_NONE,
      GTK_VISIBILITY_PARTIAL,
      GTK_VISIBILITY_FULL
    } GtkVisibility;

Used by GtkCList and GtkCTree to indicate whether a row is visible.

`GTK_VISIBILITY_NONE` | The row is not visible.
`GTK_VISIBILITY_PARTIAL` | The row is partially visible.
`GTK_VISIBILITY_FULL` | The row is fully visible.

### enum GtkWindowPosition

    typedef enum
    {
      GTK_WIN_POS_NONE,
      GTK_WIN_POS_CENTER,
      GTK_WIN_POS_MOUSE,
      GTK_WIN_POS_CENTER_ALWAYS,
      GTK_WIN_POS_CENTER_ON_PARENT
    } GtkWindowPosition;

Window placement can be influenced using this enumeration.

`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()`).

### enum GtkWindowType

    typedef enum
    {
      GTK_WINDOW_TOPLEVEL,
      GTK_WINDOW_POPUP
    } GtkWindowType;

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.

`GTK_WINDOW_TOPLEVEL` | A regular window, such as a dialog.
`GTK_WINDOW_POPUP` | A special window such as a tooltip.

### enum GtkSortType

    typedef enum
    {
      GTK_SORT_ASCENDING,
      GTK_SORT_DESCENDING
    } GtkSortType;

Determines the direction of a sort.

`GTK_SORT_ASCENDING` | Sorting is in ascending order.
`GTK_SORT_DESCENDING` | Sorting is in descending order.