;; -*- scheme -*-
; object definitions ...
(define-object Hyperlink
  (in-module "Atk")
  (parent "GObject")
  (c-name "AtkHyperlink")
  (gtype-id "ATK_TYPE_HYPERLINK")
)

(define-object GObjectAccessible
  (in-module "Atk")
  (parent "AtkObject")
  (c-name "AtkGObjectAccessible")
  (gtype-id "ATK_TYPE_GOBJECT_ACCESSIBLE")
)

(define-object Object
  (in-module "Atk")
  (parent "GObject")
  (c-name "AtkObject")
  (gtype-id "ATK_TYPE_OBJECT")
)

(define-object NoOpObject
  (in-module "Atk")
  (parent "AtkObject")
  (c-name "AtkNoOpObject")
  (gtype-id "ATK_TYPE_NO_OP_OBJECT")
)

(define-object ObjectFactory
  (in-module "Atk")
  (parent "GObject")
  (c-name "AtkObjectFactory")
  (gtype-id "ATK_TYPE_OBJECT_FACTORY")
)

(define-object NoOpObjectFactory
  (in-module "Atk")
  (parent "AtkObjectFactory")
  (c-name "AtkNoOpObjectFactory")
  (gtype-id "ATK_TYPE_NO_OP_OBJECT_FACTORY")
)

(define-object Registry
  (in-module "Atk")
  (parent "GObject")
  (c-name "AtkRegistry")
  (gtype-id "ATK_TYPE_REGISTRY")
)

(define-object Relation
  (in-module "Atk")
  (parent "GObject")
  (c-name "AtkRelation")
  (gtype-id "ATK_TYPE_RELATION")
)

(define-object RelationSet
  (in-module "Atk")
  (parent "GObject")
  (c-name "AtkRelationSet")
  (gtype-id "ATK_TYPE_RELATION_SET")
)

(define-object StateSet
  (in-module "Atk")
  (parent "GObject")
  (c-name "AtkStateSet")
  (gtype-id "ATK_TYPE_STATE_SET")
)

(define-object Util
  (in-module "Atk")
  (parent "GObject")
  (c-name "AtkUtil")
  (gtype-id "ATK_TYPE_UTIL")
)

(define-interface Action
  (in-module "Atk")
  (c-name "AtkAction")
  (gtype-id "ATK_TYPE_ACTION")
)

(define-interface Component
  (in-module "Atk")
  (c-name "AtkComponent")
  (gtype-id "ATK_TYPE_COMPONENT")
)

(define-interface Document
  (in-module "Atk")
  (c-name "AtkDocument")
  (gtype-id "ATK_TYPE_DOCUMENT")
)

(define-interface EditableText
  (in-module "Atk")
  (c-name "AtkEditableText")
  (gtype-id "ATK_TYPE_EDITABLE_TEXT")
)

(define-interface HyperlinkImpl
  (in-module "Atk")
  (c-name "AtkHyperlinkImpl")
  (gtype-id "ATK_TYPE_HYPERLINK_IMPL")
)

(define-interface Hypertext
  (in-module "Atk")
  (c-name "AtkHypertext")
  (gtype-id "ATK_TYPE_HYPERTEXT")
)

(define-interface Image
  (in-module "Atk")
  (c-name "AtkImage")
  (gtype-id "ATK_TYPE_IMAGE")
)

(define-interface ImplementorIface
  (in-module "Atk")
  (c-name "AtkImplementorIface")
  (gtype-id "ATK_TYPE_IMPLEMENTOR")
)

(define-interface Selection
  (in-module "Atk")
  (c-name "AtkSelection")
  (gtype-id "ATK_TYPE_SELECTION")
)

(define-interface StreamableContent
  (in-module "Atk")
  (c-name "AtkStreamableContent")
  (gtype-id "ATK_TYPE_STREAMABLE_CONTENT")
)

(define-interface Table
  (in-module "Atk")
  (c-name "AtkTable")
  (gtype-id "ATK_TYPE_TABLE")
)

(define-interface Text
  (in-module "Atk")
  (c-name "AtkText")
  (gtype-id "ATK_TYPE_TEXT")
)

(define-interface Value
  (in-module "Atk")
  (c-name "AtkValue")
  (gtype-id "ATK_TYPE_VALUE")
)

(define-boxed Rectangle
  (in-module "Atk")
  (c-name "AtkRectangle")
  (gtype-id "ATK_TYPE_RECTANGLE")
  (fields
    '("gint" "x")
    '("gint" "y")
    '("gint" "width")
    '("gint" "height")
  )   
)

;; Enumerations and flags ...

(define-enum Role
  (in-module "Atk")
  (c-name "AtkRole")
  (gtype-id "ATK_TYPE_ROLE")
  (values
    '("invalid" "ATK_ROLE_INVALID")
    '("accel-label" "ATK_ROLE_ACCEL_LABEL")
    '("alert" "ATK_ROLE_ALERT")
    '("animation" "ATK_ROLE_ANIMATION")
    '("arrow" "ATK_ROLE_ARROW")
    '("calendar" "ATK_ROLE_CALENDAR")
    '("canvas" "ATK_ROLE_CANVAS")
    '("check-box" "ATK_ROLE_CHECK_BOX")
    '("check-menu-item" "ATK_ROLE_CHECK_MENU_ITEM")
    '("color-chooser" "ATK_ROLE_COLOR_CHOOSER")
    '("column-header" "ATK_ROLE_COLUMN_HEADER")
    '("combo-box" "ATK_ROLE_COMBO_BOX")
    '("date-editor" "ATK_ROLE_DATE_EDITOR")
    '("desktop-icon" "ATK_ROLE_DESKTOP_ICON")
    '("desktop-frame" "ATK_ROLE_DESKTOP_FRAME")
    '("dial" "ATK_ROLE_DIAL")
    '("dialog" "ATK_ROLE_DIALOG")
    '("directory-pane" "ATK_ROLE_DIRECTORY_PANE")
    '("drawing-area" "ATK_ROLE_DRAWING_AREA")
    '("file-chooser" "ATK_ROLE_FILE_CHOOSER")
    '("filler" "ATK_ROLE_FILLER")
    '("font-chooser" "ATK_ROLE_FONT_CHOOSER")
    '("frame" "ATK_ROLE_FRAME")
    '("glass-pane" "ATK_ROLE_GLASS_PANE")
    '("html-container" "ATK_ROLE_HTML_CONTAINER")
    '("icon" "ATK_ROLE_ICON")
    '("image" "ATK_ROLE_IMAGE")
    '("internal-frame" "ATK_ROLE_INTERNAL_FRAME")
    '("label" "ATK_ROLE_LABEL")
    '("layered-pane" "ATK_ROLE_LAYERED_PANE")
    '("list" "ATK_ROLE_LIST")
    '("list-item" "ATK_ROLE_LIST_ITEM")
    '("menu" "ATK_ROLE_MENU")
    '("menu-bar" "ATK_ROLE_MENU_BAR")
    '("menu-item" "ATK_ROLE_MENU_ITEM")
    '("option-pane" "ATK_ROLE_OPTION_PANE")
    '("page-tab" "ATK_ROLE_PAGE_TAB")
    '("page-tab-list" "ATK_ROLE_PAGE_TAB_LIST")
    '("panel" "ATK_ROLE_PANEL")
    '("password-text" "ATK_ROLE_PASSWORD_TEXT")
    '("popup-menu" "ATK_ROLE_POPUP_MENU")
    '("progress-bar" "ATK_ROLE_PROGRESS_BAR")
    '("push-button" "ATK_ROLE_PUSH_BUTTON")
    '("radio-button" "ATK_ROLE_RADIO_BUTTON")
    '("radio-menu-item" "ATK_ROLE_RADIO_MENU_ITEM")
    '("root-pane" "ATK_ROLE_ROOT_PANE")
    '("row-header" "ATK_ROLE_ROW_HEADER")
    '("scroll-bar" "ATK_ROLE_SCROLL_BAR")
    '("scroll-pane" "ATK_ROLE_SCROLL_PANE")
    '("separator" "ATK_ROLE_SEPARATOR")
    '("slider" "ATK_ROLE_SLIDER")
    '("split-pane" "ATK_ROLE_SPLIT_PANE")
    '("spin-button" "ATK_ROLE_SPIN_BUTTON")
    '("statusbar" "ATK_ROLE_STATUSBAR")
    '("table" "ATK_ROLE_TABLE")
    '("table-cell" "ATK_ROLE_TABLE_CELL")
    '("table-column-header" "ATK_ROLE_TABLE_COLUMN_HEADER")
    '("table-row-header" "ATK_ROLE_TABLE_ROW_HEADER")
    '("tear-off-menu-item" "ATK_ROLE_TEAR_OFF_MENU_ITEM")
    '("terminal" "ATK_ROLE_TERMINAL")
    '("text" "ATK_ROLE_TEXT")
    '("toggle-button" "ATK_ROLE_TOGGLE_BUTTON")
    '("tool-bar" "ATK_ROLE_TOOL_BAR")
    '("tool-tip" "ATK_ROLE_TOOL_TIP")
    '("tree" "ATK_ROLE_TREE")
    '("tree-table" "ATK_ROLE_TREE_TABLE")
    '("unknown" "ATK_ROLE_UNKNOWN")
    '("viewport" "ATK_ROLE_VIEWPORT")
    '("window" "ATK_ROLE_WINDOW")
    '("last-defined" "ATK_ROLE_LAST_DEFINED")
  )
)

(define-enum Layer
  (in-module "Atk")
  (c-name "AtkLayer")
  (gtype-id "ATK_TYPE_LAYER")
  (values
    '("invalid" "ATK_LAYER_INVALID")
    '("background" "ATK_LAYER_BACKGROUND")
    '("canvas" "ATK_LAYER_CANVAS")
    '("widget" "ATK_LAYER_WIDGET")
    '("mdi" "ATK_LAYER_MDI")
    '("popup" "ATK_LAYER_POPUP")
    '("overlay" "ATK_LAYER_OVERLAY")
  )
)

(define-enum RelationType
  (in-module "Atk")
  (c-name "AtkRelationType")
  (gtype-id "ATK_TYPE_RELATION_TYPE")
  (values
    '("null" "ATK_RELATION_NULL")
    '("controlled-by" "ATK_RELATION_CONTROLLED_BY")
    '("controller-for" "ATK_RELATION_CONTROLLER_FOR")
    '("label-for" "ATK_RELATION_LABEL_FOR")
    '("labelled-by" "ATK_RELATION_LABELLED_BY")
    '("member-of" "ATK_RELATION_MEMBER_OF")
    '("node-child-of" "ATK_RELATION_NODE_CHILD_OF")
    '("last-defined" "ATK_RELATION_LAST_DEFINED")
  )
)

(define-enum StateType
  (in-module "Atk")
  (c-name "AtkStateType")
  (gtype-id "ATK_TYPE_STATE_TYPE")
  (values
    '("invalid" "ATK_STATE_INVALID")
    '("active" "ATK_STATE_ACTIVE")
    '("armed" "ATK_STATE_ARMED")
    '("busy" "ATK_STATE_BUSY")
    '("checked" "ATK_STATE_CHECKED")
    '("defunct" "ATK_STATE_DEFUNCT")
    '("editable" "ATK_STATE_EDITABLE")
    '("enabled" "ATK_STATE_ENABLED")
    '("expandable" "ATK_STATE_EXPANDABLE")
    '("expanded" "ATK_STATE_EXPANDED")
    '("focusable" "ATK_STATE_FOCUSABLE")
    '("focused" "ATK_STATE_FOCUSED")
    '("horizontal" "ATK_STATE_HORIZONTAL")
    '("iconified" "ATK_STATE_ICONIFIED")
    '("modal" "ATK_STATE_MODAL")
    '("multi-line" "ATK_STATE_MULTI_LINE")
    '("multiselectable" "ATK_STATE_MULTISELECTABLE")
    '("opaque" "ATK_STATE_OPAQUE")
    '("pressed" "ATK_STATE_PRESSED")
    '("resizable" "ATK_STATE_RESIZABLE")
    '("selectable" "ATK_STATE_SELECTABLE")
    '("selected" "ATK_STATE_SELECTED")
    '("sensitive" "ATK_STATE_SENSITIVE")
    '("showing" "ATK_STATE_SHOWING")
    '("single-line" "ATK_STATE_SINGLE_LINE")
    '("stale" "ATK_STATE_STALE")
    '("transient" "ATK_STATE_TRANSIENT")
    '("vertical" "ATK_STATE_VERTICAL")
    '("visible" "ATK_STATE_VISIBLE")
    '("last-defined" "ATK_STATE_LAST_DEFINED")
  )
)

(define-enum TextAttribute
  (in-module "Atk")
  (c-name "AtkTextAttribute")
  (gtype-id "ATK_TYPE_TEXT_ATTRIBUTE")
  (values
    '("left-margin" "ATK_TEXT_ATTR_LEFT_MARGIN")
    '("right-margin" "ATK_TEXT_ATTR_RIGHT_MARGIN")
    '("indent" "ATK_TEXT_ATTR_INDENT")
    '("invisible" "ATK_TEXT_ATTR_INVISIBLE")
    '("editable" "ATK_TEXT_ATTR_EDITABLE")
    '("pixels-above-lines" "ATK_TEXT_ATTR_PIXELS_ABOVE_LINES")
    '("pixels-below-lines" "ATK_TEXT_ATTR_PIXELS_BELOW_LINES")
    '("pixels-inside-wrap" "ATK_TEXT_ATTR_PIXELS_INSIDE_WRAP")
    '("bg-full-height" "ATK_TEXT_ATTR_BG_FULL_HEIGHT")
    '("rise" "ATK_TEXT_ATTR_RISE")
    '("underline" "ATK_TEXT_ATTR_UNDERLINE")
    '("strikethrough" "ATK_TEXT_ATTR_STRIKETHROUGH")
    '("size" "ATK_TEXT_ATTR_SIZE")
    '("scale" "ATK_TEXT_ATTR_SCALE")
    '("weight" "ATK_TEXT_ATTR_WEIGHT")
    '("language" "ATK_TEXT_ATTR_LANGUAGE")
    '("family-name" "ATK_TEXT_ATTR_FAMILY_NAME")
    '("bg-color" "ATK_TEXT_ATTR_BG_COLOR")
    '("fg-color" "ATK_TEXT_ATTR_FG_COLOR")
    '("bg-stipple" "ATK_TEXT_ATTR_BG_STIPPLE")
    '("fg-stipple" "ATK_TEXT_ATTR_FG_STIPPLE")
    '("wrap-mode" "ATK_TEXT_ATTR_WRAP_MODE")
    '("direction" "ATK_TEXT_ATTR_DIRECTION")
    '("justification" "ATK_TEXT_ATTR_JUSTIFICATION")
    '("stretch" "ATK_TEXT_ATTR_STRETCH")
    '("variant" "ATK_TEXT_ATTR_VARIANT")
    '("style" "ATK_TEXT_ATTR_STYLE")
  )
)

(define-enum TextBoundary
  (in-module "Atk")
  (c-name "AtkTextBoundary")
  (gtype-id "ATK_TYPE_TEXT_BOUNDARY")
  (values
    '("char" "ATK_TEXT_BOUNDARY_CHAR")
    '("word-start" "ATK_TEXT_BOUNDARY_WORD_START")
    '("word-end" "ATK_TEXT_BOUNDARY_WORD_END")
    '("sentence-start" "ATK_TEXT_BOUNDARY_SENTENCE_START")
    '("sentence-end" "ATK_TEXT_BOUNDARY_SENTENCE_END")
    '("line-start" "ATK_TEXT_BOUNDARY_LINE_START")
    '("line-end" "ATK_TEXT_BOUNDARY_LINE_END")
  )
)

(define-enum KeyEventType
  (in-module "Atk")
  (c-name "AtkKeyEventType")
  (gtype-id "ATK_TYPE_KEY_EVENT_TYPE")
  (values
    '("press" "ATK_KEY_EVENT_PRESS")
    '("release" "ATK_KEY_EVENT_RELEASE")
    '("last-defined" "ATK_KEY_EVENT_LAST_DEFINED")
  )
)

(define-enum CoordType
  (in-module "Atk")
  (c-name "AtkCoordType")
  (gtype-id "ATK_TYPE_COORD_TYPE")
  (values
    '("screen" "ATK_XY_SCREEN")
    '("window" "ATK_XY_WINDOW")
  )
)
(define-flags HyperlinkStateFlags
  (in-module "Atk")
  (c-name "AtkHyperlinkStateFlags")
  (gtype-id "ATK_TYPE_HYPERLINK_STATE_FLAGS")
  (values
    '("e" "ATK_HYPERLINK_IS_INLINE")
  )
)

(define-enum TextClipType
  (in-module "Atk")
  (c-name "AtkTextClipType")
  (gtype-id "ATK_TYPE_TEXT_CLIP_TYPE")
  (values
    '("none" "ATK_TEXT_CLIP_NONE")
    '("min" "ATK_TEXT_CLIP_MIN")
    '("max" "ATK_TEXT_CLIP_MAX")
    '("both" "ATK_TEXT_CLIP_BOTH")
  )
)

