;; -*- scheme -*-

; object definitions ...
(define-object CanvasComponent
  (in-module "MateComponent")
  (parent "MateComponentObject")
  (c-name "MateComponentCanvasComponent")
  (gtype-id "MATECOMPONENT_TYPE_CANVAS_COMPONENT")
)

(define-object CanvasItem
  (in-module "MateComponent")
  (parent "MateCanvasItem")
  (c-name "MateComponentCanvasItem")
  (gtype-id "MATECOMPONENT_TYPE_CANVAS_ITEM")
)

(define-object Control
  (in-module "MateComponent")
  (parent "MateComponentObject")
  (c-name "MateComponentControl")
  (gtype-id "MATECOMPONENT_TYPE_CONTROL")
)

(define-object ControlFrame
  (in-module "MateComponent")
  (parent "MateComponentObject")
  (c-name "MateComponentControlFrame")
  (gtype-id "MATECOMPONENT_TYPE_CONTROL_FRAME")
)

(define-object Dock
  (in-module "MateComponent")
  (parent "GtkContainer")
  (c-name "MateComponentDock")
  (gtype-id "MATECOMPONENT_TYPE_DOCK")
)

(define-object DockBand
  (in-module "MateComponent")
  (parent "GtkContainer")
  (c-name "MateComponentDockBand")
  (gtype-id "MATECOMPONENT_TYPE_DOCK_BAND")
)

(define-object DockItem
  (in-module "MateComponent")
  (parent "GtkBin")
  (c-name "MateComponentDockItem")
  (gtype-id "MATECOMPONENT_TYPE_DOCK_ITEM")
)

(define-object Engine
  (in-module "MateComponent")
  (parent "GObject")
  (c-name "MateComponentUIEngine")
  (gtype-id "MATECOMPONENT_TYPE_UI_ENGINE")
)

(define-object Plug
  (in-module "MateComponent")
  (parent "GtkPlug")
  (c-name "MateComponentPlug")
  (gtype-id "MATECOMPONENT_TYPE_PLUG")
)

(define-object PropertyControl
  (in-module "MateComponent")
  (parent "MateComponentObject")
  (c-name "MateComponentPropertyControl")
  (gtype-id "MATECOMPONENT_TYPE_PROPERTY_CONTROL")
)

(define-object Selector
  (in-module "MateComponent")
  (parent "GtkDialog")
  (c-name "MateComponentSelector")
  (gtype-id "MATECOMPONENT_TYPE_SELECTOR")
)

(define-object SelectorWidget
  (in-module "MateComponent")
  (parent "GtkVBox")
  (c-name "MateComponentSelectorWidget")
  (gtype-id "MATECOMPONENT_TYPE_SELECTOR_WIDGET")
)

(define-object Socket
  (in-module "MateComponent")
  (parent "GtkSocket")
  (c-name "MateComponentSocket")
  (gtype-id "MATECOMPONENT_TYPE_SOCKET")
)

(define-object Component
  (in-module "MateComponent")
  (parent "MateComponentObject")
  (c-name "MateComponentUIComponent")
  (gtype-id "MATECOMPONENT_TYPE_UI_COMPONENT")
)

(define-object Container
  (in-module "MateComponent")
  (parent "MateComponentObject")
  (c-name "MateComponentUIContainer")
  (gtype-id "MATECOMPONENT_TYPE_UI_CONTAINER")
)

(define-object Toolbar
  (in-module "MateComponent")
  (parent "GtkContainer")
  (c-name "MateComponentUIToolbar")
  (gtype-id "MATECOMPONENT_TYPE_UI_TOOLBAR")
)

(define-object ToolbarItem
  (in-module "MateComponent")
  (parent "GtkBin")
  (c-name "MateComponentUIToolbarItem")
  (gtype-id "MATECOMPONENT_TYPE_UI_TOOLBAR_ITEM")
)

(define-object Widget
  (in-module "MateComponent")
  (parent "GtkBin")
  (c-name "MateComponentWidget")
  (gtype-id "MATECOMPONENT_TYPE_WIDGET")
)

(define-object Window
  (in-module "MateComponent")
  (parent "GtkWindow")
  (c-name "MateComponentWindow")
  (gtype-id "MATECOMPONENT_TYPE_WINDOW")
)

;; Enumerations and flags ...

(define-enum DockPlacement
  (in-module "MateComponent")
  (c-name "MateComponentDockPlacement")
  (gtype-id "MATECOMPONENT_TYPE_DOCK_PLACEMENT")
  (values
    '("top" "MATECOMPONENT_DOCK_TOP")
    '("right" "MATECOMPONENT_DOCK_RIGHT")
    '("bottom" "MATECOMPONENT_DOCK_BOTTOM")
    '("left" "MATECOMPONENT_DOCK_LEFT")
    '("floating" "MATECOMPONENT_DOCK_FLOATING")
  )
)

(define-flags DockItemBehavior
  (in-module "MateComponent")
  (c-name "MateComponentDockItemBehavior")
  (gtype-id "MATECOMPONENT_TYPE_DOCK_ITEM_BEHAVIOR")
  (values
    '("normal" "MATECOMPONENT_DOCK_ITEM_BEH_NORMAL")
    '("exclusive" "MATECOMPONENT_DOCK_ITEM_BEH_EXCLUSIVE")
    '("never-floating" "MATECOMPONENT_DOCK_ITEM_BEH_NEVER_FLOATING")
    '("never-vertical" "MATECOMPONENT_DOCK_ITEM_BEH_NEVER_VERTICAL")
    '("never-horizontal" "MATECOMPONENT_DOCK_ITEM_BEH_NEVER_HORIZONTAL")
    '("locked" "MATECOMPONENT_DOCK_ITEM_BEH_LOCKED")
  )
)

(define-enum Error
  (in-module "MateComponent")
  (c-name "MateComponentUIError")
  (gtype-id "MATECOMPONENT_TYPE_UI_ERROR")
  (values
    '("ok" "MATECOMPONENT_UI_ERROR_OK")
    '("bad-param" "MATECOMPONENT_UI_ERROR_BAD_PARAM")
    '("invalid-path" "MATECOMPONENT_UI_ERROR_INVALID_PATH")
    '("invalid-xml" "MATECOMPONENT_UI_ERROR_INVALID_XML")
  )
)

(define-enum ToolbarStyle
  (in-module "MateComponent")
  (c-name "MateComponentUIToolbarStyle")
  (gtype-id "MATECOMPONENT_TYPE_UI_TOOLBAR_STYLE")
  (values
    '("priority-text" "MATECOMPONENT_UI_TOOLBAR_STYLE_PRIORITY_TEXT")
    '("icons-and-text" "MATECOMPONENT_UI_TOOLBAR_STYLE_ICONS_AND_TEXT")
    '("icons-only" "MATECOMPONENT_UI_TOOLBAR_STYLE_ICONS_ONLY")
  )
)

(define-enum ToolbarItemStyle
  (in-module "MateComponent")
  (c-name "MateComponentUIToolbarItemStyle")
  (gtype-id "MATECOMPONENT_TYPE_UI_TOOLBAR_ITEM_STYLE")
  (values
    '("icon-and-text-vertical" "MATECOMPONENT_UI_TOOLBAR_ITEM_STYLE_ICON_AND_TEXT_VERTICAL")
    '("icon-and-text-horizontal" "MATECOMPONENT_UI_TOOLBAR_ITEM_STYLE_ICON_AND_TEXT_HORIZONTAL")
    '("icon-only" "MATECOMPONENT_UI_TOOLBAR_ITEM_STYLE_ICON_ONLY")
    '("text-only" "MATECOMPONENT_UI_TOOLBAR_ITEM_STYLE_TEXT_ONLY")
  )
)

(define-enum UIError
  (in-module "MateComponent")
  (c-name "MateComponentUIError")
  (gtype-id "MATECOMPONENT_TYPE_UI_ERROR")
  (values
    '("ok" "MATECOMPONENT_UI_ERROR_OK")
    '("bad-param" "MATECOMPONENT_UI_ERROR_BAD_PARAM")
    '("invalid-path" "MATECOMPONENT_UI_ERROR_INVALID_PATH")
    '("invalid-xml" "MATECOMPONENT_UI_ERROR_INVALID_XML")
  )
)


