;; -*- scheme -*-
;;
;; Note, everything should be sorted in here.

;; Boxed types ...

(define-boxed Border
  (in-module "Gtk")
  (c-name "GtkBorder")
  (gtype-id "GTK_TYPE_BORDER")
  (copy-func "gtk_border_copy")
  (release-func "gtk_border_free")
  (fields
    '("gint" "left")
    '("gint" "right")
    '("gint" "top")
    '("gint" "bottom")
  )
)

(define-boxed IconInfo
  (in-module "Gtk")
  (c-name "GtkIconInfo")
  (gtype-id "GTK_TYPE_ICON_INFO")
  (copy-func "gtk_icon_info_copy")
  (release-func "gtk_icon_info_free")
)

(define-boxed IconSet
  (in-module "Gtk")
  (c-name "GtkIconSet")
  (gtype-id "GTK_TYPE_ICON_SET")
)

(define-boxed IconSource
  (in-module "Gtk")
  (c-name "GtkIconSource")
  (gtype-id "GTK_TYPE_ICON_SOURCE")
  (copy-func "gtk_icon_source_copy")
  (release-func "gtk_icon_source_free")
)

(define-boxed Requisition
  (in-module "Gtk")
  (c-name "GtkRequisition")
  (gtype-id "GTK_TYPE_REQUISITION")
  (fields
    '("gint" "width")
    '("gint" "height")
  )
)

(define-boxed SelectionData
  (in-module "Gtk")
  (c-name "GtkSelectionData")
  (gtype-id "GTK_TYPE_SELECTION_DATA")
  (copy-func "gtk_selection_data_copy")
  (release-func "gtk_selection_data_free")
  (fields
    '("GdkAtom" "selection")
    '("GdkAtom" "target")
    '("GdkAtom" "type")
    '("gint" "format")
    '("guchar*" "data")
  )
)

(define-boxed TextAttributes
  (in-module "Gtk")
  (c-name "GtkTextAttributes")
  (gtype-id "GTK_TYPE_TEXT_ATTRIBUTES")
  (fields
   '("GdkColor" "bg_color")
   '("GdkColor" "fg_color")
   '("GdkBitmap" "bg_stipple")
   '("GdkBitmap" "fg_stipple")
   '("gint" "rise")
   '("guint" "underline")
   '("guint" "strikethrough")
   '("guint" "draw_bg")
   '("GtkJustification" "justification")
   '("GtkTextDirection" "direction")
   '("PangoFontDescription*" "font")
   '("gdouble" "font_scale")
   '("gint" "left_margin")
   '("gint" "indent")
   '("gint" "right_margin")
   '("gint" "pixels_above_lines")
   '("gint" "pixels_below_lines")
   '("gint" "pixels_inside_wrap")
   '("PangoTabArray*" "tabs")
   '("GtkWrapMode" "wrap_mode")
   '("PangoLanguage*" "language")
   '("guint" "invisible")
   '("guint" "bg_full_height")
   '("guint" "editable")
   '("guint" "realized")
   '("guint" "pad1")
   '("guint" "pad2")
   '("guint" "pad3")
   '("guint" "pad4")
   )
)

(define-boxed TextIter
  (in-module "Gtk")
  (c-name "GtkTextIter")
  (gtype-id "GTK_TYPE_TEXT_ITER")
  (copy-func "gtk_text_iter_copy")
  (release-func "gtk_text_iter_free")
)

(define-boxed TreeIter
  (in-module "Gtk")
  (c-name "GtkTreeIter")
  (gtype-id "GTK_TYPE_TREE_ITER")
  (copy-func "gtk_tree_iter_copy")
  (release-func "gtk_tree_iter_free")
)

(define-boxed TreeRowReference
  (in-module "Gtk")
  (c-name "GtkTreeRowReference")
  (gtype-id "GTK_TYPE_TREE_ROW_REFERENCE")
  (copy-func "gtk_tree_row_reference_copy")
  (release-func "gtk_tree_row_reference_free")
)

;; Enumerations ...

(define-enum AnchorType
  (in-module "Gtk")
  (c-name "GtkAnchorType")
  (gtype-id "GTK_TYPE_ANCHOR_TYPE")
  (values
    '("center" "GTK_ANCHOR_CENTER")
    '("north" "GTK_ANCHOR_NORTH")
    '("north-west" "GTK_ANCHOR_NORTH_WEST")
    '("north-east" "GTK_ANCHOR_NORTH_EAST")
    '("south" "GTK_ANCHOR_SOUTH")
    '("south-west" "GTK_ANCHOR_SOUTH_WEST")
    '("south-east" "GTK_ANCHOR_SOUTH_EAST")
    '("west" "GTK_ANCHOR_WEST")
    '("east" "GTK_ANCHOR_EAST")
    '("n" "GTK_ANCHOR_N")
    '("nw" "GTK_ANCHOR_NW")
    '("ne" "GTK_ANCHOR_NE")
    '("s" "GTK_ANCHOR_S")
    '("sw" "GTK_ANCHOR_SW")
    '("se" "GTK_ANCHOR_SE")
    '("w" "GTK_ANCHOR_W")
    '("e" "GTK_ANCHOR_E")
  )
)

(define-enum ArrowType
  (in-module "Gtk")
  (c-name "GtkArrowType")
  (gtype-id "GTK_TYPE_ARROW_TYPE")
  (values
    '("up" "GTK_ARROW_UP")
    '("down" "GTK_ARROW_DOWN")
    '("left" "GTK_ARROW_LEFT")
    '("right" "GTK_ARROW_RIGHT")
  )
)

(define-enum ButtonBoxStyle
  (in-module "Gtk")
  (c-name "GtkButtonBoxStyle")
  (gtype-id "GTK_TYPE_BUTTON_BOX_STYLE")
  (values
    '("default-style" "GTK_BUTTONBOX_DEFAULT_STYLE")
    '("spread" "GTK_BUTTONBOX_SPREAD")
    '("edge" "GTK_BUTTONBOX_EDGE")
    '("start" "GTK_BUTTONBOX_START")
    '("end" "GTK_BUTTONBOX_END")
  )
)

(define-enum ButtonsType
  (in-module "Gtk")
  (c-name "GtkButtonsType")
  (gtype-id "GTK_TYPE_BUTTONS_TYPE")
  (values
    '("none" "GTK_BUTTONS_NONE")
    '("ok" "GTK_BUTTONS_OK")
    '("close" "GTK_BUTTONS_CLOSE")
    '("cancel" "GTK_BUTTONS_CANCEL")
    '("yes-no" "GTK_BUTTONS_YES_NO")
    '("ok-cancel" "GTK_BUTTONS_OK_CANCEL")
  )
)

(define-enum CellRendererMode
  (in-module "Gtk")
  (c-name "GtkCellRendererMode")
  (gtype-id "GTK_TYPE_CELL_RENDERER_MODE")
  (values
    '("inert" "GTK_CELL_RENDERER_MODE_INERT")
    '("activatable" "GTK_CELL_RENDERER_MODE_ACTIVATABLE")
    '("editable" "GTK_CELL_RENDERER_MODE_EDITABLE")
  )
)

(define-enum CellType
  (in-module "Gtk")
  (c-name "GtkCellType")
  (gtype-id "GTK_TYPE_CELL_TYPE")
  (values
    '("empty" "GTK_CELL_EMPTY")
    '("text" "GTK_CELL_TEXT")
    '("pixmap" "GTK_CELL_PIXMAP")
    '("pixtext" "GTK_CELL_PIXTEXT")
    '("widget" "GTK_CELL_WIDGET")
  )
)

(define-enum CListDragPos
  (in-module "Gtk")
  (c-name "GtkCListDragPos")
  (gtype-id "GTK_TYPE_CLIST_DRAG_POS")
  (values
    '("none" "GTK_CLIST_DRAG_NONE")
    '("before" "GTK_CLIST_DRAG_BEFORE")
    '("into" "GTK_CLIST_DRAG_INTO")
    '("after" "GTK_CLIST_DRAG_AFTER")
  )
)

(define-enum CornerType
  (in-module "Gtk")
  (c-name "GtkCornerType")
  (gtype-id "GTK_TYPE_CORNER_TYPE")
  (values
    '("top-left" "GTK_CORNER_TOP_LEFT")
    '("bottom-left" "GTK_CORNER_BOTTOM_LEFT")
    '("top-right" "GTK_CORNER_TOP_RIGHT")
    '("bottom-right" "GTK_CORNER_BOTTOM_RIGHT")
  )
)

(define-enum CTreeExpanderStyle
  (in-module "Gtk")
  (c-name "GtkCTreeExpanderStyle")
  (gtype-id "GTK_TYPE_CTREE_EXPANDER_STYLE")
  (values
    '("none" "GTK_CTREE_EXPANDER_NONE")
    '("square" "GTK_CTREE_EXPANDER_SQUARE")
    '("triangle" "GTK_CTREE_EXPANDER_TRIANGLE")
    '("circular" "GTK_CTREE_EXPANDER_CIRCULAR")
  )
)

(define-enum CTreeExpansionType
  (in-module "Gtk")
  (c-name "GtkCTreeExpansionType")
  (gtype-id "GTK_TYPE_CTREE_EXPANSION_TYPE")
  (values
    '("expand" "GTK_CTREE_EXPANSION_EXPAND")
    '("expand-recursive" "GTK_CTREE_EXPANSION_EXPAND_RECURSIVE")
    '("collapse" "GTK_CTREE_EXPANSION_COLLAPSE")
    '("collapse-recursive" "GTK_CTREE_EXPANSION_COLLAPSE_RECURSIVE")
    '("toggle" "GTK_CTREE_EXPANSION_TOGGLE")
    '("toggle-recursive" "GTK_CTREE_EXPANSION_TOGGLE_RECURSIVE")
  )
)

(define-enum CTreeLineStyle
  (in-module "Gtk")
  (c-name "GtkCTreeLineStyle")
  (gtype-id "GTK_TYPE_CTREE_LINE_STYLE")
  (values
    '("none" "GTK_CTREE_LINES_NONE")
    '("solid" "GTK_CTREE_LINES_SOLID")
    '("dotted" "GTK_CTREE_LINES_DOTTED")
    '("tabbed" "GTK_CTREE_LINES_TABBED")
  )
)

(define-enum CTreePos
  (in-module "Gtk")
  (c-name "GtkCTreePos")
  (gtype-id "GTK_TYPE_CTREE_POS")
  (values
    '("before" "GTK_CTREE_POS_BEFORE")
    '("as-child" "GTK_CTREE_POS_AS_CHILD")
    '("after" "GTK_CTREE_POS_AFTER")
  )
)

(define-enum CurveType
  (in-module "Gtk")
  (c-name "GtkCurveType")
  (gtype-id "GTK_TYPE_CURVE_TYPE")
  (values
    '("linear" "GTK_CURVE_TYPE_LINEAR")
    '("spline" "GTK_CURVE_TYPE_SPLINE")
    '("free" "GTK_CURVE_TYPE_FREE")
  )
)

(define-enum DeleteType
  (in-module "Gtk")
  (c-name "GtkDeleteType")
  (gtype-id "GTK_TYPE_DELETE_TYPE")
  (values
    '("chars" "GTK_DELETE_CHARS")
    '("word-ends" "GTK_DELETE_WORD_ENDS")
    '("words" "GTK_DELETE_WORDS")
    '("display-lines" "GTK_DELETE_DISPLAY_LINES")
    '("display-line-ends" "GTK_DELETE_DISPLAY_LINE_ENDS")
    '("paragraph-ends" "GTK_DELETE_PARAGRAPH_ENDS")
    '("paragraphs" "GTK_DELETE_PARAGRAPHS")
    '("whitespace" "GTK_DELETE_WHITESPACE")
  )
)

(define-enum DirectionType
  (in-module "Gtk")
  (c-name "GtkDirectionType")
  (gtype-id "GTK_TYPE_DIRECTION_TYPE")
  (values
    '("tab-forward" "GTK_DIR_TAB_FORWARD")
    '("tab-backward" "GTK_DIR_TAB_BACKWARD")
    '("up" "GTK_DIR_UP")
    '("down" "GTK_DIR_DOWN")
    '("left" "GTK_DIR_LEFT")
    '("right" "GTK_DIR_RIGHT")
  )
)

(define-enum ExpanderStyle
  (in-module "Gtk")
  (c-name "GtkExpanderStyle")
  (gtype-id "GTK_TYPE_EXPANDER_STYLE")
  (values
    '("collapsed" "GTK_EXPANDER_COLLAPSED")
    '("semi-collapsed" "GTK_EXPANDER_SEMI_COLLAPSED")
    '("semi-expanded" "GTK_EXPANDER_SEMI_EXPANDED")
    '("expanded" "GTK_EXPANDER_EXPANDED")
  )
)

(define-enum FileChooserAction
  (in-module "Gtk")
  (c-name "GtkFileChooserAction")
  (gtype-id "GTK_TYPE_FILE_CHOOSER_ACTION")
  (values
    '("open" "GTK_FILE_CHOOSER_ACTION_OPEN")
    '("save" "GTK_FILE_CHOOSER_ACTION_SAVE")
    '("select-folder" "GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER")
    '("create-folder" "GTK_FILE_CHOOSER_ACTION_CREATE_FOLDER")
  )
)

(define-enum FileChooserConfirmation
  (in-module "Gtk")
  (c-name "GtkFileChooserConfirmation")
  (gtype-id "GTK_TYPE_FILE_CHOOSER_CONFIRMATION")
  (values
    '("confirm" "GTK_FILE_CHOOSER_CONFIRMATION_CONFIRM")
    '("accept-filename" "GTK_FILE_CHOOSER_CONFIRMATION_ACCEPT_FILENAME")
    '("select-again" "GTK_FILE_CHOOSER_CONFIRMATION_SELECT_AGAIN")
  )
)

(define-enum FileChooserError
  (in-module "Gtk")
  (c-name "GtkFileChooserError")
  (gtype-id "GTK_TYPE_FILE_CHOOSER_ERROR")
  (values
    '("nonexistent" "GTK_FILE_CHOOSER_ERROR_NONEXISTENT")
    '("bad-filename" "GTK_FILE_CHOOSER_ERROR_BAD_FILENAME")
  )
)

(define-enum IconSize
  (in-module "Gtk")
  (c-name "GtkIconSize")
  (gtype-id "GTK_TYPE_ICON_SIZE")
  (values
    '("invalid" "GTK_ICON_SIZE_INVALID")
    '("menu" "GTK_ICON_SIZE_MENU")
    '("small-toolbar" "GTK_ICON_SIZE_SMALL_TOOLBAR")
    '("large-toolbar" "GTK_ICON_SIZE_LARGE_TOOLBAR")
    '("button" "GTK_ICON_SIZE_BUTTON")
    '("dnd" "GTK_ICON_SIZE_DND")
    '("dialog" "GTK_ICON_SIZE_DIALOG")
  )
)

(define-enum IconThemeError
  (in-module "Gtk")
  (c-name "GtkIconThemeError")
  (gtype-id "GTK_TYPE_ICON_THEME_ERROR")
  (values
    '("not-found" "GTK_ICON_THEME_NOT_FOUND")
    '("failed" "GTK_ICON_THEME_FAILED")
  )
)

(define-enum IconViewDropPosition
  (in-module "Gtk")
  (c-name "GtkIconViewDropPosition")
  (gtype-id "GTK_TYPE_ICON_VIEW_DROP_POSITION")
  (values
    '("no-drop" "GTK_ICON_VIEW_NO_DROP")
    '("drop-into" "GTK_ICON_VIEW_DROP_INTO")
    '("drop-left" "GTK_ICON_VIEW_DROP_LEFT")
    '("drop-right" "GTK_ICON_VIEW_DROP_RIGHT")
    '("drop-above" "GTK_ICON_VIEW_DROP_ABOVE")
    '("drop-below" "GTK_ICON_VIEW_DROP_BELOW")
  )
)

(define-enum ImageType
  (in-module "Gtk")
  (c-name "GtkImageType")
  (gtype-id "GTK_TYPE_IMAGE_TYPE")
  (values
    '("empty" "GTK_IMAGE_EMPTY")
    '("pixmap" "GTK_IMAGE_PIXMAP")
    '("image" "GTK_IMAGE_IMAGE")
    '("pixbuf" "GTK_IMAGE_PIXBUF")
    '("stock" "GTK_IMAGE_STOCK")
    '("icon-set" "GTK_IMAGE_ICON_SET")
    '("animation" "GTK_IMAGE_ANIMATION")
  )
)

(define-enum IMPreeditStyle
  (in-module "Gtk")
  (c-name "GtkIMPreeditStyle")
  (gtype-id "GTK_TYPE_IM_PREEDIT_STYLE")
  (values
    '("nothing" "GTK_IM_PREEDIT_NOTHING")
    '("callback" "GTK_IM_PREEDIT_CALLBACK")
    '("none" "GTK_IM_PREEDIT_NONE")
  )
)

(define-enum IMStatusStyle
  (in-module "Gtk")
  (c-name "GtkIMStatusStyle")
  (gtype-id "GTK_TYPE_IM_STATUS_STYLE")
  (values
    '("nothing" "GTK_IM_STATUS_NOTHING")
    '("callback" "GTK_IM_STATUS_CALLBACK")
  )
)

(define-enum PackDirection
  (in-module "Gtk")
  (c-name "GtkPackDirection")
  (gtype-id "GTK_TYPE_PACK_DIRECTION")
  (values
    '("ltr" "GTK_PACK_DIRECTION_LTR")
    '("rtl" "GTK_PACK_DIRECTION_RTL")
    '("ttb" "GTK_PACK_DIRECTION_TTB")
    '("btt" "GTK_PACK_DIRECTION_BTT")
  )
)

(define-enum Justification
  (in-module "Gtk")
  (c-name "GtkJustification")
  (gtype-id "GTK_TYPE_JUSTIFICATION")
  (values
    '("left" "GTK_JUSTIFY_LEFT")
    '("right" "GTK_JUSTIFY_RIGHT")
    '("center" "GTK_JUSTIFY_CENTER")
    '("fill" "GTK_JUSTIFY_FILL")
  )
)

(define-enum MatchType
  (in-module "Gtk")
  (c-name "GtkMatchType")
  (gtype-id "GTK_TYPE_MATCH_TYPE")
  (values
    '("all" "GTK_MATCH_ALL")
    '("all-tail" "GTK_MATCH_ALL_TAIL")
    '("head" "GTK_MATCH_HEAD")
    '("tail" "GTK_MATCH_TAIL")
    '("exact" "GTK_MATCH_EXACT")
    '("last" "GTK_MATCH_LAST")
  )
)

(define-enum MenuDirectionType
  (in-module "Gtk")
  (c-name "GtkMenuDirectionType")
  (gtype-id "GTK_TYPE_MENU_DIRECTION_TYPE")
  (values
    '("parent" "GTK_MENU_DIR_PARENT")
    '("child" "GTK_MENU_DIR_CHILD")
    '("next" "GTK_MENU_DIR_NEXT")
    '("prev" "GTK_MENU_DIR_PREV")
  )
)

(define-enum MessageType
  (in-module "Gtk")
  (c-name "GtkMessageType")
  (gtype-id "GTK_TYPE_MESSAGE_TYPE")
  (values
    '("info" "GTK_MESSAGE_INFO")
    '("warning" "GTK_MESSAGE_WARNING")
    '("question" "GTK_MESSAGE_QUESTION")
    '("error" "GTK_MESSAGE_ERROR")
  )
)

(define-enum MetricType
  (in-module "Gtk")
  (c-name "GtkMetricType")
  (gtype-id "GTK_TYPE_METRIC_TYPE")
  (values
    '("pixels" "GTK_PIXELS")
    '("inches" "GTK_INCHES")
    '("centimeters" "GTK_CENTIMETERS")
  )
)

(define-enum MovementStep
  (in-module "Gtk")
  (c-name "GtkMovementStep")
  (gtype-id "GTK_TYPE_MOVEMENT_STEP")
  (values
    '("logical-positions" "GTK_MOVEMENT_LOGICAL_POSITIONS")
    '("visual-positions" "GTK_MOVEMENT_VISUAL_POSITIONS")
    '("words" "GTK_MOVEMENT_WORDS")
    '("display-lines" "GTK_MOVEMENT_DISPLAY_LINES")
    '("display-line-ends" "GTK_MOVEMENT_DISPLAY_LINE_ENDS")
    '("paragraphs" "GTK_MOVEMENT_PARAGRAPHS")
    '("paragraph-ends" "GTK_MOVEMENT_PARAGRAPH_ENDS")
    '("pages" "GTK_MOVEMENT_PAGES")
    '("buffer-ends" "GTK_MOVEMENT_BUFFER_ENDS")
    '("horizontal-pages" "GTK_MOVEMENT_HORIZONTAL_PAGES")
  )
)

(define-enum NotebookTab
  (in-module "Gtk")
  (c-name "GtkNotebookTab")
  (gtype-id "GTK_TYPE_NOTEBOOK_TAB")
  (values
    '("first" "GTK_NOTEBOOK_TAB_FIRST")
    '("last" "GTK_NOTEBOOK_TAB_LAST")
  )
)

(define-enum Orientation
  (in-module "Gtk")
  (c-name "GtkOrientation")
  (gtype-id "GTK_TYPE_ORIENTATION")
  (values
    '("horizontal" "GTK_ORIENTATION_HORIZONTAL")
    '("vertical" "GTK_ORIENTATION_VERTICAL")
  )
)

(define-enum PackType
  (in-module "Gtk")
  (c-name "GtkPackType")
  (gtype-id "GTK_TYPE_PACK_TYPE")
  (values
    '("start" "GTK_PACK_START")
    '("end" "GTK_PACK_END")
  )
)

(define-enum PathPriorityType
  (in-module "Gtk")
  (c-name "GtkPathPriorityType")
  (gtype-id "GTK_TYPE_PATH_PRIORITY_TYPE")
  (values
    '("lowest" "GTK_PATH_PRIO_LOWEST")
    '("gtk" "GTK_PATH_PRIO_GTK")
    '("application" "GTK_PATH_PRIO_APPLICATION")
    '("theme" "GTK_PATH_PRIO_THEME")
    '("rc" "GTK_PATH_PRIO_RC")
    '("highest" "GTK_PATH_PRIO_HIGHEST")
  )
)

(define-enum PathType
  (in-module "Gtk")
  (c-name "GtkPathType")
  (gtype-id "GTK_TYPE_PATH_TYPE")
  (values
    '("widget" "GTK_PATH_WIDGET")
    '("widget-class" "GTK_PATH_WIDGET_CLASS")
    '("class" "GTK_PATH_CLASS")
  )
)

(define-enum PolicyType
  (in-module "Gtk")
  (c-name "GtkPolicyType")
  (gtype-id "GTK_TYPE_POLICY_TYPE")
  (values
    '("always" "GTK_POLICY_ALWAYS")
    '("automatic" "GTK_POLICY_AUTOMATIC")
    '("never" "GTK_POLICY_NEVER")
  )
)

(define-enum PositionType
  (in-module "Gtk")
  (c-name "GtkPositionType")
  (gtype-id "GTK_TYPE_POSITION_TYPE")
  (values
    '("left" "GTK_POS_LEFT")
    '("right" "GTK_POS_RIGHT")
    '("top" "GTK_POS_TOP")
    '("bottom" "GTK_POS_BOTTOM")
  )
)

(define-enum PreviewType
  (in-module "Gtk")
  (c-name "GtkPreviewType")
  (gtype-id "GTK_TYPE_PREVIEW_TYPE")
  (values
    '("color" "GTK_PREVIEW_COLOR")
    '("grayscale" "GTK_PREVIEW_GRAYSCALE")
  )
)

(define-enum ProgressBarOrientation
  (in-module "Gtk")
  (c-name "GtkProgressBarOrientation")
  (gtype-id "GTK_TYPE_PROGRESS_BAR_ORIENTATION")
  (values
    '("left-to-right" "GTK_PROGRESS_LEFT_TO_RIGHT")
    '("right-to-left" "GTK_PROGRESS_RIGHT_TO_LEFT")
    '("bottom-to-top" "GTK_PROGRESS_BOTTOM_TO_TOP")
    '("top-to-bottom" "GTK_PROGRESS_TOP_TO_BOTTOM")
  )
)

(define-enum ProgressBarStyle
  (in-module "Gtk")
  (c-name "GtkProgressBarStyle")
  (gtype-id "GTK_TYPE_PROGRESS_BAR_STYLE")
  (values
    '("continuous" "GTK_PROGRESS_CONTINUOUS")
    '("discrete" "GTK_PROGRESS_DISCRETE")
  )
)

(define-enum RcTokenType
  (in-module "Gtk")
  (c-name "GtkRcTokenType")
  (gtype-id "GTK_TYPE_RC_TOKEN_TYPE")
  (values
    '("invalid" "GTK_RC_TOKEN_INVALID")
    '("include" "GTK_RC_TOKEN_INCLUDE")
    '("normal" "GTK_RC_TOKEN_NORMAL")
    '("active" "GTK_RC_TOKEN_ACTIVE")
    '("prelight" "GTK_RC_TOKEN_PRELIGHT")
    '("selected" "GTK_RC_TOKEN_SELECTED")
    '("insensitive" "GTK_RC_TOKEN_INSENSITIVE")
    '("fg" "GTK_RC_TOKEN_FG")
    '("bg" "GTK_RC_TOKEN_BG")
    '("text" "GTK_RC_TOKEN_TEXT")
    '("base" "GTK_RC_TOKEN_BASE")
    '("xthickness" "GTK_RC_TOKEN_XTHICKNESS")
    '("ythickness" "GTK_RC_TOKEN_YTHICKNESS")
    '("font" "GTK_RC_TOKEN_FONT")
    '("fontset" "GTK_RC_TOKEN_FONTSET")
    '("font-name" "GTK_RC_TOKEN_FONT_NAME")
    '("bg-pixmap" "GTK_RC_TOKEN_BG_PIXMAP")
    '("pixmap-path" "GTK_RC_TOKEN_PIXMAP_PATH")
    '("style" "GTK_RC_TOKEN_STYLE")
    '("binding" "GTK_RC_TOKEN_BINDING")
    '("bind" "GTK_RC_TOKEN_BIND")
    '("widget" "GTK_RC_TOKEN_WIDGET")
    '("widget-class" "GTK_RC_TOKEN_WIDGET_CLASS")
    '("class" "GTK_RC_TOKEN_CLASS")
    '("lowest" "GTK_RC_TOKEN_LOWEST")
    '("gtk" "GTK_RC_TOKEN_GTK")
    '("application" "GTK_RC_TOKEN_APPLICATION")
    '("theme" "GTK_RC_TOKEN_THEME")
    '("rc" "GTK_RC_TOKEN_RC")
    '("highest" "GTK_RC_TOKEN_HIGHEST")
    '("engine" "GTK_RC_TOKEN_ENGINE")
    '("module-path" "GTK_RC_TOKEN_MODULE_PATH")
    '("im-module-path" "GTK_RC_TOKEN_IM_MODULE_PATH")
    '("im-module-file" "GTK_RC_TOKEN_IM_MODULE_FILE")
    '("stock" "GTK_RC_TOKEN_STOCK")
    '("ltr" "GTK_RC_TOKEN_LTR")
    '("rtl" "GTK_RC_TOKEN_RTL")
    '("last" "GTK_RC_TOKEN_LAST")
  )
)

(define-enum ReliefStyle
  (in-module "Gtk")
  (c-name "GtkReliefStyle")
  (gtype-id "GTK_TYPE_RELIEF_STYLE")
  (values
    '("normal" "GTK_RELIEF_NORMAL")
    '("half" "GTK_RELIEF_HALF")
    '("none" "GTK_RELIEF_NONE")
  )
)

(define-enum ResizeMode
  (in-module "Gtk")
  (c-name "GtkResizeMode")
  (gtype-id "GTK_TYPE_RESIZE_MODE")
  (values
    '("parent" "GTK_RESIZE_PARENT")
    '("queue" "GTK_RESIZE_QUEUE")
    '("immediate" "GTK_RESIZE_IMMEDIATE")
  )
)

(define-enum ResponseType
  (in-module "Gtk")
  (c-name "GtkResponseType")
  (gtype-id "GTK_TYPE_RESPONSE_TYPE")
  (values
    '("none" "GTK_RESPONSE_NONE")
    '("reject" "GTK_RESPONSE_REJECT")
    '("accept" "GTK_RESPONSE_ACCEPT")
    '("delete-event" "GTK_RESPONSE_DELETE_EVENT")
    '("ok" "GTK_RESPONSE_OK")
    '("cancel" "GTK_RESPONSE_CANCEL")
    '("close" "GTK_RESPONSE_CLOSE")
    '("yes" "GTK_RESPONSE_YES")
    '("no" "GTK_RESPONSE_NO")
    '("apply" "GTK_RESPONSE_APPLY")
    '("help" "GTK_RESPONSE_HELP")
  )
)

(define-enum ScrollStep
  (in-module "Gtk")
  (c-name "GtkScrollStep")
  (gtype-id "GTK_TYPE_SCROLL_STEP")
  (values
    '("steps" "GTK_SCROLL_STEPS")
    '("pages" "GTK_SCROLL_PAGES")
    '("ends" "GTK_SCROLL_ENDS")
    '("horizontal-steps" "GTK_SCROLL_HORIZONTAL_STEPS")
    '("horizontal-pages" "GTK_SCROLL_HORIZONTAL_PAGES")
    '("horizontal-ends" "GTK_SCROLL_HORIZONTAL_ENDS")
   )
 )

(define-enum ScrollType
  (in-module "Gtk")
  (c-name "GtkScrollType")
  (gtype-id "GTK_TYPE_SCROLL_TYPE")
  (values
    '("none" "GTK_SCROLL_NONE")
    '("jump" "GTK_SCROLL_JUMP")
    '("step-backward" "GTK_SCROLL_STEP_BACKWARD")
    '("step-forward" "GTK_SCROLL_STEP_FORWARD")
    '("page-backward" "GTK_SCROLL_PAGE_BACKWARD")
    '("page-forward" "GTK_SCROLL_PAGE_FORWARD")
    '("step-up" "GTK_SCROLL_STEP_UP")
    '("step-down" "GTK_SCROLL_STEP_DOWN")
    '("page-up" "GTK_SCROLL_PAGE_UP")
    '("page-down" "GTK_SCROLL_PAGE_DOWN")
    '("step-left" "GTK_SCROLL_STEP_LEFT")
    '("step-right" "GTK_SCROLL_STEP_RIGHT")
    '("page-left" "GTK_SCROLL_PAGE_LEFT")
    '("page-right" "GTK_SCROLL_PAGE_RIGHT")
    '("start" "GTK_SCROLL_START")
    '("end" "GTK_SCROLL_END")
  )
)

(define-enum SelectionMode
  (in-module "Gtk")
  (c-name "GtkSelectionMode")
  (gtype-id "GTK_TYPE_SELECTION_MODE")
  (values
    '("none" "GTK_SELECTION_NONE")
    '("single" "GTK_SELECTION_SINGLE")
    '("browse" "GTK_SELECTION_BROWSE")
    '("multiple" "GTK_SELECTION_MULTIPLE")
    '("extended" "GTK_SELECTION_EXTENDED")
  )
)

(define-enum ShadowType
  (in-module "Gtk")
  (c-name "GtkShadowType")
  (gtype-id "GTK_TYPE_SHADOW_TYPE")
  (values
    '("none" "GTK_SHADOW_NONE")
    '("in" "GTK_SHADOW_IN")
    '("out" "GTK_SHADOW_OUT")
    '("etched-in" "GTK_SHADOW_ETCHED_IN")
    '("etched-out" "GTK_SHADOW_ETCHED_OUT")
  )
)

(define-enum SideType
  (in-module "Gtk")
  (c-name "GtkSideType")
  (gtype-id "GTK_TYPE_SIDE_TYPE")
  (values
    '("top" "GTK_SIDE_TOP")
    '("bottom" "GTK_SIDE_BOTTOM")
    '("left" "GTK_SIDE_LEFT")
    '("right" "GTK_SIDE_RIGHT")
  )
)

(define-enum SignalRunType
  (in-module "Gtk")
  (c-name "GtkSignalRunType")
  (gtype-id "GTK_TYPE_SIGNAL_RUN_TYPE")
  (values
    '("first" "GTK_RUN_FIRST")
    '("last" "GTK_RUN_LAST")
    '("both" "GTK_RUN_BOTH")
    '("no-recurse" "GTK_RUN_NO_RECURSE")
    '("action" "GTK_RUN_ACTION")
    '("no-hooks" "GTK_RUN_NO_HOOKS")
  )
)

(define-enum SizeGroupMode
  (in-module "Gtk")
  (c-name "GtkSizeGroupMode")
  (gtype-id "GTK_TYPE_SIZE_GROUP_MODE")
  (values
    '("none" "GTK_SIZE_GROUP_NONE")
    '("horizontal" "GTK_SIZE_GROUP_HORIZONTAL")
    '("vertical" "GTK_SIZE_GROUP_VERTICAL")
    '("both" "GTK_SIZE_GROUP_BOTH")
  )
)

;; Note: deliberately lacking type, as these don't make a real enum.
(define-enum SortColumnId
  (in-module "Gtk")
  (values
    '("default" "GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID")
    '("unsorted" "GTK_TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID")
  )
)

(define-enum SortType
  (in-module "Gtk")
  (c-name "GtkSortType")
  (gtype-id "GTK_TYPE_SORT_TYPE")
  (values
    '("ascending" "GTK_SORT_ASCENDING")
    '("descending" "GTK_SORT_DESCENDING")
  )
)

(define-enum SpinButtonUpdatePolicy
  (in-module "Gtk")
  (c-name "GtkSpinButtonUpdatePolicy")
  (gtype-id "GTK_TYPE_SPIN_BUTTON_UPDATE_POLICY")
  (values
    '("always" "GTK_UPDATE_ALWAYS")
    '("if-valid" "GTK_UPDATE_IF_VALID")
  )
)

(define-enum SpinType
  (in-module "Gtk")
  (c-name "GtkSpinType")
  (gtype-id "GTK_TYPE_SPIN_TYPE")
  (values
    '("step-forward" "GTK_SPIN_STEP_FORWARD")
    '("step-backward" "GTK_SPIN_STEP_BACKWARD")
    '("page-forward" "GTK_SPIN_PAGE_FORWARD")
    '("page-backward" "GTK_SPIN_PAGE_BACKWARD")
    '("home" "GTK_SPIN_HOME")
    '("end" "GTK_SPIN_END")
    '("user-defined" "GTK_SPIN_USER_DEFINED")
  )
)

(define-enum StateType
  (in-module "Gtk")
  (c-name "GtkStateType")
  (gtype-id "GTK_TYPE_STATE_TYPE")
  (values
    '("normal" "GTK_STATE_NORMAL")
    '("active" "GTK_STATE_ACTIVE")
    '("prelight" "GTK_STATE_PRELIGHT")
    '("selected" "GTK_STATE_SELECTED")
    '("insensitive" "GTK_STATE_INSENSITIVE")
  )
)

(define-enum SubmenuDirection
  (in-module "Gtk")
  (c-name "GtkSubmenuDirection")
  (gtype-id "GTK_TYPE_SUBMENU_DIRECTION")
  (values
    '("left" "GTK_DIRECTION_LEFT")
    '("right" "GTK_DIRECTION_RIGHT")
  )
)

(define-enum SubmenuPlacement
  (in-module "Gtk")
  (c-name "GtkSubmenuPlacement")
  (gtype-id "GTK_TYPE_SUBMENU_PLACEMENT")
  (values
    '("top-bottom" "GTK_TOP_BOTTOM")
    '("left-right" "GTK_LEFT_RIGHT")
  )
)

(define-enum TextDirection
  (in-module "Gtk")
  (c-name "GtkTextDirection")
  (gtype-id "GTK_TYPE_TEXT_DIRECTION")
  (values
    '("none" "GTK_TEXT_DIR_NONE")
    '("ltr" "GTK_TEXT_DIR_LTR")
    '("rtl" "GTK_TEXT_DIR_RTL")
  )
)

(define-enum TextWindowType
  (in-module "Gtk")
  (c-name "GtkTextWindowType")
  (gtype-id "GTK_TYPE_TEXT_WINDOW_TYPE")
  (values
    '("private" "GTK_TEXT_WINDOW_PRIVATE")
    '("widget" "GTK_TEXT_WINDOW_WIDGET")
    '("text" "GTK_TEXT_WINDOW_TEXT")
    '("left" "GTK_TEXT_WINDOW_LEFT")
    '("right" "GTK_TEXT_WINDOW_RIGHT")
    '("top" "GTK_TEXT_WINDOW_TOP")
    '("bottom" "GTK_TEXT_WINDOW_BOTTOM")
  )
)

(define-enum ToolbarChildType
  (in-module "Gtk")
  (c-name "GtkToolbarChildType")
  (gtype-id "GTK_TYPE_TOOLBAR_CHILD_TYPE")
  (values
    '("space" "GTK_TOOLBAR_CHILD_SPACE")
    '("button" "GTK_TOOLBAR_CHILD_BUTTON")
    '("togglebutton" "GTK_TOOLBAR_CHILD_TOGGLEBUTTON")
    '("radiobutton" "GTK_TOOLBAR_CHILD_RADIOBUTTON")
    '("widget" "GTK_TOOLBAR_CHILD_WIDGET")
  )
)

(define-enum ToolbarSpaceStyle
  (in-module "Gtk")
  (c-name "GtkToolbarSpaceStyle")
  (gtype-id "GTK_TYPE_TOOLBAR_SPACE_STYLE")
  (values
    '("empty" "GTK_TOOLBAR_SPACE_EMPTY")
    '("line" "GTK_TOOLBAR_SPACE_LINE")
  )
)

(define-enum ToolbarStyle
  (in-module "Gtk")
  (c-name "GtkToolbarStyle")
  (gtype-id "GTK_TYPE_TOOLBAR_STYLE")
  (values
    '("icons" "GTK_TOOLBAR_ICONS")
    '("text" "GTK_TOOLBAR_TEXT")
    '("both" "GTK_TOOLBAR_BOTH")
    '("both-horiz" "GTK_TOOLBAR_BOTH_HORIZ")
  )
)

(define-enum TreeViewColumnSizing
  (in-module "Gtk")
  (c-name "GtkTreeViewColumnSizing")
  (gtype-id "GTK_TYPE_TREE_VIEW_COLUMN_SIZING")
  (values
    '("grow-only" "GTK_TREE_VIEW_COLUMN_GROW_ONLY")
    '("autosize" "GTK_TREE_VIEW_COLUMN_AUTOSIZE")
    '("fixed" "GTK_TREE_VIEW_COLUMN_FIXED")
  )
)

(define-enum TreeViewDropPosition
  (in-module "Gtk")
  (c-name "GtkTreeViewDropPosition")
  (gtype-id "GTK_TYPE_TREE_VIEW_DROP_POSITION")
  (values
    '("before" "GTK_TREE_VIEW_DROP_BEFORE")
    '("after" "GTK_TREE_VIEW_DROP_AFTER")
    '("into-or-before" "GTK_TREE_VIEW_DROP_INTO_OR_BEFORE")
    '("into-or-after" "GTK_TREE_VIEW_DROP_INTO_OR_AFTER")
  )
)

(define-enum TreeViewMode
  (in-module "Gtk")
  (c-name "GtkTreeViewMode")
  (gtype-id "GTK_TYPE_TREE_VIEW_MODE")
  (values
    '("line" "GTK_TREE_VIEW_LINE")
    '("item" "GTK_TREE_VIEW_ITEM")
  )
)

(define-enum UpdateType
  (in-module "Gtk")
  (c-name "GtkUpdateType")
  (gtype-id "GTK_TYPE_UPDATE_TYPE")
  (values
    '("continuous" "GTK_UPDATE_CONTINUOUS")
    '("discontinuous" "GTK_UPDATE_DISCONTINUOUS")
    '("delayed" "GTK_UPDATE_DELAYED")
  )
)

(define-enum Visibility
  (in-module "Gtk")
  (c-name "GtkVisibility")
  (gtype-id "GTK_TYPE_VISIBILITY")
  (values
    '("none" "GTK_VISIBILITY_NONE")
    '("partial" "GTK_VISIBILITY_PARTIAL")
    '("full" "GTK_VISIBILITY_FULL")
  )
)

(define-enum WidgetHelpType
  (in-module "Gtk")
  (c-name "GtkWidgetHelpType")
  (gtype-id "GTK_TYPE_WIDGET_HELP_TYPE")
  (values
    '("tooltip" "GTK_WIDGET_HELP_TOOLTIP")
    '("whats-this" "GTK_WIDGET_HELP_WHATS_THIS")
  )
)

(define-enum WindowPosition
  (in-module "Gtk")
  (c-name "GtkWindowPosition")
  (gtype-id "GTK_TYPE_WINDOW_POSITION")
  (values
    '("none" "GTK_WIN_POS_NONE")
    '("center" "GTK_WIN_POS_CENTER")
    '("mouse" "GTK_WIN_POS_MOUSE")
    '("center-always" "GTK_WIN_POS_CENTER_ALWAYS")
    '("center-on-parent" "GTK_WIN_POS_CENTER_ON_PARENT")
  )
)

(define-enum WindowType
  (in-module "Gtk")
  (c-name "GtkWindowType")
  (gtype-id "GTK_TYPE_WINDOW_TYPE")
  (values
    '("toplevel" "GTK_WINDOW_TOPLEVEL")
    '("popup" "GTK_WINDOW_POPUP")
  )
)

(define-enum WrapMode
  (in-module "Gtk")
  (c-name "GtkWrapMode")
  (gtype-id "GTK_TYPE_WRAP_MODE")
  (values
    '("none" "GTK_WRAP_NONE")
    '("char" "GTK_WRAP_CHAR")
    '("word" "GTK_WRAP_WORD")
    '("word_char" "GTK_WRAP_WORD_CHAR")
  )
)

;; Flags ...

(define-flags AccelFlags
  (in-module "Gtk")
  (c-name "GtkAccelFlags")
  (gtype-id "GTK_TYPE_ACCEL_FLAGS")
  (values
    '("visible" "GTK_ACCEL_VISIBLE")
    '("locked" "GTK_ACCEL_LOCKED")
    '("mask" "GTK_ACCEL_MASK")
  )
)

(define-flags ArgFlags
  (in-module "Gtk")
  (c-name "GtkArgFlags")
  (gtype-id "GTK_TYPE_ARG_FLAGS")
  (values
    '("readable" "GTK_ARG_READABLE")
    '("writable" "GTK_ARG_WRITABLE")
    '("construct" "GTK_ARG_CONSTRUCT")
    '("construct-only" "GTK_ARG_CONSTRUCT_ONLY")
    '("child-arg" "GTK_ARG_CHILD_ARG")
  )
)

(define-flags AttachOptions
  (in-module "Gtk")
  (c-name "GtkAttachOptions")
  (gtype-id "GTK_TYPE_ATTACH_OPTIONS")
  (values
    '("expand" "GTK_EXPAND")
    '("shrink" "GTK_SHRINK")
    '("fill" "GTK_FILL")
  )
)

(define-flags ButtonAction
  (in-module "Gtk")
  (c-name "GtkButtonAction")
  (gtype-id "GTK_TYPE_BUTTON_ACTION")
  (values
    '("ignored" "GTK_BUTTON_IGNORED")
    '("selects" "GTK_BUTTON_SELECTS")
    '("drags" "GTK_BUTTON_DRAGS")
    '("expands" "GTK_BUTTON_EXPANDS")
  )
)

(define-flags CalendarDisplayOptions
  (in-module "Gtk")
  (c-name "GtkCalendarDisplayOptions")
  (gtype-id "GTK_TYPE_CALENDAR_DISPLAY_OPTIONS")
  (values
    '("show-heading" "GTK_CALENDAR_SHOW_HEADING")
    '("show-day-names" "GTK_CALENDAR_SHOW_DAY_NAMES")
    '("no-month-change" "GTK_CALENDAR_NO_MONTH_CHANGE")
    '("show-week-numbers" "GTK_CALENDAR_SHOW_WEEK_NUMBERS")
    '("week-start-monday" "GTK_CALENDAR_WEEK_START_MONDAY")
  )
)

(define-flags CellRendererState
  (in-module "Gtk")
  (c-name "GtkCellRendererState")
  (gtype-id "GTK_TYPE_CELL_RENDERER_STATE")
  (values
    '("selected" "GTK_CELL_RENDERER_SELECTED")
    '("prelit" "GTK_CELL_RENDERER_PRELIT")
    '("insensitive" "GTK_CELL_RENDERER_INSENSITIVE")
    '("sorted" "GTK_CELL_RENDERER_SORTED")
    '("focused" "GTK_CELL_RENDERER_FOCUSED")
  )
)

(define-flags DebugFlag
  (in-module "Gtk")
  (c-name "GtkDebugFlag")
  (gtype-id "GTK_TYPE_DEBUG_FLAG")
  (values
    '("misc" "GTK_DEBUG_MISC")
    '("plugsocket" "GTK_DEBUG_PLUGSOCKET")
    '("text" "GTK_DEBUG_TEXT")
    '("tree" "GTK_DEBUG_TREE")
    '("updates" "GTK_DEBUG_UPDATES")
    '("keybindings" "GTK_DEBUG_KEYBINDINGS")
    '("multihead" "GTK_DEBUG_MULTIHEAD")
  )
)

(define-flags DestDefaults
  (in-module "Gtk")
  (c-name "GtkDestDefaults")
  (gtype-id "GTK_TYPE_DEST_DEFAULTS")
  (values
    '("motion" "GTK_DEST_DEFAULT_MOTION")
    '("highlight" "GTK_DEST_DEFAULT_HIGHLIGHT")
    '("drop" "GTK_DEST_DEFAULT_DROP")
    '("all" "GTK_DEST_DEFAULT_ALL")
  )
)

(define-flags DialogFlags
  (in-module "Gtk")
  (c-name "GtkDialogFlags")
  (gtype-id "GTK_TYPE_DIALOG_FLAGS")
  (values
    '("modal" "GTK_DIALOG_MODAL")
    '("destroy-with-parent" "GTK_DIALOG_DESTROY_WITH_PARENT")
    '("no-separator" "GTK_DIALOG_NO_SEPARATOR")
  )
)

(define-flags FileFilterFlags
  (in-module "Gtk")
  (c-name "GtkFileFilterFlags")
  (gtype-id "GTK_TYPE_FILE_FILTER_FLAGS")
  (values
    '("filename" "GTK_FILE_FILTER_FILENAME")
    '("uri" "GTK_FILE_FILTER_URI")
    '("display-name" "GTK_FILE_FILTER_DISPLAY_NAME")
    '("mime-type" "GTK_FILE_FILTER_MIME_TYPE")
  )
)

(define-flags IconLookupFlags
  (in-module "Gtk")
  (c-name "GtkIconLookupFlags")
  (gtype-id "GTK_TYPE_ICON_LOOKUP_FLAGS")
  (values
    '("no-svg" "GTK_ICON_LOOKUP_NO_SVG")
    '("force-svg" "GTK_ICON_LOOKUP_FORCE_SVG")
    '("use-builtin" "GTK_ICON_LOOKUP_USE_BUILTIN")
  )
)

(define-flags ObjectFlags
  (in-module "Gtk")
  (c-name "GtkObjectFlags")
  (gtype-id "GTK_TYPE_OBJECT_FLAGS")
  (values
    '("in-destruction" "GTK_IN_DESTRUCTION")
    '("floating" "GTK_FLOATING")
    '("reserved-1" "GTK_RESERVED_1")
    '("reserved-2" "GTK_RESERVED_2")
  )
)

(define-flags PrivateFlags
  (in-module "Gtk")
  (c-name "GtkPrivateFlags")
  (gtype-id "GTK_TYPE_PRIVATE_FLAGS")
  (values
    '("user-style" "PRIVATE_GTK_USER_STYLE")
    '("resize-pending" "PRIVATE_GTK_RESIZE_PENDING")
    '("leave-pending" "PRIVATE_GTK_LEAVE_PENDING")
    '("has-shape-mask" "PRIVATE_GTK_HAS_SHAPE_MASK")
    '("in-reparent" "PRIVATE_GTK_IN_REPARENT")
    '("direction-set" "PRIVATE_GTK_DIRECTION_SET")
    '("direction-ltr" "PRIVATE_GTK_DIRECTION_LTR")
    '("anchored" "PRIVATE_GTK_ANCHORED")
    '("child-visible" "PRIVATE_GTK_CHILD_VISIBLE")
    '("redraw-on-alloc" "PRIVATE_GTK_REDRAW_ON_ALLOC")
    '("alloc-needed" "PRIVATE_GTK_ALLOC_NEEDED")
    '("request-needed" "PRIVATE_GTK_REQUEST_NEEDED")
  )
)

(define-flags RcFlags
  (in-module "Gtk")
  (c-name "GtkRcFlags")
  (gtype-id "GTK_TYPE_RC_FLAGS")
  (values
    '("fg" "GTK_RC_FG")
    '("bg" "GTK_RC_BG")
    '("text" "GTK_RC_TEXT")
    '("base" "GTK_RC_BASE")
  )
)

(define-flags TargetFlags
  (in-module "Gtk")
  (c-name "GtkTargetFlags")
  (gtype-id "GTK_TYPE_TARGET_FLAGS")
  (values
    '("app" "GTK_TARGET_SAME_APP")
    '("widget" "GTK_TARGET_SAME_WIDGET")
  )
)

(define-flags TextSearchFlags
   (in-module "Gtk")
   (c-name "GtkTextSearchFlags")
   (gtype-id "GTK_TYPE_TEXT_SEARCH_FLAGS")
   (values
     '("visible-only" "GTK_TEXT_SEARCH_VISIBLE_ONLY")
     '("text-only" "GTK_TEXT_SEARCH_TEXT_ONLY")
    )
 )

(define-flags TreeModelFlags
  (in-module "Gtk")
  (c-name "GtkTreeModelFlags")
  (gtype-id "GTK_TYPE_TREE_MODEL_FLAGS")
  (values
    '("iters-persist" "GTK_TREE_MODEL_ITERS_PERSIST")
    '("list-only" "GTK_TREE_MODEL_LIST_ONLY")
  )
)

(define-flags UIManagerItemType
  (in-module "Gtk")
  (c-name "GtkUIManagerItemType")
  (gtype-id "GTK_TYPE_UI_MANAGER_ITEM_TYPE")
  (values
    '("auto" "GTK_UI_MANAGER_AUTO")
    '("menubar" "GTK_UI_MANAGER_MENUBAR")
    '("menu" "GTK_UI_MANAGER_MENU")
    '("toolbar" "GTK_UI_MANAGER_TOOLBAR")
    '("placeholder" "GTK_UI_MANAGER_PLACEHOLDER")
    '("popup" "GTK_UI_MANAGER_POPUP")
    '("menuitem" "GTK_UI_MANAGER_MENUITEM")
    '("toolitem" "GTK_UI_MANAGER_TOOLITEM")
    '("separator" "GTK_UI_MANAGER_SEPARATOR")
    '("accelerator" "GTK_UI_MANAGER_ACCELERATOR")
  )
)

(define-flags WidgetFlags
  (in-module "Gtk")
  (c-name "GtkWidgetFlags")
  (gtype-id "GTK_TYPE_WIDGET_FLAGS")
  (values
    '("toplevel" "GTK_TOPLEVEL")
    '("no-window" "GTK_NO_WINDOW")
    '("realized" "GTK_REALIZED")
    '("mapped" "GTK_MAPPED")
    '("visible" "GTK_VISIBLE")
    '("sensitive" "GTK_SENSITIVE")
    '("parent-sensitive" "GTK_PARENT_SENSITIVE")
    '("can-focus" "GTK_CAN_FOCUS")
    '("has-focus" "GTK_HAS_FOCUS")
    '("can-default" "GTK_CAN_DEFAULT")
    '("has-default" "GTK_HAS_DEFAULT")
    '("has-grab" "GTK_HAS_GRAB")
    '("rc-style" "GTK_RC_STYLE")
    '("composite-child" "GTK_COMPOSITE_CHILD")
    '("no-reparent" "GTK_NO_REPARENT")
    '("app-paintable" "GTK_APP_PAINTABLE")
    '("receives-default" "GTK_RECEIVES_DEFAULT")
    '("double-buffered" "GTK_DOUBLE_BUFFERED")
    '("no-show-all" "GTK_NO_SHOW_ALL")
  )
)

;; Interfaces ...

(define-interface CellEditable
  (in-module "Gtk")
  (c-name "GtkCellEditable")
  (gtype-id "GTK_TYPE_CELL_EDITABLE")
  (prerequisite "GtkWidget")
)

(define-interface CellLayout
  (in-module "Gtk")
  (c-name "GtkCellLayout")
  (gtype-id "GTK_TYPE_CELL_LAYOUT")
  (prerequisite "GObject")
)

(define-interface Editable
  (in-module "Gtk")
  (c-name "GtkEditable")
  (gtype-id "GTK_TYPE_EDITABLE")
  (vtable "GtkEditableClass")
  (prerequisite "GtkWidget")
)

(define-interface FileChooser
  (in-module "Gtk")
  (c-name "GtkFileChooser")
  (gtype-id "GTK_TYPE_FILE_CHOOSER")
  (prerequisite "GtkWidget")
)

(define-interface TreeDragDest
  (in-module "Gtk")
  (c-name "GtkTreeDragDest")
  (gtype-id "GTK_TYPE_TREE_DRAG_DEST")
)

(define-interface TreeDragSource
  (in-module "Gtk")
  (c-name "GtkTreeDragSource")
  (gtype-id "GTK_TYPE_TREE_DRAG_SOURCE")
)

(define-interface TreeModel
  (in-module "Gtk")
  (c-name "GtkTreeModel")
  (gtype-id "GTK_TYPE_TREE_MODEL")
  (prerequisite "GObject")
)

(define-interface TreeSortable
  (in-module "Gtk")
  (c-name "GtkTreeSortable")
  (gtype-id "GTK_TYPE_TREE_SORTABLE")
  (prerequisite "GtkTreeModel")
  (prerequisite "GObject")
)

;; Objects ...

(define-object AboutDialog
  (in-module "Gtk")
  (parent "GtkDialog")
  (c-name "GtkAboutDialog")
  (gtype-id "GTK_TYPE_ABOUT_DIALOG")
)

(define-object AccelGroup
  (in-module "Gtk")
  (parent "GObject")
  (c-name "GtkAccelGroup")
  (gtype-id "GTK_TYPE_ACCEL_GROUP")
)

(define-object AccelLabel
  (in-module "Gtk")
  (parent "GtkLabel")
  (c-name "GtkAccelLabel")
  (gtype-id "GTK_TYPE_ACCEL_LABEL")
)

(define-object AccelMap
  (in-module "Gtk")
  (parent "GObject")
  (c-name "GtkAccelMap")
  (gtype-id "GTK_TYPE_ACCEL_MAP")
)

(define-object Accessible
  (in-module "Gtk")
  (parent "AtkObject")
  (c-name "GtkAccessible")
  (gtype-id "GTK_TYPE_ACCESSIBLE")
)

(define-object Action
  (in-module "Gtk")
  (parent "GObject")
  (c-name "GtkAction")
  (gtype-id "GTK_TYPE_ACTION")
)

(define-object ActionGroup
  (in-module "Gtk")
  (parent "GObject")
  (c-name "GtkActionGroup")
  (gtype-id "GTK_TYPE_ACTION_GROUP")
)

(define-object Adjustment
  (in-module "Gtk")
  (parent "GtkObject")
  (c-name "GtkAdjustment")
  (gtype-id "GTK_TYPE_ADJUSTMENT")
  (fields
    '("gfloat" "value")
    '("gfloat" "lower")
    '("gfloat" "upper")
    '("gfloat" "step_increment")
    '("gfloat" "page_increment")
    '("gfloat" "page_size")
  )
)

(define-object Alignment
  (in-module "Gtk")
  (parent "GtkBin")
  (c-name "GtkAlignment")
  (gtype-id "GTK_TYPE_ALIGNMENT")
)

(define-object Arrow
  (in-module "Gtk")
  (parent "GtkMisc")
  (c-name "GtkArrow")
  (gtype-id "GTK_TYPE_ARROW")
)

(define-object AspectFrame
  (in-module "Gtk")
  (parent "GtkFrame")
  (c-name "GtkAspectFrame")
  (gtype-id "GTK_TYPE_ASPECT_FRAME")
)

(define-object Bin
  (in-module "Gtk")
  (parent "GtkContainer")
  (c-name "GtkBin")
  (gtype-id "GTK_TYPE_BIN")
  (fields
    '("GtkWidget*" "child")
  )
)

(define-object Box
  (in-module "Gtk")
  (parent "GtkContainer")
  (c-name "GtkBox")
  (gtype-id "GTK_TYPE_BOX")
)

(define-object Button
  (in-module "Gtk")
  (parent "GtkBin")
  (c-name "GtkButton")
  (gtype-id "GTK_TYPE_BUTTON")
)

(define-object ButtonBox
  (in-module "Gtk")
  (parent "GtkBox")
  (c-name "GtkButtonBox")
  (gtype-id "GTK_TYPE_BUTTON_BOX")
)

(define-object Calendar
  (in-module "Gtk")
  (parent "GtkWidget")
  (c-name "GtkCalendar")
  (gtype-id "GTK_TYPE_CALENDAR")
)

(define-object CellRenderer
  (in-module "Gtk")
  (parent "GtkObject")
  (c-name "GtkCellRenderer")
  (gtype-id "GTK_TYPE_CELL_RENDERER")
)

(define-object CellRendererCombo
  (in-module "Gtk")
  (parent "GtkCellRendererText")
  (c-name "GtkCellRendererCombo")
  (gtype-id "GTK_TYPE_CELL_RENDERER_COMBO")
)

(define-object CellRendererPixbuf
  (in-module "Gtk")
  (parent "GtkCellRenderer")
  (c-name "GtkCellRendererPixbuf")
  (gtype-id "GTK_TYPE_CELL_RENDERER_PIXBUF")
)

(define-object CellRendererProgress
  (in-module "Gtk")
  (parent "GtkCellRenderer")
  (c-name "GtkCellRendererProgress")
  (gtype-id "GTK_TYPE_CELL_RENDERER_PROGRESS")
)

(define-object CellRendererText
  (in-module "Gtk")
  (parent "GtkCellRenderer")
  (c-name "GtkCellRendererText")
  (gtype-id "GTK_TYPE_CELL_RENDERER_TEXT")
)

(define-object CellRendererToggle
  (in-module "Gtk")
  (parent "GtkCellRenderer")
  (c-name "GtkCellRendererToggle")
  (gtype-id "GTK_TYPE_CELL_RENDERER_TOGGLE")
)

(define-object CellView
  (in-module "Gtk")
  (parent "GtkWidget")
  (c-name "GtkCellView")
  (gtype-id "GTK_TYPE_CELL_VIEW")
  (implements "GtkCellLayout")
)

(define-object CheckButton
  (in-module "Gtk")
  (parent "GtkToggleButton")
  (c-name "GtkCheckButton")
  (gtype-id "GTK_TYPE_CHECK_BUTTON")
)

(define-object CheckMenuItem
  (in-module "Gtk")
  (parent "GtkMenuItem")
  (c-name "GtkCheckMenuItem")
  (gtype-id "GTK_TYPE_CHECK_MENU_ITEM")
  (fields
    '("gboolean" "active")
  )
)

(define-object Clipboard
  (in-module "Gtk")
  (parent "GObject")
  (c-name "GtkClipboard")
  (gtype-id "GTK_TYPE_CLIPBOARD")
)

(define-object CList
  (in-module "Gtk")
  (parent "GtkContainer")
  (c-name "GtkCList")
  (gtype-id "GTK_TYPE_CLIST")
  (fields
    '("GList*" "selection")
    '("gint" "focus_row")
    '("gint" "rows")
    '("gint" "columns")
  )
)

(define-object ColorButton
  (in-module "Gtk")
  (parent "GtkButton")
  (c-name "GtkColorButton")
  (gtype-id "GTK_TYPE_COLOR_BUTTON")
)

(define-object ColorSelection
  (in-module "Gtk")
  (parent "GtkVBox")
  (c-name "GtkColorSelection")
  (gtype-id "GTK_TYPE_COLOR_SELECTION")
)

(define-object ColorSelectionDialog
  (in-module "Gtk")
  (parent "GtkDialog")
  (c-name "GtkColorSelectionDialog")
  (gtype-id "GTK_TYPE_COLOR_SELECTION_DIALOG")
  (fields
    '("GtkWidget*" "colorsel")
    '("GtkWidget*" "ok_button")
    '("GtkWidget*" "cancel_button")
    '("GtkWidget*" "help_button")
  )
)

(define-object Combo
  (in-module "Gtk")
  (parent "GtkHBox")
  (c-name "GtkCombo")
  (gtype-id "GTK_TYPE_COMBO")
  (fields
    '("GtkWidget*" "entry")
    '("GtkWidget*" "list")
  )
)

(define-object ComboBox
  (in-module "Gtk")
  (parent "GtkBin")
  (c-name "GtkComboBox")
  (gtype-id "GTK_TYPE_COMBO_BOX")
  (implements "GtkCellEditable")
  (implements "GtkCellLayout")
)

(define-object ComboBoxEntry
  (in-module "Gtk")
  (parent "GtkComboBox")
  (c-name "GtkComboBoxEntry")
  (gtype-id "GTK_TYPE_COMBO_BOX_ENTRY")
  (implements "GtkCellEditable")
  (implements "GtkCellLayout")
)

(define-object Container
  (in-module "Gtk")
  (parent "GtkWidget")
  (c-name "GtkContainer")
  (gtype-id "GTK_TYPE_CONTAINER")
  (fields
    '("GtkWidget*" "focus_child")
    '("guint" "border_width")
    '("guint" "need_resize")
    '("guint" "resize_mode")
    '("guint" "reallocate_redraws")
    '("guint" "has_focus_chain")    
  )
)


(define-object CTree
  (in-module "Gtk")
  (parent "GtkCList")
  (c-name "GtkCTree")
  (gtype-id "GTK_TYPE_CTREE")
  (fields
    '("GList*" "selection")
  )
)

(define-object Curve
  (in-module "Gtk")
  (parent "GtkDrawingArea")
  (c-name "GtkCurve")
  (gtype-id "GTK_TYPE_CURVE")
)

(define-object Dialog
  (in-module "Gtk")
  (parent "GtkWindow")
  (c-name "GtkDialog")
  (gtype-id "GTK_TYPE_DIALOG")
  (fields
    '("GtkWidget*" "vbox")
    '("GtkWidget*" "action_area")
  )
)

(define-object DrawingArea
  (in-module "Gtk")
  (parent "GtkWidget")
  (c-name "GtkDrawingArea")
  (gtype-id "GTK_TYPE_DRAWING_AREA")
)

(define-object Entry
  (in-module "Gtk")
  (parent "GtkWidget")
  (c-name "GtkEntry")
  (gtype-id "GTK_TYPE_ENTRY")
  (implements "GtkEditable")
  (implements "GtkCellEditable")
)

(define-object EntryCompletion
  (in-module "Gtk")
  (parent "GObject")
  (c-name "GtkEntryCompletion")
  (gtype-id "GTK_TYPE_ENTRY_COMPLETION")
  (implements "GtkCellLayout")
)

(define-object EventBox
  (in-module "Gtk")
  (parent "GtkBin")
  (c-name "GtkEventBox")
  (gtype-id "GTK_TYPE_EVENT_BOX")
)

(define-object Expander
  (in-module "Gtk")
  (parent "GtkBin")
  (c-name "GtkExpander")
  (gtype-id "GTK_TYPE_EXPANDER")
)

(define-object FileChooserButton
  (in-module "Gtk")
  (parent "GtkHBox")
  (c-name "GtkFileChooserButton")
  (gtype-id "GTK_TYPE_FILE_CHOOSER_BUTTON")
  (implements "GtkFileChooser")
)

(define-object FileChooserDialog
  (in-module "Gtk")
  (parent "GtkDialog")
  (c-name "GtkFileChooserDialog")
  (gtype-id "GTK_TYPE_FILE_CHOOSER_DIALOG")
  (implements "GtkFileChooser")
)

(define-object FileChooserWidget
  (in-module "Gtk")
  (parent "GtkVBox")
  (c-name "GtkFileChooserWidget")
  (gtype-id "GTK_TYPE_FILE_CHOOSER_WIDGET")
  (implements "GtkFileChooser")
)

(define-object FileFilter
  (in-module "Gtk")
  (parent "GtkObject")
  (c-name "GtkFileFilter")
  (gtype-id "GTK_TYPE_FILE_FILTER")
)

(define-object FileSelection
  (in-module "Gtk")
  (parent "GtkDialog")
  (c-name "GtkFileSelection")
  (gtype-id "GTK_TYPE_FILE_SELECTION")
  (fields
    '("GtkWidget*" "dir_list")
    '("GtkWidget*" "file_list")
    '("GtkWidget*" "selection_entry")
    '("GtkWidget*" "selection_text")
    '("GtkWidget*" "main_vbox")
    '("GtkWidget*" "ok_button")
    '("GtkWidget*" "cancel_button")
    '("GtkWidget*" "help_button")
    '("GtkWidget*" "history_pulldown")
    '("GtkWidget*" "history_menu")
    '("GtkWidget*" "fileop_dialog")
    '("GtkWidget*" "fileop_entry")
    '("gchar*"     "fileop_file")    
    '("GtkWidget*" "fileop_c_dir")
    '("GtkWidget*" "fileop_del_file")    
    '("GtkWidget*" "fileop_ren_file")        
    '("GtkWidget*" "button_area")        
    '("GtkWidget*" "action_area")
  )
)

(define-object Fixed
  (in-module "Gtk")
  (parent "GtkContainer")
  (c-name "GtkFixed")
  (gtype-id "GTK_TYPE_FIXED")
)

(define-object FontButton
  (in-module "Gtk")
  (parent "GtkButton")
  (c-name "GtkFontButton")
  (gtype-id "GTK_TYPE_FONT_BUTTON")
)

(define-object FontSelection
  (in-module "Gtk")
  (parent "GtkVBox")
  (c-name "GtkFontSelection")
  (gtype-id "GTK_TYPE_FONT_SELECTION")
)

(define-object FontSelectionDialog
  (in-module "Gtk")
  (parent "GtkDialog")
  (c-name "GtkFontSelectionDialog")
  (gtype-id "GTK_TYPE_FONT_SELECTION_DIALOG")
  (fields
    '("GtkWidget*" "fontsel")
    '("GtkWidget*" "main_vbox")
    '("GtkWidget*" "action_area")
    '("GtkWidget*" "ok_button")
    '("GtkWidget*" "apply_button")
    '("GtkWidget*" "cancel_button")
  )
)

(define-object Frame
  (in-module "Gtk")
  (parent "GtkBin")
  (c-name "GtkFrame")
  (gtype-id "GTK_TYPE_FRAME")
)

(define-object GammaCurve
  (in-module "Gtk")
  (parent "GtkVBox")
  (c-name "GtkGammaCurve")
  (gtype-id "GTK_TYPE_GAMMA_CURVE")
  (fields
    '("GtkWidget*" "table")
    '("GtkWidget*" "curve")
    '("gfloat" "gamma")
    '("GtkWidget*" "gamma_dialog")
    '("GtkWidget*" "gamma_text")
  )
)

(define-object HandleBox
  (in-module "Gtk")
  (parent "GtkBin")
  (c-name "GtkHandleBox")
  (gtype-id "GTK_TYPE_HANDLE_BOX")
)

(define-object HBox
  (in-module "Gtk")
  (parent "GtkBox")
  (c-name "GtkHBox")
  (gtype-id "GTK_TYPE_HBOX")
)

(define-object HButtonBox
  (in-module "Gtk")
  (parent "GtkButtonBox")
  (c-name "GtkHButtonBox")
  (gtype-id "GTK_TYPE_HBUTTON_BOX")
)

(define-object HPaned
  (in-module "Gtk")
  (parent "GtkPaned")
  (c-name "GtkHPaned")
  (gtype-id "GTK_TYPE_HPANED")
)

(define-object HRuler
  (in-module "Gtk")
  (parent "GtkRuler")
  (c-name "GtkHRuler")
  (gtype-id "GTK_TYPE_HRULER")
)

(define-object HScale
  (in-module "Gtk")
  (parent "GtkScale")
  (c-name "GtkHScale")
  (gtype-id "GTK_TYPE_HSCALE")
)

(define-object HScrollbar
  (in-module "Gtk")
  (parent "GtkScrollbar")
  (c-name "GtkHScrollbar")
  (gtype-id "GTK_TYPE_HSCROLLBAR")
)

(define-object HSeparator
  (in-module "Gtk")
  (parent "GtkSeparator")
  (c-name "GtkHSeparator")
  (gtype-id "GTK_TYPE_HSEPARATOR")
)

(define-object IconFactory
  (in-module "Gtk")
  (parent "GObject")
  (c-name "GtkIconFactory")
  (gtype-id "GTK_TYPE_ICON_FACTORY")
)

(define-object IconTheme
  (in-module "Gtk")
  (parent "GObject")
  (c-name "GtkIconTheme")
  (gtype-id "GTK_TYPE_ICON_THEME")
)

(define-object IconView
  (in-module "Gtk")
  (parent "GtkContainer")
  (c-name "GtkIconView")
  (gtype-id "GTK_TYPE_ICON_VIEW")
  (implements "GtkCellLayout")
)

(define-object Image
  (in-module "Gtk")
  (parent "GtkMisc")
  (c-name "GtkImage")
  (gtype-id "GTK_TYPE_IMAGE")
)

(define-object ImageMenuItem
  (in-module "Gtk")
  (parent "GtkMenuItem")
  (c-name "GtkImageMenuItem")
  (gtype-id "GTK_TYPE_IMAGE_MENU_ITEM")
)

(define-object IMContext
  (in-module "Gtk")
  (parent "GtkObject")
  (c-name "GtkIMContext")
  (gtype-id "GTK_TYPE_IM_CONTEXT")
)

(define-object IMContextSimple
  (in-module "Gtk")
  (parent "GtkIMContext")
  (c-name "GtkIMContextSimple")
  (gtype-id "GTK_TYPE_IM_CONTEXT_SIMPLE")
)

(define-object IMMulticontext
  (in-module "Gtk")
  (parent "GtkIMContext")
  (c-name "GtkIMMulticontext")
  (gtype-id "GTK_TYPE_IM_MULTICONTEXT")
)

(define-object InputDialog
  (in-module "Gtk")
  (parent "GtkDialog")
  (c-name "GtkInputDialog")
  (gtype-id "GTK_TYPE_INPUT_DIALOG")
)

(define-object Invisible
  (in-module "Gtk")
  (parent "GtkWidget")
  (c-name "GtkInvisible")
  (gtype-id "GTK_TYPE_INVISIBLE")
)

(define-object Item
  (in-module "Gtk")
  (parent "GtkBin")
  (c-name "GtkItem")
  (gtype-id "GTK_TYPE_ITEM")
)

(define-object ItemFactory
  (in-module "Gtk")
  (parent "GtkObject")
  (c-name "GtkItemFactory")
  (gtype-id "GTK_TYPE_ITEM_FACTORY")
)

(define-object Label
  (in-module "Gtk")
  (parent "GtkMisc")
  (c-name "GtkLabel")
  (gtype-id "GTK_TYPE_LABEL")
)

(define-object Layout
  (in-module "Gtk")
  (parent "GtkContainer")
  (c-name "GtkLayout")
  (gtype-id "GTK_TYPE_LAYOUT")
  (fields
   '("GdkWindow*" "bin_window")
   )
)

(define-object List
  (in-module "Gtk")
  (parent "GtkContainer")
  (c-name "GtkList")
  (gtype-id "GTK_TYPE_LIST")
  (fields
    '("GList*" "selection")
  )
)

(define-object ListItem
  (in-module "Gtk")
  (parent "GtkItem")
  (c-name "GtkListItem")
  (gtype-id "GTK_TYPE_LIST_ITEM")
)

(define-object ListStore
  (in-module "Gtk")
  (parent "GObject")
  (c-name "GtkListStore")
  (gtype-id "GTK_TYPE_LIST_STORE")
  (implements "GtkTreeModel")
  (implements "GtkTreeDragSource")
  (implements "GtkTreeDragDest")
  (implements "GtkTreeSortable")
)

(define-object Menu
  (in-module "Gtk")
  (parent "GtkMenuShell")
  (c-name "GtkMenu")
  (gtype-id "GTK_TYPE_MENU")
)

(define-object MenuBar
  (in-module "Gtk")
  (parent "GtkMenuShell")
  (c-name "GtkMenuBar")
  (gtype-id "GTK_TYPE_MENU_BAR")
)

(define-object MenuItem
  (in-module "Gtk")
  (parent "GtkItem")
  (c-name "GtkMenuItem")
  (gtype-id "GTK_TYPE_MENU_ITEM")
)

(define-object MenuShell
  (in-module "Gtk")
  (parent "GtkContainer")
  (c-name "GtkMenuShell")
  (gtype-id "GTK_TYPE_MENU_SHELL")
)

(define-object MenuToolButton
  (in-module "Gtk")
  (parent "GtkToolButton")
  (c-name "GtkMenuToolButton")
  (gtype-id "GTK_TYPE_MENU_TOOL_BUTTON")
)

(define-object MessageDialog
  (in-module "Gtk")
  (parent "GtkDialog")
  (c-name "GtkMessageDialog")
  (gtype-id "GTK_TYPE_MESSAGE_DIALOG")
  (fields
    '("GtkWidget*" "image")
    '("GtkWidget*" "label")
  )
)

(define-object Misc
  (in-module "Gtk")
  (parent "GtkWidget")
  (c-name "GtkMisc")
  (gtype-id "GTK_TYPE_MISC")
)

(define-object Notebook
  (in-module "Gtk")
  (parent "GtkContainer")
  (c-name "GtkNotebook")
  (gtype-id "GTK_TYPE_NOTEBOOK")
  (fields
    '("GtkPositionType" "tab_pos")
  )
)

(define-object Object
  (in-module "Gtk")
  (parent "GObject")
  (c-name "GtkObject")
  (gtype-id "GTK_TYPE_OBJECT")
)

(define-object OldEditable
  (in-module "Gtk")
  (parent "GtkWidget")
  (c-name "GtkOldEditable")
  (gtype-id "GTK_TYPE_OLD_EDITABLE")
  (implements "GtkEditable")
)

(define-object OptionMenu
  (in-module "Gtk")
  (parent "GtkButton")
  (c-name "GtkOptionMenu")
  (gtype-id "GTK_TYPE_OPTION_MENU")
)

(define-object Paned
  (in-module "Gtk")
  (parent "GtkContainer")
  (c-name "GtkPaned")
  (gtype-id "GTK_TYPE_PANED")
)

(define-object Pixmap
  (in-module "Gtk")
  (parent "GtkMisc")
  (c-name "GtkPixmap")
  (gtype-id "GTK_TYPE_PIXMAP")
)

(define-object Plug
  (in-module "Gtk")
  (parent "GtkWindow")
  (c-name "GtkPlug")
  (gtype-id "GTK_TYPE_PLUG")
)

(define-object Preview
  (in-module "Gtk")
  (parent "GtkWidget")
  (c-name "GtkPreview")
  (gtype-id "GTK_TYPE_PREVIEW")
)

(define-object Progress
  (in-module "Gtk")
  (parent "GtkWidget")
  (c-name "GtkProgress")
  (gtype-id "GTK_TYPE_PROGRESS")
)

(define-object ProgressBar
  (in-module "Gtk")
  (parent "GtkProgress")
  (c-name "GtkProgressBar")
  (gtype-id "GTK_TYPE_PROGRESS_BAR")
)

(define-object RadioAction
  (in-module "Gtk")
  (parent "GtkToggleAction")
  (c-name "GtkRadioAction")
  (gtype-id "GTK_TYPE_RADIO_ACTION")
)

(define-object RadioButton
  (in-module "Gtk")
  (parent "GtkCheckButton")
  (c-name "GtkRadioButton")
  (gtype-id "GTK_TYPE_RADIO_BUTTON")
)

(define-object RadioMenuItem
  (in-module "Gtk")
  (parent "GtkCheckMenuItem")
  (c-name "GtkRadioMenuItem")
  (gtype-id "GTK_TYPE_RADIO_MENU_ITEM")
)

(define-object RadioToolButton
  (in-module "Gtk")
  (parent "GtkToggleToolButton")
  (c-name "GtkRadioToolButton")
  (gtype-id "GTK_TYPE_RADIO_TOOL_BUTTON")
)

(define-object Range
  (in-module "Gtk")
  (parent "GtkWidget")
  (c-name "GtkRange")
  (gtype-id "GTK_TYPE_RANGE")
)

(define-object RcStyle
  (in-module "Gtk")
  (parent "GObject")
  (c-name "GtkRcStyle")
  (fields
    '("gchar*" "name")
    '("gchar**" "bg_pixmap_name")
    '("PangoFontDescription*" "font_desc")
    '("GdkColor*" "fg")
    '("GdkColor*" "bg")
    '("GdkColor*" "text")
    '("GdkColor*" "base")
    '("gint" "xthickness")
    '("gint" "ythickness")
  )
  (gtype-id "GTK_TYPE_RC_STYLE")
)

(define-object Ruler
  (in-module "Gtk")
  (parent "GtkWidget")
  (c-name "GtkRuler")
  (gtype-id "GTK_TYPE_RULER")
)

(define-object Scale
  (in-module "Gtk")
  (parent "GtkRange")
  (c-name "GtkScale")
  (gtype-id "GTK_TYPE_SCALE")
)

(define-object Scrollbar
  (in-module "Gtk")
  (parent "GtkRange")
  (c-name "GtkScrollbar")
  (gtype-id "GTK_TYPE_SCROLLBAR")
)

(define-object ScrolledWindow
  (in-module "Gtk")
  (parent "GtkBin")
  (c-name "GtkScrolledWindow")
  (gtype-id "GTK_TYPE_SCROLLED_WINDOW")
)

(define-object Separator
  (in-module "Gtk")
  (parent "GtkWidget")
  (c-name "GtkSeparator")
  (gtype-id "GTK_TYPE_SEPARATOR")
)

(define-object SeparatorMenuItem
  (in-module "Gtk")
  (parent "GtkMenuItem")
  (c-name "GtkSeparatorMenuItem")
  (gtype-id "GTK_TYPE_SEPARATOR_MENU_ITEM")
)

(define-object SeparatorToolItem
  (in-module "Gtk")
  (parent "GtkToolItem")
  (c-name "GtkSeparatorToolItem")
  (gtype-id "GTK_TYPE_SEPARATOR_TOOL_ITEM")
)

(define-object Settings
  (in-module "Gtk")
  (parent "GObject")
  (c-name "GtkSettings")
  (gtype-id "GTK_TYPE_SETTINGS")
)

(define-object SizeGroup
  (in-module "Gtk")
  (parent "GObject")
  (c-name "GtkSizeGroup")
  (gtype-id "GTK_TYPE_SIZE_GROUP")
)

(define-object Socket
  (in-module "Gtk")
  (parent "GtkContainer")
  (c-name "GtkSocket")
  (gtype-id "GTK_TYPE_SOCKET")
)

(define-object SpinButton
  (in-module "Gtk")
  (parent "GtkEntry")
  (c-name "GtkSpinButton")
  (gtype-id "GTK_TYPE_SPIN_BUTTON")
  (implements "GtkEditable")
  (implements "GtkCellEditable")
)

(define-object Statusbar
  (in-module "Gtk")
  (parent "GtkHBox")
  (c-name "GtkStatusbar")
  (gtype-id "GTK_TYPE_STATUSBAR")
)

(define-object Style
  (in-module "Gtk")
  (parent "GObject")
  (c-name "GtkStyle")
  (fields
    '("GdkColor*" "fg")
    '("GdkColor*" "bg")
    '("GdkColor*" "light")
    '("GdkColor*" "dark")
    '("GdkColor*" "mid")
    '("GdkColor*" "text")
    '("GdkColor*" "base")
    '("GdkColor*" "text_aa")
    '("GdkColor" "white")
    '("GdkColor" "black")
    '("PangoFontDescription*" "font_desc")
    '("gint" "xthickness")
    '("gint" "ythickness")
    '("GdkGC**" "fg_gc")
    '("GdkGC**" "bg_gc")
    '("GdkGC**" "light_gc")
    '("GdkGC**" "dark_gc")
    '("GdkGC**" "mid_gc")
    '("GdkGC**" "text_gc")
    '("GdkGC**" "base_gc")
    '("GdkGC**" "text_aa_gc")
    '("GdkGC*" "white_gc")
    '("GdkGC*" "black_gc")
    '("GdkPixmap**" "bg_pixmap")
  )
  (gtype-id "GTK_TYPE_STYLE")
)

(define-object Table
  (in-module "Gtk")
  (parent "GtkContainer")
  (c-name "GtkTable")
  (gtype-id "GTK_TYPE_TABLE")
)

(define-object TearoffMenuItem
  (in-module "Gtk")
  (parent "GtkMenuItem")
  (c-name "GtkTearoffMenuItem")
  (gtype-id "GTK_TYPE_TEAROFF_MENU_ITEM")
)


(define-object TextBuffer
  (in-module "Gtk")
  (parent "GObject")
  (c-name "GtkTextBuffer")
  (gtype-id "GTK_TYPE_TEXT_BUFFER")
  (fields
    '("GtkTextTagTable*" "tag_table")
  )
)

(define-object TextChildAnchor
  (in-module "Gtk")
  (parent "GObject")
  (c-name "GtkTextChildAnchor")
  (gtype-id "GTK_TYPE_TEXT_CHILD_ANCHOR")
)

(define-object TextMark
  (in-module "Gtk")
  (parent "GObject")
  (c-name "GtkTextMark")
  (gtype-id "GTK_TYPE_TEXT_MARK")
)

(define-object TextTag
  (in-module "Gtk")
  (parent "GObject")
  (c-name "GtkTextTag")
  (gtype-id "GTK_TYPE_TEXT_TAG")
)

(define-object TextTagTable
  (in-module "Gtk")
  (parent "GObject")
  (c-name "GtkTextTagTable")
  (gtype-id "GTK_TYPE_TEXT_TAG_TABLE")
)

(define-object TextView
  (in-module "Gtk")
  (parent "GtkContainer")
  (c-name "GtkTextView")
  (gtype-id "GTK_TYPE_TEXT_VIEW")
)

(define-object ToggleAction
  (in-module "Gtk")
  (parent "GtkAction")
  (c-name "GtkToggleAction")
  (gtype-id "GTK_TYPE_TOGGLE_ACTION")
)

(define-object ToggleButton
  (in-module "Gtk")
  (parent "GtkButton")
  (c-name "GtkToggleButton")
  (gtype-id "GTK_TYPE_TOGGLE_BUTTON")
  (fields
    '("gboolean" "draw_indicator")
  )
)

(define-object ToggleToolButton
  (in-module "Gtk")
  (parent "GtkToolButton")
  (c-name "GtkToggleToolButton")
  (gtype-id "GTK_TYPE_TOGGLE_TOOL_BUTTON")
)

(define-object Toolbar
  (in-module "Gtk")
  (parent "GtkContainer")
  (c-name "GtkToolbar")
  (gtype-id "GTK_TYPE_TOOLBAR")
)

(define-object ToolButton
  (in-module "Gtk")
  (parent "GtkToolItem")
  (c-name "GtkToolButton")
  (gtype-id "GTK_TYPE_TOOL_BUTTON")
)

(define-object ToolItem
  (in-module "Gtk")
  (parent "GtkBin")
  (c-name "GtkToolItem")
  (gtype-id "GTK_TYPE_TOOL_ITEM")
)

(define-object Tooltips
  (in-module "Gtk")
  (parent "GtkObject")
  (c-name "GtkTooltips")
  (fields
    '("GtkWidget*" "tip_window")
    '("GtkWidget*" "tip_label")
    '("GtkTooltipsData*" "active_tips_data")
    '("GList*" "tips_data_list")
    '("guint" "delay")
    '("guint" "enabled")
    '("guint" "use_sticky_delay")
    '("gint" "timer_tag")
  )
  (gtype-id "GTK_TYPE_TOOLTIPS")
)

(define-object TreeModelFilter
  (in-module "Gtk")
  (parent "GObject")
  (c-name "GtkTreeModelFilter")
  (gtype-id "GTK_TYPE_TREE_MODEL_FILTER")
  (implements "GtkTreeModel")
  (implements "GtkTreeDragSource")
)

(define-object TreeModelSort
  (in-module "Gtk")
  (parent "GObject")
  (c-name "GtkTreeModelSort")
  (gtype-id "GTK_TYPE_TREE_MODEL_SORT")
  (implements "GtkTreeModel")
  (implements "GtkTreeDragSource")
  (implements "GtkTreeSortable")
)

(define-object TreeSelection
  (in-module "Gtk")
  (parent "GObject")
  (c-name "GtkTreeSelection")
  (gtype-id "GTK_TYPE_TREE_SELECTION")
)

(define-object TreeStore
  (in-module "Gtk")
  (parent "GObject")
  (c-name "GtkTreeStore")
  (gtype-id "GTK_TYPE_TREE_STORE")
  (implements "GtkTreeModel")
  (implements "GtkTreeDragSource")
  (implements "GtkTreeDragDest")
  (implements "GtkTreeSortable")
)

(define-object TreeView
  (in-module "Gtk")
  (parent "GtkContainer")
  (c-name "GtkTreeView")
  (gtype-id "GTK_TYPE_TREE_VIEW")
)

(define-object TreeViewColumn
  (in-module "Gtk")
  (parent "GtkObject")
  (c-name "GtkTreeViewColumn")
  (gtype-id "GTK_TYPE_TREE_VIEW_COLUMN")
  (implements "GtkCellLayout")
)

(define-object UIManager
  (in-module "Gtk")
  (parent "GObject")
  (c-name "GtkUIManager")
  (gtype-id "GTK_TYPE_UI_MANAGER")
)

(define-object VBox
  (in-module "Gtk")
  (parent "GtkBox")
  (c-name "GtkVBox")
  (gtype-id "GTK_TYPE_VBOX")
)

(define-object VButtonBox
  (in-module "Gtk")
  (parent "GtkButtonBox")
  (c-name "GtkVButtonBox")
  (gtype-id "GTK_TYPE_VBUTTON_BOX")
)

(define-object Viewport
  (in-module "Gtk")
  (parent "GtkBin")
  (c-name "GtkViewport")
  (gtype-id "GTK_TYPE_VIEWPORT")
)

(define-object VPaned
  (in-module "Gtk")
  (parent "GtkPaned")
  (c-name "GtkVPaned")
  (gtype-id "GTK_TYPE_VPANED")
)

(define-object VRuler
  (in-module "Gtk")
  (parent "GtkRuler")
  (c-name "GtkVRuler")
  (gtype-id "GTK_TYPE_VRULER")
)

(define-object VScale
  (in-module "Gtk")
  (parent "GtkScale")
  (c-name "GtkVScale")
  (gtype-id "GTK_TYPE_VSCALE")
)

(define-object VScrollbar
  (in-module "Gtk")
  (parent "GtkScrollbar")
  (c-name "GtkVScrollbar")
  (gtype-id "GTK_TYPE_VSCROLLBAR")
)

(define-object VSeparator
  (in-module "Gtk")
  (parent "GtkSeparator")
  (c-name "GtkVSeparator")
  (gtype-id "GTK_TYPE_VSEPARATOR")
)

(define-object Widget
  (in-module "Gtk")
  (parent "GtkObject")
  (c-name "GtkWidget")
  (gtype-id "GTK_TYPE_WIDGET")
  (fields
    '("guint8" "state")
    '("guint8" "saved_state")
    '("gchar*" "name")
    '("GtkStyle*" "style")
    '("GdkRectangle" "allocation")
    '("GdkWindow*" "window")
    '("GtkWidget*" "parent")
    '("GtkRequisition" "requisition")
  )
)

(define-object Window
  (in-module "Gtk")
  (parent "GtkBin")
  (c-name "GtkWindow")
  (gtype-id "GTK_TYPE_WINDOW")
  (fields
    '("gchar*" "title")
    '("gchar*" "wmclass_name")
    '("gchar*" "wmclass_class")
    '("gchar*" "wm_role")
    '("GtkWidget*" "focus_widget")
    '("GtkWidget*" "default_widget")
    '("GtkWindow*" "transient_parent")
;    '("GtkWindowGeometryInfo* "geometry_info")
    '("GdkWindow*" "frame")
    '("GtkWindowGroup*" "group")
    '("guint16" "configure_request_count")
    '("guint" "allow_shrink")
    '("guint" "allow_grow")
    '("guint" "configure_notify_received")
    '("guint" "need_default_position")
    '("guint" "need_default_size")
    '("guint" "position")    
    '("guint" "type")
    '("guint" "has_user_ref_count")
    '("guint" "has_focus")
    '("guint" "modal")
    '("guint" "destroy_with_parent")    
    '("guint" "has_frame")        
    '("guint" "iconify_initially")            
    '("guint" "stick_initially")                
    '("guint" "maximize_initially")    
    '("guint" "decorated")        
    '("guint" "type_hint")            
    '("guint" "gravity")
    '("guint" "frame_left")
    '("guint" "frame_top")
    '("guint" "frame_right")
    '("guint" "frame_bottom")
    '("guint" "keys_changed_handler")
    '("GdkModifierType" "mnemonic_modifier")
  )
)

(define-object WindowGroup
  (in-module "Gtk")
  (parent "GObject")
  (c-name "GtkWindowGroup")
  (gtype-id "GTK_TYPE_WINDOW_GROUP")
)

;; Pointers ...

(define-pointer CTreeNode
  (in-module "Gtk")
  (c-name "GtkCTreeNode")
  (gtype-id "GTK_TYPE_CTREE_NODE")
)

;; Unsupported

(define-boxed FileInfo
  (in-module "Gtk")
  (c-name "GtkFileInfo")
  (gtype-id "GTK_TYPE_FILE_INFO")
)

(define-boxed FilePath
  (in-module "Gtk")
  (c-name "GtkFilePath")
  (gtype-id "GTK_TYPE_FILE_PATH")
)

(define-boxed TreePath
  (in-module "Gtk")
  (c-name "GtkTreePath")
  (gtype-id "GTK_TYPE_TREE_PATH")
)

(define-interface FileFolder
  (in-module "Gtk")
  (c-name "GtkFileFolder")
  (gtype-id "GTK_TYPE_FILE_FOLDER")
  (prerequisite "GObject")
)

(define-interface FileSystem
  (in-module "Gtk")
  (c-name "GtkFileSystem")
  (gtype-id "GTK_TYPE_FILE_SYSTEM")
  (prerequisite "GObject")
)

(define-object FileSystemHandle
  (in-module "Gtk")
  (parent "GObject")
  (c-name "GtkFileSystemHandle")
  (gtype-id "GTK_TYPE_FILE_SYSTEM_HANDLE")
)

(define-object TextLayout
  (in-module "Gtk")
  (parent "GObject")
  (c-name "GtkTextLayout")
  (gtype-id "GTK_TYPE_TEXT_LAYOUT")
)

(define-object Text
  (in-module "Gtk")
  (parent "GtkOldEditable")
  (c-name "GtkText")
  (gtype-id "GTK_TYPE_TEXT")
  (implements "GtkEditable")
)

(define-object Tree
  (in-module "Gtk")
  (parent "GtkContainer")
  (c-name "GtkTree")
  (gtype-id "GTK_TYPE_TREE")
)

(define-object TreeItem
  (in-module "Gtk")
  (parent "GtkItem")
  (c-name "GtkTreeItem")
  (gtype-id "GTK_TYPE_TREE_ITEM")
)

(define-object TipsQuery
  (in-module "Gtk")
  (parent "GtkLabel")
  (c-name "GtkTipsQuery")
  (gtype-id "GTK_TYPE_TIPS_QUERY")
)

(define-flags FileInfoType
  (in-module "Gtk")
  (c-name "GtkFileInfoType")
  (gtype-id "GTK_TYPE_FILE_INFO_TYPE")
  (values
    '("display-name" "GTK_FILE_INFO_DISPLAY_NAME")
    '("is-folder" "GTK_FILE_INFO_IS_FOLDER")
    '("is-hidden" "GTK_FILE_INFO_IS_HIDDEN")
    '("mime-type" "GTK_FILE_INFO_MIME_TYPE")
    '("modification-time" "GTK_FILE_INFO_MODIFICATION_TIME")
    '("size" "GTK_FILE_INFO_SIZE")
    '("icon" "GTK_FILE_INFO_ICON")
    '("all" "GTK_FILE_INFO_ALL")
  )
)

(define-enum FileSystemError
  (in-module "Gtk")
  (c-name "GtkFileSystemError")
  (gtype-id "GTK_TYPE_FILE_SYSTEM_ERROR")
  (values
    '("nonexistent" "GTK_FILE_SYSTEM_ERROR_NONEXISTENT")
    '("not-folder" "GTK_FILE_SYSTEM_ERROR_NOT_FOLDER")
    '("invalid-uri" "GTK_FILE_SYSTEM_ERROR_INVALID_URI")
    '("bad-filename" "GTK_FILE_SYSTEM_ERROR_BAD_FILENAME")
    '("failed" "GTK_FILE_SYSTEM_ERROR_FAILED")
    '("already-exists" "GTK_FILE_SYSTEM_ERROR_ALREADY_EXISTS")
  )
)
