Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > 88f294c140643de8382797ea604c8a7b > files > 24

rep-gtk-0.90.0-1mdv2010.0.i586.rpm

;; -*- lisp -*-

;; updated for gtk+ 2.12:

;; GtkButton, GtkToggleButton, GtkCheckButton, GtkRadioButton, GtkFontButton
;; GtkLinkButton, GtkColorButton, GtkVolumeButton, GtkStatusIcon

;; updated for gtk+ 1.3:

;; GtkButton, GtkWidget, GtkContainer, GtkFixed, GtkWindow, GtkHandleBox,
;; GtkBox, GtkButtonBox, Gtk[HV]ButtonBox, GtkToolbar, GtkTable,
;; GtkToggleButton, GtkCheckButton, GtkRadioButton, GtkMisc, GtkArrow,
;; GtkLabel, GtkLayout, GtkTipsQuery, GtkVBox, GtkHBox, GtkItem, GtkCombo,
;; GtkStatusBar, GtkGammaCurve, Gtk[HV]Separator, GtkFrame, GtkAspectFrame,
;; GtkProgress, GtkProgressBar, GtkTooltips, GtkMenuShell, GtkMenuBar,
;; GtkMenu, GtkMenuItem, GtkCheckMenuItem, GtkRadioMenuItem, GtkOptionMenu,
;; GtkPixmap, GtkViewport, GtkScrolledWindow, GtkListItem, GtkList,
;; GtkNotebook, GtkEditable, GtkEntry, GtkSpinButton, GtkDrawingArea,
;; GtkCurve, GtkPreview, GtkFileSelection, GtkFontSelectionDialog,
;; GtkColorSelectionDialog, GtkColorSelection, GtkRange, GtkScale,
;; Gtk[HV]Scale, GtkScrollbar, Gtk[HV]Scrollbar, GtkRuler, Gtk[HV]Ruler,
;; GtkDialog, GtkInputDialog, GtkPaned, Gtk[HV]Paned, GtkPlug, GtkSocket,
;; GtkTearOffMenuItem, GtkCalendar, GtkIconFactory, GtkImage,
;; GtkImageMenuItem, GtkInvisible, GtkSeparatorMenuItem

;; Todo: TreeView/TreeModel et al; delete Tree and CList

;;; Gtk enums

(import "glib.defs")
(import "gdk.defs")
(import "gdk-pixbuf.defs")

(define-enum GtkAnchorType
  (center GTK_ANCHOR_CENTER)
  (north GTK_ANCHOR_NORTH)
  (south GTK_ANCHOR_SOUTH)
  (east GTK_ANCHOR_EAST)
  (west GTK_ANCHOR_WEST)
  (north-west GTK_ANCHOR_NORTH_WEST)
  (north-east GTK_ANCHOR_NORTH_EAST)
  (south-west GTK_ANCHOR_SOUTH_WEST)
  (south-east GTK_ANCHOR_SOUTH_EAST))

(define-enum GtkArrowType
  (up GTK_ARROW_UP)
  (down GTK_ARROW_DOWN)
  (left GTK_ARROW_LEFT)
  (right GTK_ARROW_RIGHT)
  (none GTK_ARROW_NONE))

(define-flags GtkAttachOptions
  (expand GTK_EXPAND)
  (shrink GTK_SHRINK)
  (fill GTK_FILL))

(define-enum GtkButtonBoxStyle
  (default-style GTK_BUTTONBOX_DEFAULT_STYLE)
  (spread GTK_BUTTONBOX_SPREAD)
  (edge GTK_BUTTONBOX_EDGE)
  (start GTK_BUTTONBOX_START)
  (end GTK_BUTTONBOX_END)
  (center GTK_BUTTONBOX_CENTER))

(define-enum GtkCurveType
  (linear GTK_CURVE_TYPE_LINEAR)
  (spline GTK_CURVE_TYPE_SPLINE)
  (free GTK_CURVE_TYPE_FREE))

(define-enum GtkDeleteType
  (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 GtkDirectionType
  (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 GtkExpanderStyle
  (collapsed GTK_EXPANDER_COLLAPSED)
  (semi-collapsed GTK_EXPANDER_SEMI_COLLAPSED)
  (semi-expanded GTK_EXPANDER_SEMI_EXPANDED)
  (expanded GTK_EXPANDER_EXPANDED))

(define-enum GtkIconSize
  (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 GtkTextDirection
  (none GTK_TEXT_DIR_NONE)
  (ltr GTK_TEXT_DIR_LTR)
  (rtl GTK_TEXT_DIR_RTL))

(define-enum GtkSensitivityType
  (auto GTK_SENSITIVITY_AUTO)
  (on GTK_SENSITIVITY_ON)
  (off GTK_SENSITIVITY_OFF))

(define-enum GtkJustification
  (left GTK_JUSTIFY_LEFT)
  (right GTK_JUSTIFY_RIGHT)
  (center GTK_JUSTIFY_CENTER)
  (fill GTK_JUSTIFY_FILL))

(define-enum GtkMenuDirectionType
  (parent GTK_MENU_DIR_PARENT)
  (child GTK_MENU_DIR_CHILD)
  (next GTK_MENU_DIR_NEXT)
  (prev GTK_MENU_DIR_PREV))

(define-enum GtkMetricType
  (pixels GTK_PIXELS)
  (inches GTK_INCHES)
  (centimeters GTK_CENTIMETERS))

(define-enum GtkMovementStep
  (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)
  (paragraph-ends GTK_MOVEMENT_PARAGRAPH_ENDS)
  (paragraphs GTK_MOVEMENT_PARAGRAPHS)
  (pages GTK_MOVEMENT_PAGES)
  (buffer-ends GTK_MOVEMENT_BUFFER_ENDS)
  (horizontal-pages GTK_MOVEMENT_HORIZONTAL_PAGES))

(define-enum GtkScrollStep
  (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 GtkOrientation
  (horizontal GTK_ORIENTATION_HORIZONTAL)
  (vertical GTK_ORIENTATION_VERTICAL))

(define-enum GtkCornerType
  (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 GtkPackType
  (start GTK_PACK_START)
  (end GTK_PACK_END))

(define-enum GtkPathPriorityType
  (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 GtkPathType
  (widget GTK_PATH_WIDGET)
  (widget-class GTK_PATH_WIDGET_CLASS)
  (class GTK_PATH_CLASS))

(define-enum GtkPolicyType
  (always GTK_POLICY_ALWAYS)
  (automatic GTK_POLICY_AUTOMATIC)
  (never GTK_POLICY_NEVER))

(define-enum GtkPositionType
  (left GTK_POS_LEFT)
  (right GTK_POS_RIGHT)
  (top GTK_POS_TOP)
  (bottom GTK_POS_BOTTOM))

(define-enum GtkReliefStyle
  (normal GTK_RELIEF_NORMAL)
  (half GTK_RELIEF_HALF)
  (none GTK_RELIEF_NONE))

(define-enum GtkResizeMode
  (parent GTK_RESIZE_PARENT)
  (queue GTK_RESIZE_QUEUE)
  (immediate GTK_RESIZE_IMMEDIATE))

(define-enum GtkScrollType
  (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 GtkSelectionMode
  (none GTK_SELECTION_NONE)
  (single GTK_SELECTION_SINGLE)
  (browse GTK_SELECTION_BROWSE)
  (multiple GTK_SELECTION_MULTIPLE))

(define-enum GtkShadowType
  (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 GtkStateType
  (normal GTK_STATE_NORMAL)
  (active GTK_STATE_ACTIVE)
  (prelight GTK_STATE_PRELIGHT)
  (selected GTK_STATE_SELECTED)
  (insensitive GTK_STATE_INSENSITIVE))

(define-enum GtkToolbarStyle
  (icons GTK_TOOLBAR_ICONS)
  (text GTK_TOOLBAR_TEXT)
  (both GTK_TOOLBAR_BOTH)
  (both-horiz GTK_TOOLBAR_BOTH_HORIZ))

(define-enum GtkUpdateType
  (continuous GTK_UPDATE_CONTINUOUS)
  (discontinuous GTK_UPDATE_DISCONTINUOUS)
  (delayed GTK_UPDATE_DELAYED))

(define-enum GtkVisibility
  (none GTK_VISIBILITY_NONE)
  (partial GTK_VISIBILITY_PARTIAL)
  (full GTK_VISIBILITY_FULL))

(define-enum GtkWindowPosition
  (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 GtkWindowType
  (toplevel GTK_WINDOW_TOPLEVEL)
  (popup GTK_WINDOW_POPUP))

(define-enum GtkWrapMode
  (none GTK_WRAP_NONE)
  (char GTK_WRAP_CHAR)
  (word GTK_WRAP_WORD)
  (word-char GTK_WRAP_WORD_CHAR))

(define-enum GtkSortType
  (ascending GTK_SORT_ASCENDING)
  (descending GTK_SORT_DESCENDING))

(define-enum GtkIMPreeditStyle
  (nothing GTK_IM_PREEDIT_NOTHING)
  (callback GTK_IM_PREEDIT_CALLBACK)
  (none GTK_IM_PREEDIT_NONE))

(define-enum GtkIMStatusStyle
  (nothing GTK_IM_STATUS_NOTHING)
  (callback GTK_IM_STATUS_CALLBACK)
  (none GTK_IM_STATUS_NONE))

(define-enum GtkPackDirection
  (rtl GTK_PACK_DIRECTION_RTL)
  (ltr GTK_PACK_DIRECTION_LTR)
  (ttb GTK_PACK_DIRECTION_TTB)
  (btt GTK_PACK_DIRECTION_BTT))

(define-enum GtkPrintPages
  (all GTK_PRINT_PAGES_ALL)
  (current GTK_PRINT_PAGES_CURRENT)
  (ranges GTK_PRINT_PAGES_RANGES))

(define-enum GtkPageSet
  (all GTK_PAGE_SET_ALL)
  (even GTK_PAGE_SET_EVEN)
  (odd GTK_PAGE_SET_ODD))

(define-enum GtkPageOrientation
  (portrait GTK_PAGE_ORIENTATION_PORTRAIT)
  (landscape GTK_PAGE_ORIENTATION_LANDSCAPE)
  (reverse-portrait GTK_PAGE_ORIENTATION_REVERSE_PORTRAIT)
  (reverse-landscape GTK_PAGE_ORIENTATION_REVERSE_LANDSCAPE))

(define-enum GtkPrintQuality
  (low GTK_PRINT_QUALITY_LOW)
  (normal GTK_PRINT_QUALITY_NORMAL)
  (high GTK_PRINT_QUALITY_HIGH)
  (draft GTK_PRINT_QUALITY_DRAFT))

(define-enum GtkUnit
  (pixel GTK_UNIT_PIXEL)
  (points GTK_UNIT_POINTS)
  (inch GTK_UNIT_INCH)
  (mm GTK_UNIT_MM))

(define-enum GtkTreeViewGridLines
  (none GTK_TREE_VIEW_GRID_LINES_NONE)
  (horizontal GTK_TREE_VIEW_GRID_LINES_HORIZONTAL)
  (vertical GTK_TREE_VIEW_GRID_LINES_VERTICAL)
  (both GTK_TREE_VIEW_GRID_LINES_BOTH))

(define-enum GtkDragResult
  (success GTK_DRAG_RESULT_SUCCESS)
  (no-target GTK_DRAG_RESULT_NO_TARGET)
  (user-cancelled GTK_DRAG_RESULT_USER_CANCELLED)
  (timeout-expired GTK_DRAG_RESULT_TIMEOUT_EXPIRED)
  (grab-broken GTK_DRAG_RESULT_GRAB_BROKEN)
  (error GTK_DRAG_RESULT_ERROR))

;(define-enum GtkMenuFactoryType
;  (menu GTK_MENU_FACTORY_MENU)
;  (menu-bar GTK_MENU_FACTORY_MENU_BAR)
;  (option-menu GTK_MENU_FACTORY_OPTION_MENU))

;(define-enum GtkTroughType
;  (none GTK_TROUGH_NONE)
;  (start GTK_TROUGH_START)
;  (end GTK_TROUGH_END))

(define-flags GtkWidgetFlags
   (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))

(define-enum GtkToolbarChildType
  (space GTK_TOOLBAR_CHILD_SPACE)
  (button GTK_TOOLBAR_CHILD_BUTTON)
  (toggle-button GTK_TOOLBAR_CHILD_TOGGLEBUTTON)
  (radio-button GTK_TOOLBAR_CHILD_RADIOBUTTON)
  (widget GTK_TOOLBAR_CHILD_WIDGET))

(define-enum GtkTreeViewMode
  (line GTK_TREE_VIEW_LINE)
  (item GTK_TREE_VIEW_ITEM))

(define-enum GtkFundamentalType
  (invalid G_TYPE_INVALID)
  (none G_TYPE_NONE)
  (char G_TYPE_CHAR)
  (uchar G_TYPE_UCHAR)
  (bool G_TYPE_BOOLEAN)
  (int G_TYPE_INT)
  (uint G_TYPE_UINT)
  (long G_TYPE_LONG)
  (ulong G_TYPE_ULONG)
  (float G_TYPE_FLOAT)
  (double G_TYPE_DOUBLE)
  (string G_TYPE_STRING)
  (enum G_TYPE_ENUM)
  (flags G_TYPE_FLAGS)
  (boxed G_TYPE_BOXED)
  (pointer G_TYPE_POINTER)
)

(define-enum GtkSpinButtonUpdatePolicy
  (always GTK_UPDATE_ALWAYS)
  (if-valid GTK_UPDATE_IF_VALID))

(define-enum GtkSpinType
  (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 GtkCellType
  (empty GTK_CELL_EMPTY)
  (text GTK_CELL_TEXT)
  (pixmap GTK_CELL_PIXMAP)
  (pixtext GTK_CELL_PIXTEXT)
  (widget GTK_CELL_WIDGET))

(define-enum GtkProgressBarOrientation
  (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-flags GtkArgFlags
  (readable GTK_ARG_READABLE)
  (writeable GTK_ARG_WRITABLE)
  (construct GTK_ARG_CONSTRUCT)
  (construct-only GTK_ARG_CONSTRUCT_ONLY)
  (child-arg GTK_ARG_CHILD_ARG)
  (readwrite GTK_ARG_READWRITE))

(define-flags GtkAccelFlags
  (visible GTK_ACCEL_VISIBLE)
;  (signal-visible GTK_ACCEL_SIGNAL_VISIBLE)
  (locked GTK_ACCEL_LOCKED))

(define-flags GtkCalendarDisplayOptions
  (show-heading GTK_CALENDAR_SHOW_HEADING)
  (show-day-names GTK_CALENDAR_SHOW_DAY_NAMES)
  (no-month-changed GTK_CALENDAR_NO_MONTH_CHANGE)
  (show-week-numbers GTK_CALENDAR_SHOW_WEEK_NUMBERS)
  (week-start-monday GTK_CALENDAR_WEEK_START_MONDAY))

;;; Gtk boxed types

(define-object GtkWidget (GtkObject)
  (fields
   (GtkStyle style)
   (GdkWindow window)
   (GtkWidget parent)
   (SCM allocation (getter sgtk_gtk_widget_get_allocation))))

;; GtkAccelGroup

(define-object GtkAccelGroup (GObject))

(define-func gtk_accel_group_new
  GtkAccelGroup
  ())

(define-func gtk_accel_group_lock
  none
  ((GtkAccelGroup group)))

(define-func gtk_accel_group_unlock
  none
  ((GtkAccelGroup group)))

(define-func gtk_accel_group_connect
  none
  ((GtkAccelGroup group)
   (uint accel_key)
   (GdkModifierType modifier)
   (GtkAccelFlags flags)
   (GClosure closure)))

(define-func gtk_accel_group_connect_by_path
  none
  ((GtkAccelGroup group)
   (string path)
   (GClosure closure)))

(define-func gtk_accel_group_disconnect
  bool
  ((GtkAccelGroup group)
   (GClosure closure)))

(define-func gtk_accel_group_disconnect_key
  bool
  ((GtkAccelGroup group)
   (uint key)
   (GdkModifierType modifier)))

(define-func gtk_accel_group_activate
  bool
  ((GtkAccelGroup group)
   (GQuark quark)
   (GObject acceleratable)
   (uint key)
   (GdkModifierType modifier)))

(define-func gtk_accel_groups_activate
  bool
  ((GObject object)
   (uint key)
   (GdkModifierType modifier)))

(define-func gtk_accel_groups_from_object
  (slist string)
  ((GObject object)))

;; XXX need support for GtkAccelGroupFindFunc
;(define-func gtk_accel_group_find
;  GtkAccelKey
;  ((GtkAccelGroup group)
;   (GtkAccelGroupFindFunc findfunc)
;   (GPointer data)))

(define-func gtk_accel_group_from_accel_closure
  GtkAccelGroup
  ((GClosure closure)))

(define-func gtk_accelerator_parse
  none
  ((string accel)
   ((ret uint) key)
   ((ret GdkModifierType) modifier)))

(define-func gtk_accelerator_name
  string
  ((uint key)
   (GdkModifierType modifier)))

(define-func gtk_accelerator_get_label
  string
  ((uint key)
   (GdkModifierType modifier)))

(define-func gtk_accelerator_get_default_mod_mask
  uint
  ())

(define-func gtk_accelerator_set_default_mod_mask
  none
  ((GdkModifierType modifier)))

;; XXX need support for GtkAccelGroupEntry
(define-func gtk_accel_group_query
  none
  ((GtkAccelGroup group)
   (uint key)
   (GdkModifierType modifier)
   ((ret uint) entries)))

(define-object GtkStyle (GObject))

(define-func gtk_style_get_white_interp
  GdkColor
  ((GtkStyle style)))

(define-func gtk_style_fg_gc
  GdkGC
  ((GtkStyle style)
   (GtkStateType state)))

(define-func gtk_style_bg_gc
  GdkGC
  ((GtkStyle style)
   (GtkStateType state)))

;;; Functions

;;

;; gtkmain.h

(define-func gtk_set_locale
  static_string
  ())

(define-func gtk_events_pending
  int
  ())

(define-func gtk_main
  none
  ()
  (undeferred t))

(define-func gtk_main_level
  uint
  ())

(define-func gtk_main_quit
  none
  ())

(define-func gtk_main_iteration
  bool
  ())

(define-func gtk_main_iteration_do
  bool
  ((bool blocking)))

(define-func gtk_true
  bool
  ())

(define-func gtk_false
  bool
  ())

(define-func gtk_grab_add
  none
  ((GtkWidget widget)))

(define-func gtk_grab_get_current
  GtkWidget
  ())

(define-func gtk_grab_remove
  none
  ((GtkWidget widget)))

(define-func gtk_quit_add_full
  uint
  ((uint main_level)
   (full-callback function))
  (scm-name "gtk-quit-add")
  (protection t))

(define-func gtk_quit_remove
  none
  ((uint handler_id)))

(define-func gtk_timeout_add_full
  int
  ((int interval)
   (full-callback function))
  (scm-name "gtk-timeout-add")
  (protection t))

(define-func gtk_timeout_remove
  none
  ((int tag)))

(define-func gtk_idle_add_full
  int
  ((int priority)
   (full-callback function))
  (protection t)
  (scm-name "gtk-idle-add"))

(define-func gtk_idle_remove
  none
  ((int tag)))

(define-func gtk_input_add_full
  int
  ((file-descriptor source)
   (GdkInputCondition condition)
   (full-callback callback))
  (protection t)
  (scm-name "gtk-input-add"))

(define-func gtk_input_remove
  none
  ((int tag)))

(define-func gtk_get_current_event
  GdkEvent
  ())

(define-func gtk_get_current_event_time
  ulong
  ())

;; gtkrc.h

(define-object GtkRcStyle (GObject))

(define-func gtk_rc_add_default_file
  none
  ((string filename)))

;; XXX
;(define-func gtk_rc_set_default_files
;  none
;  ((tvec string in) filenames))
;
;(define-func gtk_rc_get_default_files
;  (tvec string out)
;  ())

(define-func gtk_rc_get_style
  GtkStyle
  ((GtkWidget widget)))

(define-func gtk_rc_parse
  none
  ((string file)))

;; GtkObject

(define-object GtkObject (GObject))

(define-func gtk_object_destroy
  none
  ((GtkObject object)))

(define-func GTK_OBJECT_TYPE
  type
  ((GtkObject object)))

;(define-func sgtk_gtk_object_query_args
;  SCM
;  ((type type))
;  (scm-name "gtk-object-query-args"))

;; Signals

;; GtkWidget

(define-object GtkAdjustment (GtkWidget))

(define-func GTK_WIDGET_STATE
  GtkStateType
  ((GtkWidget widget)))

(define-func GTK_WIDGET_FLAGS
  GtkWidgetFlags
  ((GtkWidget widget)))

(define-func GTK_WIDGET_SET_FLAGS
  none
  ((GtkWidget widget)
   (GtkWidgetFlags flags)))

(define-func GTK_WIDGET_UNSET_FLAGS
  none
  ((GtkWidget widget)
   (GtkWidgetFlags flags)))

;; XXX - gtk_widget_new or gtk_widget_newv would be really useful
;; (maybe also gtk_widget_set(v), gtk_widget_get(v))

(define-func gtk_widget_destroy
  none
  ((GtkWidget widget)))

(define-func gtk_widget_unparent
  none
  ((GtkWidget widget)))

(define-func gtk_widget_show
  none
  ((GtkWidget widget)))

(define-func gtk_widget_show_now
  none
  ((GtkWidget widget)))

(define-func gtk_widget_hide
  none
  ((GtkWidget widget)))

(define-func gtk_widget_show_all
  none
  ((GtkWidget widget)))

(define-func gtk_widget_hide_all
  none
  ((GtkWidget widget)))

(define-func gtk_widget_map
  none
  ((GtkWidget widget)))

(define-func gtk_widget_unmap
  none
  ((GtkWidget widget)))

(define-func gtk_widget_realize
  none
  ((GtkWidget widget)))

(define-func gtk_widget_unrealize
  none
  ((GtkWidget widget)))

(define-func gtk_widget_draw_interp
  none
  ((GtkWidget widget)))

(define-func gtk_widget_queue_draw
  none
  ((GtkWidget widget)))

(define-func gtk_widget_queue_draw_area
  none
  ((GtkWidget widget)
   (int x)
   (int y)
   (int width)
   (int height)))

(define-func gtk_widget_queue_resize
  none
  ((GtkWidget widget)))

(define-func gtk_widget_add_accelerator
  none
  ((GtkWidget          widget)
   (string             accel_signal)
   (GtkAccelGroup      accel_group)
   (uint               accel_key)
   (GdkModifierType    accel_mods)
   (GtkAccelFlags      accel_flags)))

(define-func gtk_widget_remove_accelerator
  none
  ((GtkWidget widget)
   (GtkAccelGroup accel_group)
   (uint accel_key)
   (GdkModifierType accel_mods)))

(define-func gtk_widget_event
  bool
  ((GtkWidget widget)
   (GdkEvent event)))

(define-func gtk_widget_activate
  none
  ((GtkWidget widget)))

(define-func gtk_widget_set_scroll_adjustments
  bool
  ((GtkWidget widget)
   (GtkAdjustment hadj)
   (GtkAdjustment vadj)))

(define-func gtk_widget_reparent
  none
  ((GtkWidget widget)
   (GtkWidget new_parent)))

(define-func gtk_widget_is_focus
  bool
  ((GtkWidget widget)))

(define-func gtk_widget_grab_focus
  none
  ((GtkWidget widget)))

(define-func gtk_widget_grab_default
  none
  ((GtkWidget widget)))

(define-func gtk_widget_set_name
  none
  ((GtkWidget widget)
   (string name)))

(define-func gtk_widget_get_name
  static_string
  ((GtkWidget widget)))

(define-func gtk_widget_set_state
  none
  ((GtkWidget widget)
   (GtkStateType state)))

(define-func gtk_widget_set_sensitive
  none
  ((GtkWidget widget)
   (bool sensitive)))

(define-func gtk_widget_set_app_paintable
  none
  ((GtkWidget widget)
   (bool app_paintable)))

(define-func gtk_widget_set_double_buffered
  none
  ((GtkWidget widget)
   (bool double_buffered)))

(define-func gtk_widget_set_redraw_on_allocate
  none
  ((GtkWidget widget)
   (bool redraw_on_allocate)))

(define-func gtk_widget_set_parent
  none
  ((GtkWidget widget)
   (GtkWidget parent)))

(define-func gtk_widget_set_parent_window
  none
  ((GtkWidget widget)
   (GdkWindow parent_window)))

(define-func gtk_widget_set_child_visible
  none
  ((GtkWidget widget)
   (bool child_visible)))

(define-func gtk_widget_get_child_visible
  bool
  ((GtkWidget widget)))

(define-func gtk_widget_get_parent
  GtkWidget
  ((GtkWidget widget)))

(define-func gtk_widget_get_parent_window
  GdkWindow
  ((GtkWidget widget)))

(define-func gtk_widget_child_focus
  none
  ((GtkWidget widget)
   (GtkDirectionType direction)))

(define-func gtk_widget_set_size_request
  none
  ((GtkWidget widget)
   (int width)
   (int height)))

(define-func gtk_widget_get_size_request
  none
  ((GtkWidget widget)
   ((ret int) width)
   ((ret int) height)))

(define-func gtk_widget_set_events
  none
  ((GtkWidget widget)
   (GdkEventMask events)))

(define-func gtk_widget_add_events
  none
  ((GtkWidget widget)
   (GdkEventMask events)))

(define-func gtk_widget_set_extension_events
  none
  ((GtkWidget widget)
   (GdkEventMask events)))

;(define-func gtk_widget_get_ancestor
;  GtkWidget
;  ((GtkWidget widget)
;   (GtkType type)))

(define-func gtk_widget_get_toplevel
  GtkWidget
  ((GtkWidget widget)))

(define-func gtk_widget_get_colormap
  GdkColormap
  ((GtkWidget widget)))

(define-func gtk_widget_get_visual
  GdkVisual
  ((GtkWidget widget)))

;; XXX - need multiple return values
;; (define-func gtk_widget_get_pointer)

(define-func gtk_widget_is_ancestor
  bool
  ((GtkWidget widget)
   (GtkWidget ancestor)))

(define-func gtk_widget_hide_on_delete
  bool
  ((GtkWidget widget)))

(define-func gtk_widget_set_style
  none
  ((GtkWidget widget)
   (GtkStyle style)))

(define-func gtk_widget_ensure_style
  none
  ((GtkWidget widget)))

(define-func gtk_widget_get_style
  GtkStyle
  ((GtkWidget widget)))

(define-func gtk_widget_modify_style
  none
  ((GtkWidget widget)
   (GtkRcStyle style)))

(define-func gtk_widget_get_modifier_style
  GtkRcStyle
  ((GtkWidget widget)))

(define-func gtk_widget_modify_fg
  none
  ((GtkWidget widget)
   (GtkStateType state)
   (GdkColor color)))

(define-func gtk_widget_modify_bg
  none
  ((GtkWidget widget)
   (GtkStateType state)
   (GdkColor color)))

(define-func gtk_widget_modify_text
  none
  ((GtkWidget widget)
   (GtkStateType state)
   (GdkColor color)))

(define-func gtk_widget_modify_base
  none
  ((GtkWidget widget)
   (GtkStateType state)
   (GdkColor color)))

;; XXX gdk_widget_modify_font

(define-func gtk_widget_render_icon
  GdkPixbuf
  ((GtkWidget widget)
   (string stock_id)
   (GtkIconSize size)
   (string detail)))

(define-func gtk_widget_get_events
  GdkEventMask
  ((GtkWidget widget)))

(define-func gtk_widget_get_extension_events
  GdkEventMask
  ((GtkWidget widget)))

(define-func gtk_widget_push_colormap
  none
  ((GdkColormap cmap)))

(define-func gtk_widget_push_composite_child
  none
  ())

(define-func gtk_widget_pop_colormap
  none
  ())

(define-func gtk_widget_pop_composite_child
  none
  ())

(define-func gtk_widget_set_default_colormap
  none
  ((GdkColormap cmap)))

(define-func gtk_widget_get_default_colormap
  GdkColormap
  ())

(define-func gtk_widget_get_default_visual
  GdkVisual
  ())

(define-func gtk_widget_get_default_style
  GtkStyle
  ())

;; XXX - need GdkBitmap for the shape mask
;; (define-func gtk_widget_shape_combine_mask)

;; XXX - dnd stuff needs closer examination.

;;; Container

(define-object GtkContainer (GtkWidget))

(define-func gtk_container_set_border_width
  none
  ((GtkContainer container)
   (int border_width)))

(define-func gtk_container_get_border_width
  int
  ((GtkContainer container)))

(define-func gtk_container_add
  none
  ((GtkContainer container)
   (GtkWidget widget)))

(define-func gtk_container_remove
  none
  ((GtkContainer container)
   (GtkWidget widget)))

(define-func gtk_container_set_resize_mode
  none
  ((GtkContainer container)
   (GtkResizeMode resize_mode)))

(define-func gtk_container_get_resize_mode
  GtkResizeMode
  ((GtkContainer container)))

(define-func gtk_container_check_resize
  none
  ((GtkContainer container)))

;; XXX this is deprecated?
(define-func gtk_container_foreach_full
  none
  ((GtkContainer container)
   (full-callback function (protect-during)))
  (scm-name "gtk-container-foreach"))

(define-func gtk_container_get_children
  ((list GtkWidget))
  ((GtkContainer container)))

(define-func gtk_container_set_focus_chain
  none
  ((GtkContainer container)
   ((list GtkWidget) focusable_widgets)))

(define-func gtk_container_unset_focus_chain
  none
  ((GtkContainer container)))

;;; Fixed

(define-object GtkFixed (GtkContainer))

(define-func gtk_fixed_new
  GtkWidget
  ())

(define-func gtk_fixed_put
  none
  ((GtkFixed fixed)
   (GtkWidget widget)
   (int x)
   (int y)))

(define-func gtk_fixed_move
  none
  ((GtkFixed fixed)
   (GtkWidget widget)
   (int x)
   (int y)))

(define-func gtk_fixed_set_has_window
  none
  ((GtkFixed fixed)
   (bool has_window)))

(define-func gtk_fixed_get_has_window
  bool
  ((GtkFixed fixed)))

;; TreeItem

(define-object GtkTreeItem (GtkItem))

(define-func gtk_tree_item_new
  GtkWidget
  ())

(define-func gtk_tree_item_new_with_label
  GtkWidget
  ((string label)))

(define-func gtk_tree_item_set_subtree
  none
  ((GtkTreeItem tree_item)
   (GtkWidget subtree)))

(define-func gtk_tree_item_remove_subtree
  none
  ((GtkTreeItem tree_item)))

(define-func gtk_tree_item_select
  none
  ((GtkTreeItem tree_item)))

(define-func gtk_tree_item_deselect
  none
  ((GtkTreeItem tree_item)))

(define-func gtk_tree_item_expand
  none
  ((GtkTreeItem tree_item)))

(define-func gtk_tree_item_collapse
  none
  ((GtkTreeItem tree_item)))

;; Tree

(define-object GtkTree (GtkContainer))

(define-func gtk_tree_new
  GtkWidget
  ())

(define-func gtk_tree_append
  none
  ((GtkTree tree)
   (GtkWidget child)))

(define-func gtk_tree_prepend
  none
  ((GtkTree tree)
   (GtkWidget child)))

(define-func gtk_tree_insert
  none
  ((GtkTree tree)
   (GtkWidget child)
   (int position)))

(define-func gtk_tree_remove_item
  none
  ((GtkTree tree)
   (GtkWidget child)))

;; XXX - need GList support
;; (define-func gtk_tree_remove_items)

(define-func gtk_tree_clear_items
  none
  ((GtkTree tree)
   (int start)
   (int end)))

(define-func gtk_tree_select_item
  none
  ((GtkTree tree)
   (int item)))

(define-func gtk_tree_unselect_item
  none
  ((GtkTree tree)
   (int item)))

(define-func gtk_tree_select_child
  none
  ((GtkTree tree)
   (GtkWidget child)))

(define-func gtk_tree_unselect_child
  none
  ((GtkTree tree)
   (GtkWidget child)))

(define-func gtk_tree_child_position
  int
  ((GtkTree tree)
   (GtkWidget child)))

(define-func gtk_tree_set_selection_mode
  none
  ((GtkTree tree)
   (GtkSelectionMode mode)))

(define-func gtk_tree_set_view_mode
  none
  ((GtkTree tree)
   (GtkTreeViewMode mode)))

(define-func gtk_tree_set_view_lines
  none
  ((GtkTree tree)
   (bool flag)))

;;; GtkCList

(define-object GtkCList (GtkContainer)
  (fields
   (int rows)
   (int columns)))

(define-func gtk_clist_new
  GtkWidget
  ((int columns)))

(define-func gtk_clist_new_with_titles
  GtkWidget
  (((cvec string) titles)))

(define-func gtk_clist_set_hadjustment
  none
  ((GtkCList clist)
   (GtkAdjustment adjustment)))

(define-func gtk_clist_set_vadjustment
  none
  ((GtkCList clist)
   (GtkAdjustment adjustment)))

(define-func gtk_clist_get_hadjustment
  GtkAdjustment
  ((GtkCList clist)))

(define-func gtk_clist_get_vadjustment
  GtkAdjustment
  ((GtkCList clist)))

(define-func gtk_clist_set_shadow_type
  none
  ((GtkCList clist)
   (GtkShadowType type)))

(define-func gtk_clist_set_selection_mode
 none
 ((GtkCList clist)
  (GtkSelectionMode mode)))

(define-func gtk_clist_set_reorderable
 none
 ((GtkCList clist)
  (bool reorderable)))

(define-func gtk_clist_set_use_drag_icons
 none
 ((GtkCList list)
  (bool use_icons)))

(define-func gtk_clist_set_button_actions
 none
 ((GtkCList list)
  (uint button)
  (uint button_actions)))

(define-func gtk_clist_freeze
 none
 ((GtkCList clist)))

(define-func gtk_clist_thaw
 none
 ((GtkCList clist)))

(define-func gtk_clist_column_titles_show
 none
 ((GtkCList clist)))

(define-func gtk_clist_column_titles_hide
 none
 ((GtkCList clist)))

(define-func gtk_clist_column_title_active
 none
 ((GtkCList clist)
  (int column)))

(define-func gtk_clist_column_title_passive
 none
 ((GtkCList clist)
  (int column)))

(define-func gtk_clist_column_titles_active
 none
 ((GtkCList clist)))

(define-func gtk_clist_column_titles_passive
 none
 ((GtkCList clist)))

(define-func gtk_clist_set_column_title
  none
  ((GtkCList clist)
   (int column)
   (string title)))

(define-func gtk_clist_set_column_widget
  none
  ((GtkCList clist)
   (int column)
   (GtkWidget widget)))

(define-func gtk_clist_get_column_widget
  GtkWidget
  ((GtkCList clist)
   (int column)))

(define-func gtk_clist_set_column_justification
  none
  ((GtkCList clist)
   (int column)
   (GtkJustification justification)))

(define-func gtk_clist_set_column_visibility
  none
  ((GtkCList clist)
   (int column)
   (bool visible)))

(define-func gtk_clist_set_column_resizeable
  none
  ((GtkCList clist)
   (int column)
   (bool resizeable)))

(define-func gtk_clist_set_column_auto_resize
  none
  ((GtkCList clist)
   (int column)
   (bool auto_resize)))

(define-func gtk_clist_columns_autosize
  int
  ((GtkCList clist)))

(define-func gtk_clist_optimal_column_width
  int
  ((GtkCList clist)
   (int column)))

(define-func gtk_clist_set_column_width
  none
  ((GtkCList clist)
   (int column)
   (int width)))

(define-func gtk_clist_set_column_min_width
  none
  ((GtkCList clist)
   (int column)
   (int min_width)))

(define-func gtk_clist_set_column_max_width
  none
  ((GtkCList clist)
   (int column)
   (int max_width)))

(define-func gtk_clist_set_row_height
  none
  ((GtkCList clist)
   (int height)))

(define-func gtk_clist_moveto
  none
  ((GtkCList clist)
   (int row)
   (int column)
   (float row_align (= "0.5"))
   (float column_align (= "0.5"))))


(define-func gtk_clist_row_is_visible
  GtkVisibility
  ((GtkCList clist)
   (int row)))

(define-func gtk_clist_get_cell_type
  GtkCellType
  ((GtkCList clist)
   (int row)
   (int column)))

(define-func gtk_clist_set_text
  none
  ((GtkCList clist)
   (int row)
   (int column)
   (string text)))

(define-func gtk_clist_get_text
  int
  ((GtkCList clist)
   (int row)
   (int column)
   ((ret string) text)))		;; XXX should be static_string?

;; XXX - the following all use GdkPixmaps and GdkBitmaps rather than
;; a GtkPixmap, this sucks.
;; (define-func gtk_clist_set_pixmap)
;; (define-func gtk_clist_get_pixmap)
;; (define-func gtk_clist_set_pixtext)
;; (define-func gtk_clist_get_pixtext)

(define-func gtk_clist_set_foreground
  none
  ((GtkCList clist)
   (int row)
   (GdkColor color)))

(define-func gtk_clist_set_background
  none
  ((GtkCList clist)
   (int row)
   (GdkColor color)))

(define-func gtk_clist_set_cell_style
  none
  ((GtkCList clist)
   (int row)
   (int column)
   (GtkStyle style)))

(define-func gtk_clist_get_cell_style
  GtkStyle
  ((GtkCList clist)
   (int row)
   (int column)))

(define-func gtk_clist_set_row_style
  none
  ((GtkCList clist)
   (int row)
   (GtkStyle style)))

(define-func gtk_clist_get_row_style
  GtkStyle
  ((GtkCList clist)
   (int row)))

(define-func gtk_clist_set_shift
  none
  ((GtkCList clist)
   (int row)
   (int column)
   (int vertical)
   (int horizontal)))

(define-func gtk_clist_set_selectable
  none
  ((GtkCList clist)
   (int row)
   (bool selectable)))

(define-func gtk_clist_get_selectable
  bool
  ((GtkCList clist)
   (int row)))

(define-func gtk_clist_prepend
  int
  ((GtkCList clist)
   ;; uhhh, this is hacky
   ((fvec string "((GtkCList*)sgtk_get_gtkobj (p_clist))->columns") text)))

(define-func gtk_clist_append
  int
  ((GtkCList clist)
   ;; uhhh, this is hacky
   ((fvec string "((GtkCList*)sgtk_get_gtkobj (p_clist))->columns") text)))

(define-func gtk_clist_insert
  int
  ((GtkCList clist)
   (int row)
   ;; uhhh, this is hacky
   ((fvec string "((GtkCList*)sgtk_get_gtkobj (p_clist))->columns") text)))

(define-func gtk_clist_remove
  none
  ((GtkCList clist)
   (int row)))

(define-func gtk_clist_select_row
  none
  ((GtkCList clist)
   (int row)
   (int column (= "0"))))

(define-func gtk_clist_unselect_row
  none
  ((GtkCList clist)
   (int row)
   (int column (= "0"))))

(define-func gtk_clist_undo_selection
  none
  ((GtkCList clist)))

(define-func gtk_clist_clear
  none
  ((GtkCList clist)))

(define-func gtk_clist_get_selection_info
  int
  ((GtkCList clist)
   (int x)
   (int y)
   ((ret int) row)
   ((ret int) column)))

(define-func gtk_clist_unselect_all
  none
  ((GtkCList clist)))

(define-func gtk_clist_swap_rows
  none
  ((GtkCList clist)
   (int row1)
   (int row2)))

;; (define-func gtk_clist_set_compare_func_full
;;   none
;;   ((GtkCList clist)
;;    (full-callback cmp_func)))

(define-func gtk_clist_set_sort_column
  none
  ((GtkCList clist)
   (int column)))

(define-func gtk_clist_set_sort_type
  none
  ((GtkCList clist)
   (GtkSortType sort_type)))

(define-func gtk_clist_sort
  none
  ((GtkCList clist)))

(define-func gtk_clist_set_auto_sort
  none
  ((GtkCList clist)
   (bool auto_sort)))

;;; Bin

(define-object GtkBin (GtkContainer))

;;; Event Box

(define-object GtkEventBox (GtkBin))

(define-func gtk_event_box_new
  GtkWidget
  ())

;;; Window

(define-object GtkWindow (GtkBin))

(define-func gtk_window_new
  GtkWidget
  ((GtkWindowType type)))

(define-func gtk_window_set_title
  none
  ((GtkWindow window)
   (string title)))

(define-func gtk_window_get_title
  static_string
  ((GtkWindow window)))

(define-func gtk_window_set_wmclass
  none
  ((GtkWindow window)
   (string wmclass_class)
   (string wmclass_name)))

(define-func gtk_window_set_role
  none
  ((GtkWindow window)
   (string role)))

(define-func gtk_window_get_role
  static_string
  ((GtkWindow window)))

(define-func gtk_window_add_accel_group
  none
  ((GtkWindow window)
   (GtkAccelGroup accel_gruop)))

(define-func gtk_window_remove_accel_group
  none
  ((GtkWindow window)
   (GtkAccelGroup accel_group)))

(define-func gtk_window_set_position
  none
  ((GtkWindow window)
   (GtkWindowPosition position)))

(define-func gtk_window_set_default
  none
  ((GtkWindow window)
   (GtkWidget default)))

(define-func gtk_window_activate_focus
  int
  ((GtkWindow window)))

(define-func gtk_window_activate_default
  int
  ((GtkWindow window)))

(define-func gtk_window_set_transient_for
  none
  ((GtkWindow window)
   (GtkWindow parent (null-ok))))

(define-func gtk_window_get_transient_for
  GtkWindow
  ((GtkWindow window)))

;; XXX GdkWindowTypeHint?
;(define-func gtk_window_set_type_hint
;  none
;  ((GtkWindow window)
;   (GdkWindowTypeHint hint)))
;
;(define-func gtk_window_get_type_hint
;  GdkWindowTypeHint
;  ((GtkWindow window)))

(define-func gtk_window_set_destroy_with_parent
  none
  ((GtkWindow window)
   (bool setting)))

(define-func gtk_window_get_destroy_with_parent
  bool
  ((GtkWindow window)))

(define-func gtk_window_set_resizable
  none
  ((GtkWindow window)
   (bool resizable)))

(define-func gtk_window_get_resizable
  bool
  ((GtkWindow window)))

;; XXX GdkGravity?
;(define-func gtk_window_set_gravity
;  none
;  ((GtkWindow window)
;   (GdkGravity gravity)))
;
;(define-func gtk_window_get_gravity
;  GdkGravity
;  ((GtkWindow window)))

;; XXX gtk_window_set_geometry_hints

(define-func gtk_window_set_has_frame
  none
  ((GtkWindow window)
   (bool has_frame)))

(define-func gtk_window_get_has_frame
  bool
  ((GtkWindow window)))

(define-func gtk_window_set_frame_dimensions
  none
  ((GtkWindow window)
   (int left)
   (int top)
   (int right)
   (int bottom)))

;; XXX gtk_window_get_frame_dimensions

(define-func gtk_window_set_decorated
  none
  ((GtkWindow window)
   (bool decorated)))

(define-func gtk_window_get_decorated
  bool
  ((GtkWindow window)))

;; XXX icon-list stuff

(define-func gtk_window_set_modal
  none
  ((GtkWindow window)
   (bool modal)))

(define-func gtk_window_get_modal
  bool
  ((GtkWindow window)))


(define-func gtk_window_list_toplevels
  ((list GtkWindow))
  ())

(define-func gtk_window_add_mnemonic
  none
  ((GtkWindow window)
   (uint keyval)
   (GtkWidget target)))

(define-func gtk_window_remove_mnemonic
  none
  ((GtkWindow window)
   (uint keyval)
   (GtkWidget target)))

(define-func gtk_window_mnemonic_activate
  bool
  ((GtkWindow window)
   (uint keyval)
   (GdkModifierType modifier)))

(define-func gtk_window_set_mnemonic_modifier
  none
  ((GtkWindow window)
   (GdkModifierType modifier)))

(define-func gtk_window_get_mnemonic_modifier
  GdkModifierType
  ((GtkWindow window)))

(define-func gtk_window_present
  none
  ((GtkWindow window)))

(define-func gtk_window_iconify
  none
  ((GtkWindow window)))

(define-func gtk_window_deiconify
  none
  ((GtkWindow window)))

(define-func gtk_window_stick
  none
  ((GtkWindow window)))

(define-func gtk_window_unstick
  none
  ((GtkWindow window)))

(define-func gtk_window_maximize
  none
  ((GtkWindow window)))

(define-func gtk_window_unmaximize
  none
  ((GtkWindow window)))

;; XXX begin_{move,resize}_drag

(define-func gtk_window_set_default_size
  none
  ((GtkWindow window)
   (int width)
   (int height)))

;; XXX get_default_size

(define-func gtk_window_resize
  none
  ((GtkWindow window)
   (int width)
   (int height)))

;; XXX get_size

(define-func gtk_window_move
  none
  ((GtkWindow window)
   (int x)
   (int y)))

;; XXX get_position

(define-func gtk_window_parse_geometry
  bool
  ((GtkWindow window)
   (string geometry)))

;;; HandleBox

(define-object GtkHandleBox (GtkBin))

(define-func gtk_handle_box_new
  GtkWidget
  ())

(define-func gtk_handle_box_set_shadow_type
  none
  ((GtkHandleBox handlebox)
   (GtkShadowType type)))

(define-func gtk_handle_box_get_shadow_type
  GtkShadowType
  ((GtkHandleBox handlebox)))

(define-func gtk_handle_box_set_handle_position
  none
  ((GtkHandleBox handlebox)
   (GtkPositionType position)))

(define-func gtk_handle_box_get_handle_position
  GtkPositionType
  ((GtkHandleBox handlebox)))

(define-func gtk_handle_box_set_snap_edge
  none
  ((GtkHandleBox handlebox)
   (GtkPositionType edge)))

(define-func gtk_handle_box_get_snap_edge
  GtkPositionType
  ((GtkHandleBox handlebox)))

;;; Box

(define-object GtkBox (GtkContainer))

(define-func gtk_box_pack_start
  none
  ((GtkBox box)
   (GtkWidget child)
   (bool expand)
   (bool fill)
   (int padding (= "0"))))

(define-func gtk_box_pack_end
  none
  ((GtkBox box)
   (GtkWidget child)
   (bool expand)
   (bool fill)
   (int padding (= "0"))))

(define-func gtk_box_pack_start_defaults
  none
  ((GtkBox box)
   (GtkWidget child)))

(define-func gtk_box_pack_end_defaults
  none
  ((GtkBox box)
   (GtkWidget child)))

(define-func gtk_box_set_homogeneous
  none
  ((GtkBox box)
   (bool homogenous)))

(define-func gtk_box_get_homogeneous
  bool
  ((GtkBox box)))

(define-func gtk_box_set_spacing
  none
  ((GtkBox box)
   (int spacing)))

(define-func gtk_box_get_spacing
  int
  ((GtkBox box)))

(define-func gtk_box_reorder_child
  none
  ((GtkBox box)
   (GtkWidget child)
   (int pos)))

;; XXX - needs multiple return values
;; (define-func gtk_box_query_child_packing)

(define-func gtk_box_set_child_packing
  none
  ((GtkBox box)
   (GtkWidget child)
   (bool expand)
   (bool fill)
   (int padding)
   (GtkPackType pack_type)))

;;; ButtonBox

(define-object GtkButtonBox (GtkBox))

(define-func gtk_button_box_set_layout
  none
  ((GtkButtonBox widget)
   (GtkButtonBoxStyle layout_style)))

(define-func gtk_button_box_get_layout
  GtkButtonBoxStyle
  ((GtkButtonBox widget)))

(define-func gtk_button_box_set_child_secondary
  none
  ((GtkButtonBox widget)
   (GtkWidget child)
   (bool is_secondary)))

(define-func gtk_button_box_set_child_size
  none
  ((GtkButtonBox widget)
   (int min_width)
   (int min_height)))

(define-func gtk_button_box_set_child_ipadding
  none
  ((GtkButtonBox widget)
   (int ipad_x)
   (int ipad_y)))

;; XXX get_child_size, get_child_ipadding

;;; HButtonBox

(define-object GtkHButtonBox (GtkButtonBox))

(define-func gtk_hbutton_box_new
  GtkWidget
  ())

;;; VButtonBox

(define-object GtkVButtonBox (GtkButtonBox))

(define-func gtk_vbutton_box_new
  GtkWidget
  ())

;;;; Toolbar

(define-object GtkToolbar (GtkContainer))

(define-func gtk_toolbar_new
  GtkWidget
  ())

;; XXX - blech, need interp versions of these
;; (define-func gtk_toolbar_append_item)
;; (define-func gtk_toolbar_prepend_item)
;; (define-func gtk_toolbar_insert_item)
;; (define-func gtk_toolbar_insert_stock)

(define-func gtk_toolbar_append_space
  none
  ((GtkToolbar toolbar)))

(define-func gtk_toolbar_prepend_space
  none
  ((GtkToolbar toolbar)))

(define-func gtk_toolbar_insert_space
  none
  ((GtkToolbar toolbar)
   (int position)))

(define-func gtk_toolbar_remove_space
  none
  ((GtkToolbar toolbar)
   (int position)))

;; XXX - need interp version to handle the callback properly, probably
;; some null-ok stuff to handle missing fields.
;; (define-func gtk_toolbar_append_element)
;; (define-func gtk_toolbar_prepend_element)
;; (define-func gtk_toolbar_insert_element)

(define-func gtk_toolbar_append_widget
  none
  ((GtkToolbar Toolbar)
   (GtkWidget Widget)
   (string tooltip_text)
   (string tooltip_private_text)))

(define-func gtk_toolbar_prepend_widget
  none
  ((GtkToolbar Toolbar)
   (GtkWidget Widget)
   (string tooltip_text)
   (string tooltip_private_text)))

(define-func gtk_toolbar_insert_widget
  none
  ((GtkToolbar toolbar)
   (GtkWidget widget)
   (string tooltip_text)
   (string tooltip_private_text)
   (int position)))

(define-func gtk_toolbar_set_orientation
  none
  ((GtkToolbar toolbar)
   (GtkOrientation orientation)))

(define-func gtk_toolbar_set_style
  none
  ((GtkToolbar toolbar)
   (GtkToolbarStyle style)))

(define-func gtk_toolbar_set_icon_size
  none
  ((GtkToolbar toolbar)
   (GtkIconSize size)))

(define-func gtk_toolbar_set_tooltips
  none
  ((GtkToolbar toolbar)
   (bool enable)))

(define-func gtk_toolbar_unset_style
  none
  ((GtkToolbar toolbar)))

(define-func gtk_toolbar_unset_icon_size
  none
  ((GtkToolbar toolbar)))

(define-func gtk_toolbar_get_orientation
  GtkOrientation
  ((GtkToolbar toolbar)))

(define-func gtk_toolbar_get_style
  GtkToolbarStyle
  ((GtkToolbar toolbar)))

(define-func gtk_toolbar_get_icon_size
  GtkIconSize
  ((GtkToolbar toolbar)))

(define-func gtk_toolbar_get_tooltips
  bool
  ((GtkToolbar toolbar)))

;;; Table

(define-object GtkTable (GtkContainer))

(define-func gtk_table_new
  GtkWidget
  ((uint rows)
   (uint columns)
   (bool homogenous)))

(define-func gtk_table_resize
  none
  ((GtkTable table)
   (uint rows)
   (uint columns)))

(define-func gtk_table_attach
  none
  ((GtkTable table)
   (GtkWidget child)
   (uint left_attach)
   (uint right_attach)
   (uint top_attach)
   (uint bottom_attach)
   (GtkAttachOptions xoptions (= "GTK_EXPAND|GTK_FILL"))
   (GtkAttachOptions yoptions (= "GTK_EXPAND|GTK_FILL"))
   (uint xpadding (= "0"))
   (uint ypadding (= "0"))))

(define-func gtk_table_attach_defaults
  none
  ((GtkTable table)
   (GtkWidget child)
   (uint left_attach)
   (uint right_attach)
   (uint top_attach)
   (uint bottom_attach)))

(define-func gtk_table_set_row_spacing
  none
  ((GtkTable table)
   (uint row)
   (uint spacing)))

(define-func gtk_table_get_row_spacing
  uint
  ((GtkTable table)
   (uint row)))

(define-func gtk_table_set_col_spacing
  none
  ((GtkTable table)
   (uint column)
   (uint spacing)))

(define-func gtk_table_get_col_spacing
  uint
  ((GtkTable table)
   (uint column)))

(define-func gtk_table_set_row_spacings
  none
  ((GtkTable table)
   (int spacing)))

(define-func gtk_table_get_default_row_spacing
  uint
  ((GtkTable table)))

(define-func gtk_table_set_col_spacings
  none
  ((GtkTable table)
   (uint spacing)))

(define-func gtk_table_set_homogeneous
  none
  ((GtkTable table)
   (bool homogeneous)))

(define-func gtk_table_get_homogeneous
  bool
  ((GtkTable table)))

;;; Button

(define-object GtkButton (GtkBin)
  (fields
   (bool in_button)
   (bool button_down)))

(define-func gtk_button_new
  GtkWidget
  ())

(define-func gtk_button_new_with_label
  GtkWidget
  ((string label)))

(define-func gtk_button_new_from_stock
  GtkWidget
  ((string stock_id)))

(define-func gtk_button_new_with_mnemonic
  GtkWidget
  ((string label)))

(define-func gtk_button_pressed
  none
  ((GtkButton button)))

(define-func gtk_button_released
  none
  ((GtkButton button)))

(define-func gtk_button_clicked
  none
  ((GtkButton button)))

(define-func gtk_button_enter
  none
  ((GtkButton button)))

(define-func gtk_button_leave
  none
  ((GtkButton button)))

(define-func gtk_button_set_relief
  none
  ((GtkButton button)
   (GtkReliefStyle relief)))

(define-func gtk_button_get_relief
  GtkReliefStyle
  ((GtkButton button)))

(define-func gtk_button_set_label
  none
  ((GtkButton button)
   (string label)))

(define-func gtk_button_get_label
  static_string
  ((GtkButton button)))

(define-func gtk_button_set_use_underline
  none
  ((GtkButton button)
   (bool use_underline)))

(define-func gtk_button_get_use_underline
  bool
  ((GtkButton button)))

(define-func gtk_button_set_use_stock
  none
  ((GtkButton button)
   (bool use_stock)))

(define-func gtk_button_get_use_stock
  bool
  ((GtkButton button)))

(define-func gtk_button_set_focus_on_click
  none
  ((GtkButton button)
   (bool focus_on_click)))

(define-func gtk_button_get_focus_on_click
  bool
  ((GtkButton button)))

(define-func gtk_button_set_alignment
  none
  ((GtkButton button)
   (double xalign)
   (double yalin)))

;; XXX not working!
;;(define-func gtk_button_get_alignment
;;  none
;;  ((GtkButton button)
;;   (double xalign)
;;   (double yalin)))

(define-func gtk_button_set_image
  none
  ((GtkButton button)
   (GtkWidget image)))

(define-func gtk_button_get_image
  GtkWidget
  ((GtkButton button)))

(define-func gtk_button_set_image_position
  none
  ((GtkButton button)
   (GtkPositionType position)))

(define-func gtk_button_get_image_position
  GtkPositionType
  ((GtkButton button)))

;;; ToggleButton

(define-object GtkToggleButton (GtkButton))

(define-func gtk_toggle_button_new
  GtkWidget
  ())

(define-func gtk_toggle_button_new_with_label
  GtkWidget
  ((string label)))

(define-func gtk_toggle_button_new_with_mnemonic
  GtkWidget
  ((string mnemonic)))

(define-func gtk_toggle_button_set_mode
  none
  ((GtkToggleButton toggle_button)
   (bool draw_indicator)))

(define-func gtk_toggle_button_get_mode
  bool
  ((GtkToggleButton toggle_button)))

(define-func gtk_toggle_button_set_active
  none
  ((GtkToggleButton toggle_button)
   (bool is_active)))

(define-func gtk_toggle_button_get_active
  bool
  ((GtkToggleButton toggle_button)))

(define-func gtk_toggle_button_toggled
  none
  ((GtkToggleButton toggle_button)))

(define-func gtk_toggle_button_set_inconsistent
  none
  ((GtkToggleButton toggle_button)
   (bool setting)))

(define-func gtk_toggle_button_get_inconsistent
  bool
  ((GtkToggleButton toggle_button)))

;;; CheckButton

(define-object GtkCheckButton (GtkToggleButton))

(define-func gtk_check_button_new
  GtkWidget
  ())

(define-func gtk_check_button_new_with_label
  GtkWidget
  ((string label)))

(define-func gtk_check_button_new_with_mnemonic
  GtkWidget
  ((string mnemonic)))

;;; RadioButton

(define-object GtkRadioButton (GtkCheckButton))

(define-func gtk_radio_button_new
  GtkWidget
  (((slist string) group (null-ok))))

(define-func gtk_radio_button_new_from_widget
  GtkWidget
  ((GtkRadioButton group (null-ok))))

(define-func gtk_radio_button_new_with_label
  GtkWidget
  (((slist string) group (null-ok))
   (string label)))

(define-func gtk_radio_button_new_with_label_from_widget
  GtkWidget
  ((GtkRadioButton group (null-ok))
   (string label)))

(define-func gtk_radio_button_new_with_mnemonic
  GtkWidget
  (((slist string) group (null-ok))
   (string mnemonic)))

(define-func gtk_radio_button_new_with_mnemonic_from_widget
  GtkWidget
  ((GtkRadioButton group (null-ok))
   (string label)))

;; XXX
;;(define-func gtk_radio_button_set_group
;;  none
;;  ((slist GtkWidget))
;;   ((GtkRadioButton button)))
;;
;;(define-func gtk_radio_button_get_group
;;  none
;;  ((GtkRadioButton button)
;;   (slist GtkWidget)))

;;; Misc

(define-object GtkMisc (GtkWidget))

(define-func gtk_misc_set_alignment
  none
  ((GtkMisc misc)
   (float xalign)
   (float yalign)))

;; XXX get_alignment

(define-func gtk_misc_set_padding
  none
  ((GtkMisc misc)
   (int xpad)
   (int ypad)))

;; XXX get_padding

;;; Arrow

(define-object GtkArrow (GtkWidget))

(define-func gtk_arrow_new
  GtkWidget
  ((GtkArrowType arrow_type)
   (GtkShadowType shadow_type)))

(define-func gtk_arrow_set
  none
  ((GtkArrow arrow)
   (GtkArrowType arrow_type)
   (GtkShadowType shadow_type)))

;;; Label

(define-object GtkLabel (GtkMisc))

(define-func gtk_label_new
  GtkWidget
  ((string str)))

(define-func gtk_label_new_with_mnemonic
  GtkWidget
  ((string str)))

(define-func gtk_label_set_text
  none
  ((GtkLabel label)
   (string str)))

(define-func gtk_label_get_text
  static_string
  ((GtkLabel label)))

(define-func gtk_label_set_label
  none
  ((GtkLabel label)
   (string str)))

(define-func gtk_label_get_label
  static_string
  ((GtkLabel label)))

(define-func gtk_label_set_markup
  none
  ((GtkLabel label)
   (string str)))

(define-func gtk_label_set_use_markup
  none
  ((GtkLabel label)
   (bool setting)))

(define-func gtk_label_get_use_markup
  bool
  ((GtkLabel label)))

(define-func gtk_label_set_use_underline
  none
  ((GtkLabel label)
   (bool setting)))

(define-func gtk_label_get_use_underline
  bool
  ((GtkLabel label)))

(define-func gtk_label_set_markup_with_mnemonic
  none
  ((GtkLabel label)
   (string str)))

(define-func gtk_label_get_mnemonic_keyval
  uint
  ((GtkLabel label)))

(define-func gtk_label_set_mnemonic_widget
  none
  ((GtkLabel label)
   (GtkWidget widget)))

(define-func gtk_label_get_mnemonic_widget
  GtkWidget
  ((GtkLabel label)))

(define-func gtk_label_set_text_with_mnemonic
  none
  ((GtkLabel label)
   (string str)))

(define-func gtk_label_set_justify
  none
  ((GtkLabel label)
   (GtkJustification jtype)))

(define-func gtk_label_get_justify
  GtkJustification
  ((GtkLabel label)))

(define-func gtk_label_set_pattern
  none
  ((GtkLabel label)
   (string pattern)))

(define-func gtk_label_set_line_wrap
  none
  ((GtkLabel label)
   (bool wrap)))

(define-func gtk_label_get_line_wrap
  bool
  ((GtkLabel label)))

(define-func gtk_label_set_selectable
  none
  ((GtkLabel label)
   (bool setting)))

(define-func gtk_label_get_selectable
  bool
  ((GtkLabel label)))

(define-func gtk_label_select_region
  none
  ((GtkLabel label)
   (int start_offset)
   (int end_offset)))

;; XXX get_layout, get_layout_offsets

;;; GtkLayout

(define-object GtkLayout (GtkContainer))

(define-func gtk_layout_new
  GtkWidget
  ((GtkAdjustment hadjustment)
   (GtkAdjustment vadjustment)))

(define-func gtk_layout_put
  none
  ((GtkLayout layout)
   (GtkWidget child_widget)
   (int x)
   (int y)))

(define-func gtk_layout_move
  none
  ((GtkLayout layout)
   (GtkWidget child_widget)
   (int x)
   (int y)))

(define-func gtk_layout_set_size
  none
  ((GtkLayout layout)
   (uint width)
   (uint height)))

;; XXX get_size

(define-func gtk_layout_get_hadjustment
  GtkAdjustment
  ((GtkLayout layout)))

(define-func gtk_layout_get_vadjustment
  GtkAdjustment
  ((GtkLayout layout)))

(define-func gtk_layout_set_hadjustment
  none
  ((GtkLayout layout)
   (GtkAdjustment adjustment)))

(define-func gtk_layout_set_vadjustment
  none
  ((GtkLayout layout)
   (GtkAdjustment adjustment)))

;;; GtkTipsQuery

(define-object GtkTipsQuery (GtkLabel))

(define-func gtk_tips_query_new
  GtkWidget
  ())

(define-func gtk_tips_query_start_query
  none
  ((GtkTipsQuery tips_query)))

(define-func gtk_tips_query_stop_query
  none
  ((GtkTipsQuery tips_query)))

(define-func gtk_tips_query_set_caller
  none
  ((GtkTipsQuery tips_query)
   (GtkWidget caller)))

(define-func gtk_tips_query_set_labels
  none
  ((GtkTipsQuery tips_query)
   (string label_inactive)
   (string label_no_tip)))

;; VBox

(define-object GtkVBox (GtkBox))

(define-func gtk_vbox_new
  GtkWidget
  ((bool homogenous)
   (int spacing)))

;; HBox

(define-object GtkHBox (GtkBox))

(define-func gtk_hbox_new
  GtkWidget
  ((bool homogenous)
   (int spacing)))

;; Item

(define-object GtkItem (GtkBin))

(define-func gtk_item_select
  none
  ((GtkItem item)))

(define-func gtk_item_deselect
  none
  ((GtkItem item)))

(define-func gtk_item_toggle
  none
  ((GtkItem item)))

;;;; GtkCombo

(define-object GtkCombo (GtkHBox)
  (fields
   (GtkWidget entry)
   (GtkWidget button)
   (GtkWidget popup)
   (GtkWidget popwin)
   (GtkWidget list)))

(define-func gtk_combo_new
  GtkWidget
  ())

(define-func gtk_combo_set_value_in_list
  none
  ((GtkCombo combo)
   (bool val)
   (bool ok_if_empty)))

(define-func gtk_combo_set_use_arrows
  none
  ((GtkCombo combo)
   (bool val)))

(define-func gtk_combo_set_use_arrows_always
  none
  ((GtkCombo combo)
   (bool val)))

(define-func gtk_combo_set_case_sensitive
  none
  ((GtkCombo combo)
   (bool val)))

(define-func gtk_combo_set_item_string
  none
  ((GtkCombo combo)
   (GtkItem item)
   (string item_value)))

(define-func gtk_combo_disable_activate
  none
  ((GtkCombo combo)))

(define-func gtk_combo_set_popdown_strings
  none
  ((GtkCombo combo)
   ((list string) strings)))

;;;; StatusBar

(define-object GtkStatusbar (GtkHBox))

(define-func gtk_statusbar_new
  GtkWidget
  ())

(define-func gtk_statusbar_get_context_id
  uint
  ((GtkStatusbar statusbar)
   (string context_description)))

(define-func gtk_statusbar_push
  uint
  ((GtkStatusbar statusbar)
   (uint context_id)
   (string text)))

(define-func gtk_statusbar_pop
  none
  ((GtkStatusbar statusbar)
   (uint context_id)))

(define-func gtk_statusbar_remove
  none
  ((GtkStatusbar statusbar)
   (uint context_id)
   (uint message_id)))

;;;; GammaCurve

(define-object GtkGammaCurve (GtkVBox)
  (fields
   (GtkWidget table)
   (GtkWidget curve)
   (float gamma)
   (GtkWidget gamma_dialog)
   (GtkWidget gamma_text)))

(define-func gtk_gamma_curve_new
  GtkWidget
  ())

;; Separator

(define-object GtkSeparator (GtkWidget))

;; HSeparator

(define-object GtkHSeparator (GtkSeparator))

(define-func gtk_hseparator_new
  GtkWidget
  ())

;; VSeparator

(define-object GtkVSeparator (GtkSeparator))

(define-func gtk_vseparator_new
  GtkWidget
  ())

;; Frame

(define-object GtkFrame (GtkBin))

(define-func gtk_frame_new
  GtkWidget
  ((string label (null-ok))))

(define-func gtk_frame_set_label
  none
  ((GtkFrame frame)
   (string label)))

(define-func gtk_frame_get_label
  static_string
  ((GtkFrame frame)))

(define-func gtk_frame_set_label_widget
  none
  ((GtkFrame frame)
   (GtkWidget widget)))

(define-func gtk_frame_get_label_widget
  GtkWidget
  ((GtkFrame frame)))

(define-func gtk_frame_set_label_align
  none
  ((GtkFrame frame)
   (float xalign)
   (float yalign)))

;; XXX get_label_align

(define-func gtk_frame_set_shadow_type
  none
  ((GtkFrame frame)
   (GtkShadowType type)))

(define-func gtk_frame_get_shadow_type
  GtkShadowType
  ((GtkFrame frame)))

;; Aspect Frame

(define-object GtkAspectFrame (GtkFrame))

(define-func gtk_aspect_frame_new
  GtkWidget
  ((string label)
   (float xalign)
   (float yalign)
   (float ratio)
   (bool obey_child)))

(define-func gtk_aspect_frame_set
  none
  ((GtkAspectFrame aspect_frame)
   (float xalign)
   (float yalign)
   (float ratio)
   (bool obey_child)))

;; Progress

(define-object GtkProgress (GtkWidget))

;; Progress Bar

(define-object GtkProgressBar (GtkWidget)
  (fields))

(define-func gtk_progress_bar_new
  GtkWidget
  ())

(define-func gtk_progress_bar_pulse
  none
  ((GtkProgressBar pbar)))

(define-func gtk_progress_bar_set_text
  none
  ((GtkProgressBar pbar)
   (string text)))

(define-func gtk_progress_bar_set_fraction
  none
  ((GtkProgressBar pbar)
   (double fraction)))

(define-func gtk_progress_bar_set_pulse_step
  none
  ((GtkProgressBar pbar)
   (double fraction)))

(define-func gtk_progress_bar_set_orientation
  none
  ((GtkProgressBar pbar)
   (GtkProgressBarOrientation orientation)))

(define-func gtk_progress_bar_get_text
  static_string
  ((GtkProgressBar pbar)))

(define-func gtk_progress_bar_get_fraction
  double
  ((GtkProgressBar pbar)))

(define-func gtk_progress_bar_get_pulse_step
  double
  ((GtkProgressBar pbar)))

(define-func gtk_progress_bar_get_orientation
  GtkProgressBarOrientation
  ((GtkProgressBar pbar)))

;; Tooltips

(define-object GtkTooltips (GtkObject))

(define-func gtk_tooltips_new
  GtkTooltips
  ())

(define-func gtk_tooltips_enable
  none
  ((GtkTooltips tooltips)))

(define-func gtk_tooltips_disable
  none
  ((GtkTooltips tooltips)))

(define-func gtk_tooltips_set_tip
  none
  ((GtkTooltips tooltips)
   (GtkWidget widget)
   (string tip_text (null-ok))
   (string tip_private)))

;; XXX data_get

(define-func gtk_tooltips_force_window
  none
  ((GtkTooltips tooltips)))

;; MenuShell

(define-object GtkMenuShell (GtkContainer))

(define-func gtk_menu_shell_append
  none
  ((GtkMenuShell menu_shell)
   (GtkWidget child)))

(define-func gtk_menu_shell_prepend
  none
  ((GtkMenuShell menu_shell)
   (GtkWidget child)))

(define-func gtk_menu_shell_insert
  none
  ((GtkMenuShell menu_shell)
   (GtkWidget child)
   (int position)))

(define-func gtk_menu_shell_deactivate
  none
  ((GtkMenuShell menu_shell)))

(define-func gtk_menu_shell_select_item
  none
  ((GtkMenuShell menu_shell)
   (GtkWidget menu_item)))

(define-func gtk_menu_shell_deselect
  none
  ((GtkMenuShell menu_shell)))

(define-func gtk_menu_shell_activate_item
  none
  ((GtkMenuShell menu_shell)
   (GtkWidget menu_item)
   (bool force_deactivate)))

;; MenuBar

(define-object GtkMenuBar (GtkMenuShell))

(define-func gtk_menu_bar_new
  GtkWidget
  ())

;; Menu

(define-object GtkMenu (GtkMenuShell))

(define-func gtk_menu_new
  GtkWidget
  ())

(define-func gtk_menu_popup_interp
  none
  ((GtkMenu menu)
   (GtkWidget parent_menu_shell (null-ok))
   (GtkWidget parent_menu_item (null-ok))
   (uint button)
   (uint activate_time)
   (SCM position)))

(define-func gtk_menu_reposition
  none
  ((GtkMenu menu)))

(define-func gtk_menu_popdown
  none
  ((GtkMenu menu)))

(define-func gtk_menu_get_active
  GtkWidget
  ((GtkMenu menu)))

(define-func gtk_menu_set_active
  none
  ((GtkMenu menu)
   (uint index)))

(define-func gtk_menu_set_accel_group
  none
  ((GtkMenu menu)
   (GtkAccelGroup accel_group)))

(define-func gtk_menu_get_accel_group
  GtkAccelGroup
  ((GtkMenu menu)))

(define-func gtk_menu_set_accel_path
  none
  ((GtkMenu menu)
   (string accel_path)))

;; XXX - probably needs _interp version
;; gtk_menu_attach_to_widget

(define-func gtk_menu_detach
  none
  ((GtkMenu menu)))

(define-func gtk_menu_get_attach_widget
  GtkWidget
  ((GtkMenu menu)))

(define-func gtk_menu_set_tearoff_state
  none
  ((GtkMenu menu)
   (bool torn_off)))

(define-func gtk_menu_get_tearoff_state
  bool
  ((GtkMenu menu)))

(define-func gtk_menu_set_title
  none
  ((GtkMenu menu)
   (string title)))

(define-func gtk_menu_get_title
  static_string
  ((GtkMenu menu)))

(define-func gtk_menu_reorder_child
  none
  ((GtkMenu menu)
   (GtkWidget child)
   (int position)))

;; MenuItem

(define-object GtkMenuItem (GtkItem))

(define-func gtk_menu_item_new
  GtkWidget
  ())

(define-func gtk_menu_item_new_with_label
  GtkWidget
  ((string label)))

(define-func gtk_menu_item_new_with_mnemonic
  GtkWidget
  ((string label)))

(define-func gtk_menu_item_set_submenu
  none
  ((GtkMenuItem menu_item)
   (GtkWidget submenu)))

(define-func gtk_menu_item_get_submenu
  GtkWidget
  ((GtkMenuItem menu_item)))

(define-func gtk_menu_item_remove_submenu
  none
  ((GtkMenuItem menu_item)))

(define-func gtk_menu_item_select
  none
  ((GtkMenuItem menu_item)))

(define-func gtk_menu_item_deselect
  none
  ((GtkMenuItem menu_item)))

(define-func gtk_menu_item_activate
  none
  ((GtkMenuItem menu_item)))

;; XXX toggle_size_request, toggle_size_allocate

(define-func gtk_menu_item_set_right_justified
  none
  ((GtkMenuItem menu_item)
   (bool setting)))

(define-func gtk_menu_item_get_right_justified
  bool
  ((GtkMenuItem menu_item)))

(define-func gtk_menu_item_set_accel_path
  none
  ((GtkMenuItem menu_item)
   (string accel_path)))

;; CheckMenuItem

(define-object GtkCheckMenuItem (GtkMenuItem)
  (fields
   (bool active)))

(define-func gtk_check_menu_item_new
  GtkWidget
  ())

(define-func gtk_check_menu_item_new_with_label
  GtkWidget
  ((string label)))

(define-func gtk_check_menu_item_new_with_mnemonic
  GtkWidget
  ((string label)))

(define-func gtk_check_menu_item_set_active
  none
  ((GtkCheckMenuItem check_menu_item)
   (bool is_active)))

(define-func gtk_check_menu_item_get_active
  bool
  ((GtkCheckMenuItem check_menu_item)))

(define-func gtk_check_menu_item_toggled
  none
  ((GtkCheckMenuItem check_menu_item)))

(define-func gtk_check_menu_item_set_inconsistent
  none
  ((GtkCheckMenuItem menu_item)
   (bool setting)))

(define-func gtk_check_menu_item_get_inconsistent
  bool
  ((GtkCheckMenuItem menu_item)))

;; RadioMenuItem

(define-object GtkRadioMenuItem (GtkCheckMenuItem))

(define-func gtk_radio_menu_item_new_from_widget
  GtkWidget
  ((GtkRadioMenuItem group (null-ok))))

(define-func gtk_radio_menu_item_new_with_label_from_widget
  GtkWidget
  ((GtkRadioMenuItem group (null-ok))
   (string label)))

(define-func gtk_radio_menu_item_new_with_mnemonic_from_widget
  GtkWidget
  ((GtkRadioMenuItem group (null-ok))
   (string label)))

;; OptionMenu

(define-object GtkOptionMenu (GtkButton))

(define-func gtk_option_menu_new
  GtkWidget
  ())

(define-func gtk_option_menu_get_menu
  GtkWidget
  ((GtkOptionMenu option_menu)))

(define-func gtk_option_menu_set_menu
  none
  ((GtkOptionMenu option_menu)
   (GtkWidget menu)))

(define-func gtk_option_menu_remove_menu
  none
  ((GtkOptionMenu option_menu)))

(define-func gtk_option_menu_get_history
  int
  ((GtkOptionMenu option_menu)))

(define-func gtk_option_menu_set_history
  none
  ((GtkOptionMenu option_menu)
   (int index)))

;; Pixmaps

(define-object GtkPixmap (GtkMisc))

(define-func gtk_pixmap_new_interp
  GtkWidget
  ((string xpm_file)
   (GtkWidget intended_parent)))

;;; Viewport

(define-object GtkViewport (GtkBin))

(define-func gtk_viewport_new
  GtkWidget
  ((GtkAdjustment hadjustment)
   (GtkAdjustment vadjustment)))

(define-func gtk_viewport_get_hadjustment
  GtkAdjustment
  ((GtkViewport viewport)))

(define-func gtk_viewport_get_vadjustment
  GtkAdjustment
  ((GtkViewport viewport)))

(define-func gtk_viewport_set_hadjustment
  none
  ((GtkViewport viewport)
   (GtkAdjustment adjustment)))

(define-func gtk_viewport_set_vadjustment
  none
  ((GtkViewport viewport)
   (GtkAdjustment adjustment)))

(define-func gtk_viewport_set_shadow_type
  none
  ((GtkViewport viewport)
   (GtkShadowType type)))

(define-func gtk_viewport_get_shadow_type
  GtkShadowType
  ((GtkViewport viewport)))

;; ScrolledWindow

(define-object GtkScrolledWindow (GtkContainer))

(define-func gtk_scrolled_window_new
  GtkWidget
  ((GtkAdjustment hadjustment (null-ok) (= "NULL"))
   (GtkAdjustment vadjustment (null-ok) (= "NULL"))))

(define-func gtk_scrolled_window_set_hadjustment
  none
  ((GtkScrolledWindow scrolled_window)
   (GtkAdjustment hadjustment)))

(define-func gtk_scrolled_window_set_vadjustment
  none
  ((GtkScrolledWindow scrolled_window)
   (GtkAdjustment vadjustment)))

(define-func gtk_scrolled_window_get_hadjustment
  GtkAdjustment
  ((GtkScrolledWindow scrolled_window)))

(define-func gtk_scrolled_window_get_vadjustment
  GtkAdjustment
  ((GtkScrolledWindow scrolled_window)))

(define-func gtk_scrolled_window_set_policy
  none
  ((GtkScrolledWindow scrolled_window)
   (GtkPolicyType hscrollbar_policy)
   (GtkPolicyType vscrollbar_policy)))

;; XXX get_policy

(define-func gtk_scrolled_window_set_placement
  none
  ((GtkScrolledWindow scrolled_window)
   (GtkCornerType window_placement)))

(define-func gtk_scrolled_window_get_placement
  GtkCornerType
  ((GtkScrolledWindow scrolled_window)))

(define-func gtk_scrolled_window_set_shadow_type
  none
  ((GtkScrolledWindow scrolled_window)
   (GtkShadowType type)))

(define-func gtk_scrolled_window_get_shadow_type
  GtkShadowType
  ((GtkScrolledWindow scrolled_window)))

(define-func gtk_scrolled_window_add_with_viewport
  none
  ((GtkScrolledWindow scrolled_window)
   (GtkWidget child)))

;; ListItem

(define-object GtkListItem (GtkItem))

(define-func gtk_list_item_new
  GtkWidget
  ())

(define-func gtk_list_item_new_with_label
  GtkWidget
  ((string label)))

(define-func gtk_list_item_select
  none
  ((GtkListItem list_item)))

(define-func gtk_list_item_deselect
  none
  ((GtkListItem list_item)))

;; List

(define-object GtkList (GtkContainer))

(define-func gtk_list_new
  GtkWidget
  ())

(define-func gtk_list_insert_items
  none
  ((GtkList list)
   ((list GtkListItem) items)
   (int position)))

(define-func gtk_list_append_items
  none
  ((GtkList list)
   ((list GtkListItem) items)))

(define-func gtk_list_prepend_items
  none
  ((GtkList list)
   ((list GtkListItem) items)))

(define-func gtk_list_remove_items
  none
  ((GtkList list)
   ((list GtkListItem) items)))

;; in gtk-compat.c
(define-func gtk_list_append_item
  none
  ((GtkList list)
   (GtkListItem item)))
(define-func gtk_list_prepend_item
  none
  ((GtkList list)
   (GtkListItem item)))

;; XXX many missing

(define-func gtk_list_clear_items
  none
  ((GtkList list)
   (int start)
   (int end)))

(define-func gtk_list_select_item
  none
  ((GtkList list)
   (int item)))

(define-func gtk_list_unselect_item
  none
  ((GtkList list)
   (int item)))

(define-func gtk_list_select_child
  none
  ((GtkList list)
   (GtkWidget child)))

(define-func gtk_list_unselect_child
  none
  ((GtkList list)
   (GtkWidget child)))

(define-func gtk_list_child_position
  int
  ((GtkList list)
   (GtkWidget child)))

(define-func gtk_list_set_selection_mode
  none
  ((GtkList list)
   (GtkSelectionMode mode)))

(define-func gtk_list_extend_selection
  none
  ((GtkList list)
   (GtkScrollType scroll_type)
   (float position)
   (bool auto_start_selection)))

(define-func gtk_list_start_selection
  none
  ((GtkList list)))

(define-func gtk_list_end_selection
  none
  ((GtkList list)))

(define-func gtk_list_select_all
  none
  ((GtkList list)))

(define-func gtk_list_unselect_all
  none
  ((GtkList list)))

(define-func gtk_list_scroll_horizontal
  none
  ((GtkList list)
   (GtkScrollType type)
   (float position)))

(define-func gtk_list_scroll_vertical
  none
  ((GtkList list)
   (GtkScrollType type)
   (float position)))

(define-func gtk_list_toggle_add_mode
  none
  ((GtkList list)))

(define-func gtk_list_toggle_focus_row
  none
  ((GtkList list)))

(define-func gtk_list_toggle_row
  none
  ((GtkList list)
   (GtkWidget item)))

(define-func gtk_list_undo_selection
  none
  ((GtkList list)))

(define-func gtk_list_end_drag_selection
  none
  ((GtkList list)))

;; Notebook

(define-object GtkNotebook (GtkContainer)
  (fields
   (GtkPositionType tab_pos)))

(define-func gtk_notebook_new
  GtkWidget
  ())

(define-func gtk_notebook_append_page
  none
  ((GtkNotebook notebook)
   (GtkWidget child)
   (GtkWidget tab_label)))

(define-func gtk_notebook_append_page_menu
  none
  ((GtkNotebook notebook)
   (GtkWidget child)
   (GtkWidget tab_label)
   (GtkWidget menu_label)))

(define-func gtk_notebook_prepend_page
  none
  ((GtkNotebook notebook)
   (GtkWidget child)
   (GtkWidget tab_label)))

(define-func gtk_notebook_prepend_page_menu
  none
  ((GtkNotebook notebook)
   (GtkWidget child)
   (GtkWidget tab_label)
   (GtkWidget menu_label)))

(define-func gtk_notebook_insert_page
  none
  ((GtkNotebook notebook)
   (GtkWidget child)
   (GtkWidget tab_label)
   (int position)))

(define-func gtk_notebook_insert_page_menu
  none
  ((GtkNotebook notebook)
   (GtkWidget child)
   (GtkWidget tab_label)
   (GtkWidget menu_label)
   (int position)))

(define-func gtk_notebook_remove_page
  none
  ((GtkNotebook notebook)
   (int page_num)))

(define-func gtk_notebook_get_current_page
  int
  ((GtkNotebook notebook)))

(define-func gtk_notebook_get_nth_page
  GtkWidget
  ((GtkNotebook notebook)
   (int page_num)))

(define-func gtk_notebook_page_num
  int
  ((GtkNotebook notebook)
   (GtkWidget child)))

(define-func gtk_notebook_set_current_page
  none
  ((GtkNotebook notebook)
   (int page_num)))

(define-func gtk_notebook_next_page
  none
  ((GtkNotebook notebook)))

(define-func gtk_notebook_prev_page
  none
  ((GtkNotebook notebook)))

(define-func gtk_notebook_set_show_border
  none
  ((GtkNotebook notebook)
   (bool show_border)))

(define-func gtk_notebook_get_show_border
  bool
  ((GtkNotebook notebook)))

(define-func gtk_notebook_set_show_tabs
  none
  ((GtkNotebook notebook)
   (bool show_tabs)))

(define-func gtk_notebook_get_show_tabs
  bool
  ((GtkNotebook notebook)))

(define-func gtk_notebook_set_tab_pos
  none
  ((GtkNotebook notebook)
   (GtkPositionType pos)))

(define-func gtk_notebook_get_tab_pos
  GtkPositionType
  ((GtkNotebook notebook)))

(define-func gtk_notebook_set_scrollable
  none
  ((GtkNotebook notebook)
   (bool scrollable)))

(define-func gtk_notebook_get_scrollable
  bool
  ((GtkNotebook notebook)))

(define-func gtk_notebook_popup_enable
  none
  ((GtkNotebook notebook)))

(define-func gtk_notebook_popup_disable
  none
  ((GtkNotebook notebook)))

(define-func gtk_notebook_get_tab_label
  GtkWidget
  ((GtkNotebook notebook)
   (GtkWidget child)))

(define-func gtk_notebook_set_tab_label
  none
  ((GtkNotebook notebook)
   (GtkWidget child)
   (GtkWidget tab_label)))

(define-func gtk_notebook_set_tab_label_text
  none
  ((GtkNotebook notebook)
   (GtkWidget child)
   (string text)))

(define-func gtk_notebook_get_tab_label_text
  static_string
  ((GtkNotebook notebook)
   (GtkWidget child)))

(define-func gtk_notebook_get_menu_label
  GtkWidget
  ((GtkNotebook notebook)
   (GtkWidget child)))

(define-func gtk_notebook_set_menu_label
  none
  ((GtkNotebook notebook)
   (GtkWidget child)
   (GtkWidget menu_label)))

(define-func gtk_notebook_set_menu_label_text
  none
  ((GtkNotebook notebook)
   (GtkWidget child)
   (string text)))

(define-func gtk_notebook_get_menu_label_text
  static_string
  ((GtkNotebook notebook)
   (GtkWidget child)))

;; XXX query_tab_label_packing, set_tab_label_packing

(define-func gtk_notebook_reorder_child
  none
  ((GtkNotebook notebook)
   (GtkWidget child)
   (int position)))

;; Editable

(define-object GtkEditable (GtkWidget))

(define-func gtk_editable_select_region
  none
  ((GtkEditable editable)
   (int start)
   (int end)))

;; XXX get_selection_bounds

(define-func gtk_editable_insert_text
  none
  ((GtkEditable editable)
   (string new_text)
   (int new_text_length)
   ((fvec int 1 inout) position)))

(define-func gtk_editable_delete_text
  none
  ((GtkEditable editable)
   (int start_pos)
   (int end_pos)))

(define-func gtk_editable_get_chars
  string
  ((GtkEditable editable)
   (int start_pos)
   (int end_pos)))

(define-func gtk_editable_cut_clipboard
  none
  ((GtkEditable editable)))

(define-func gtk_editable_copy_clipboard
  none
  ((GtkEditable editable)))

(define-func gtk_editable_paste_clipboard
  none
  ((GtkEditable editable)))

(define-func gtk_editable_delete_selection
  none
  ((GtkEditable editable)))

(define-func gtk_editable_set_position
  none
  ((GtkEditable editable)
   (int position)))

(define-func gtk_editable_get_position
  int
  ((GtkEditable editable)))

(define-func gtk_editable_set_editable
  none
  ((GtkEditable editable)
   (bool is_editable)))

(define-func gtk_editable_get_editable
  bool
  ((GtkEditable editable)))

;; Entry

(define-object GtkEntry (GtkEditable))

(define-func gtk_entry_new
  GtkWidget
  ())

(define-func gtk_entry_set_visibility
  none
  ((GtkEntry entry)
   (bool visible)))

(define-func gtk_entry_get_visibility
  bool
  ((GtkEntry entry)))

;; XXX unichar?
;(define-func gtk_entry_set_invisibile_char
;  none
;  ((GtkEntry entry)
;   (unichar ch)))
;
;(define-func gtk_entry_get_invisibile_char
;  unichar
;  ((GtkEntry entry)))

(define-func gtk_entry_set_has_frame
  none
  ((GtkEntry entry)
   (bool setting)))

(define-func gtk_entry_get_has_frame
  bool
  ((GtkEntry entry)))

(define-func gtk_entry_set_max_length
  none
  ((GtkEntry entry)
   (int max)))

(define-func gtk_entry_get_max_length
  int
  ((GtkEntry entry)))

(define-func gtk_entry_set_activates_default
  none
  ((GtkEntry entry)
   (bool setting)))

(define-func gtk_entry_get_activates_default
  bool
  ((GtkEntry entry)))

(define-func gtk_entry_set_width_chars
  none
  ((GtkEntry entry)
   (int n_chars)))

(define-func gtk_entry_get_width_chars
  int
  ((GtkEntry entry)))

(define-func gtk_entry_set_text
  none
  ((GtkEntry entry)
   (string text)))

(define-func gtk_entry_get_text
  static_string
  ((GtkEntry entry)))

;; SpinButton

(define-object GtkSpinButton (GtkEntry))

(define-func gtk_spin_button_new
  GtkWidget
  ((GtkAdjustment adjustment)
   (double climb_rate)
   (int digits)))

(define-func gtk_spin_button_new_with_range
  GtkWidget
  ((double min)
   (double max)
   (double step)))

(define-func gtk_spin_button_set_adjustment
  none
  ((GtkSpinButton spin_button)
   (GtkAdjustment adjustment)))

(define-func gtk_spin_button_get_adjustment
  GtkAdjustment
  ((GtkSpinButton spin_button)))

(define-func gtk_spin_button_set_digits
  none
  ((GtkSpinButton spin_button)
   (int digits)))

(define-func gtk_spin_button_get_digits
  int
  ((GtkSpinButton spin_button)))

(define-func gtk_spin_button_set_increments
  none
  ((GtkSpinButton spin_button)
   (double step)
   (double page)))

;; XXX get_increments

(define-func gtk_spin_button_set_range
  none
  ((GtkSpinButton spin_button)
   (double min)
   (double max)))

;; XXX get_range

(define-func gtk_spin_button_get_value
  double
  ((GtkSpinButton spin_button)))

(define-func gtk_spin_button_get_value_as_int
  int
  ((GtkSpinButton spin_button)))

(define-func gtk_spin_button_set_value
  none
  ((GtkSpinButton spin_button)
   (double value)))

(define-func gtk_spin_button_set_update_policy
  none
  ((GtkSpinButton spin_button)
   (GtkSpinButtonUpdatePolicy policy)))

(define-func gtk_spin_button_get_update_policy
  GtkSpinButtonUpdatePolicy
  ((GtkSpinButton spin_button)))

(define-func gtk_spin_button_set_numeric
  none
  ((GtkSpinButton spin_button)
   (bool numeric)))

(define-func gtk_spin_button_get_numeric
  bool
  ((GtkSpinButton spin_button)))

(define-func gtk_spin_button_spin
  none
  ((GtkSpinButton spin_button)
   (GtkSpinType direction)
   (double increment)))

(define-func gtk_spin_button_set_wrap
  none
  ((GtkSpinButton spin_button)
   (bool wrap)))

(define-func gtk_spin_button_get_wrap
  bool
  ((GtkSpinButton spin_button)))

(define-func gtk_spin_button_set_snap_to_ticks
  none
  ((GtkSpinButton spin_button)
   (bool snap_to_ticks)))

(define-func gtk_spin_button_get_snap_to_ticks
  bool
  ((GtkSpinButton spin_button)))

(define-func gtk_spin_button_update
  none
  ((GtkSpinButton spin_button)))

;; Alignment

(define-object GtkAlignment (GtkBin))

(define-func gtk_alignment_new
  GtkWidget
  ((float xalign)
   (float yalign)
   (float xscale)
   (float yscale)))

(define-func gtk_alignment_set
  none
  ((GtkAlignment alignment)
   (float xalign)
   (float yalign)
   (float xscale)
   (float yscale)))

;; DrawingArea

(define-object GtkDrawingArea (GtkWidget))

(define-func gtk_drawing_area_new
  GtkWidget
  ())

;; Curve

(define-object GtkCurve (GtkDrawingArea))

(define-func gtk_curve_new
  GtkWidget
  ())

(define-func gtk_curve_reset
  none
  ((GtkCurve curve)))

(define-func gtk_curve_set_gamma
  none
  ((GtkCurve curve)
   (float gamma)))

(define-func gtk_curve_set_range
  none
  ((GtkCurve curve)
   (float min_x)
   (float max_x)
   (float min_y)
   (float max_y)))

;; XXX - needs to convert something to length and array of floats
;; (define-func gtk_curve_set_vector)

;; XXX - needs to convert something to length and array of floats
;; (define-func gtk_curve_get_vector)

(define-func gtk_curve_set_curve_type
  none
  ((GtkCurve curve)
   (GtkCurveType type)))

;; FileSelection

(define-object GtkFileSelection (GtkWindow)
  (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 action_area)))

(define-func gtk_file_selection_new
  GtkWidget
  ((string title)))

(define-func gtk_file_selection_set_filename
  none
  ((GtkFileSelection filesel)
   (string filename)))

(define-func gtk_file_selection_get_filename
  static_string
  ((GtkFileSelection filesel)))

(define-func gtk_file_selection_complete
  none
  ((GtkFileSelection filesel)
   (string pattern)))

(define-func gtk_file_selection_show_fileop_buttons
  none
  ((GtkFileSelection filesel)))

(define-func gtk_file_selection_hide_fileop_buttons
  none
  ((GtkFileSelection filesel)))

;; FontSelectionDialog

(define-object GtkFontSelectionDialog (GtkWindow)
  (fields
   (GtkWidget main_vbox)
   (GtkWidget action_area)
   (GtkWidget ok_button)
   (GtkWidget apply_button)
   (GtkWidget cancel_button)))

(define-func gtk_font_selection_dialog_new
  GtkWidget
  ((string title)))

(define-func gtk_font_selection_dialog_get_font_name
  string
  ((GtkFontSelectionDialog fontsel)))

(define-func gtk_font_selection_dialog_set_font_name
  bool
  ((GtkFontSelectionDialog fontsel)
   (string fontname)))

(define-func gtk_font_selection_dialog_get_preview_text
  static_string
  ((GtkFontSelectionDialog fontsel)))

(define-func gtk_font_selection_dialog_set_preview_text
  none
  ((GtkFontSelectionDialog fontsel)
   (string text)))

;; ColorSelectionDialog

(define-object GtkColorSelectionDialog (GtkWindow)
  (fields
   (GtkWidget colorsel)
   (GtkWidget ok_button)
   (GtkWidget cancel_button)
   (GtkWidget help_button)))

(define-func gtk_color_selection_dialog_new
  GtkWidget
  ((string title)))

;; ColorSelection

(define-object GtkColorSelection (GtkVBox))

(define-func gtk_color_selection_new
  GtkWidget
  ())

(define-func gtk_color_selection_set_has_opacity_control
  none
  ((GtkColorSelection colorsel)
   (bool has_opacity)))

(define-func gtk_color_selection_get_has_opacity_control
  bool
  ((GtkColorSelection colorsel)))

(define-func gtk_color_selection_get_has_palette
  bool
  ((GtkColorSelection colorsel)))

(define-func gtk_color_selection_set_has_palette
  none
  ((GtkColorSelection colorsel)
   (bool setting)))

(define-func gtk_color_selection_set_current_color
  none
  ((GtkColorSelection colorsel)
   (GdkColor color)))

(define-func gtk_color_selection_set_current_alpha
  none
  ((GtkColorSelection colorsel)
   (ushort alpha)))

;; XXX get_current_color

(define-func gtk_color_selection_get_current_alpha
  ushort
  ((GtkColorSelection colorsel)))

;; XXX `previous' functions

(define-func gtk_color_selection_is_adjusting
  bool
  ((GtkColorSelection colorsel)))

;; XXX palette_from,to_string

(define-func gtk_color_selection_set_color_interp
  none
  ((GtkColorSelection colorsel)
   (GdkColor color)))

;; This returns a color which is not allocated in any colormap.
(define-func gtk_color_selection_get_color_interp
  GdkColor
  ((GtkColorSelection colorsel)))

;; Range

(define-object GtkRange (GtkWidget))

(define-func gtk_range_set_update_policy
  none
  ((GtkRange range)
   (GtkUpdateType policy)))

(define-func gtk_range_get_update_policy
  GtkUpdateType
  ((GtkRange range)))

(define-func gtk_range_set_adjustment
  none
  ((GtkRange range)
   (GtkAdjustment adjustment)))

(define-func gtk_range_get_adjustment
  GtkAdjustment
  ((GtkRange range)))

(define-func gtk_range_set_inverted
  none
  ((GtkRange range)
   (bool setting)))

(define-func gtk_range_get_inverted
  bool
  ((GtkRange range)))

(define-func gtk_range_set_increments
  none
  ((GtkRange range)
   (double step)
   (double page)))

(define-func gtk_range_set_range
  none
  ((GtkRange range)
   (double min)
   (double max)))

(define-func gtk_range_set_value
  none
  ((GtkRange range)
   (double value)))

(define-func gtk_range_get_value
  double
  ((GtkRange range)))

;; Scale

(define-object GtkScale (GtkRange))

(define-func gtk_scale_set_digits
  none
  ((GtkScale scale)
   (int digits)))

(define-func gtk_scale_get_digits
  int
  ((GtkScale scale)))

(define-func gtk_scale_set_draw_value
  none
  ((GtkScale scale)
   (bool draw_value)))

(define-func gtk_scale_get_draw_value
  bool
  ((GtkScale scale)))

(define-func gtk_scale_set_value_pos
  none
  ((GtkScale scale)
   (GtkPositionType pos)))

(define-func gtk_scale_get_value_pos
  GtkPositionType
  ((GtkScale scale)))

;; HScale

(define-object GtkHScale (GtkScale))

(define-func gtk_hscale_new
  GtkWidget
  ((GtkAdjustment adjustment)))

(define-func gtk_hscale_new_with_range
  GtkWidget
  ((double min)
   (double max)
   (double step)))

;; VScale

(define-object GtkVScale (GtkScale))

(define-func gtk_vscale_new
  GtkWidget
  ((GtkAdjustment adjustment)))

(define-func gtk_vscale_new_with_range
  GtkWidget
  ((double min)
   (double max)
   (double step)))

;; Scrollbar

(define-object GtkScrollbar (GtkRange))

;; HScrollbar

(define-object GtkHScrollbar (GtkScrollbar))

(define-func gtk_hscrollbar_new
  GtkWidget
  ((GtkAdjustment adjustment)))

;; VScrollbar

(define-object GtkVScrollbar (GtkScrollbar))

(define-func gtk_vscrollbar_new
  GtkWidget
  ((GtkAdjustment adjustment)))

;; Ruler

(define-object GtkRuler (GtkWidget))

(define-func gtk_ruler_set_metric
  none
  ((GtkRuler ruler)
   (GtkMetricType metric)))

(define-func gtk_ruler_set_range
  none
  ((GtkRuler ruler)
   (float lower)
   (float upper)
   (float position)
   (float max_size)))

(define-func gtk_ruler_draw_ticks
  none
  ((GtkRuler ruler)))

(define-func gtk_ruler_draw_pos
  none
  ((GtkRuler ruler)))

(define-func gtk_ruler_get_metric
  GtkMetricType
  ((GtkRuler ruler)))

;; XXX get_range

;; HRuler

(define-object GtkHRuler (GtkRuler))

(define-func gtk_hruler_new
  GtkWidget
  ())

;; VRuler

(define-object GtkVRuler (GtkRuler))

(define-func gtk_vruler_new
  GtkWidget
  ())

;; Dialog

(define-object GtkDialog (GtkWindow)
  (fields
   (GtkWidget vbox)
   (GtkWidget action_area)))

(define-func gtk_dialog_new
  GtkWidget
  ())

;; XXX new_with_buttons

(define-func gtk_dialog_add_button
  GtkWidget
  ((GtkDialog dialog)
   (string button_text)
   (int response_id)))

;; XXX add_buttons

(define-func gtk_dialog_set_response_sensitive
  none
  ((GtkDialog dialog)
   (int response_id)
   (bool setting)))

(define-func gtk_dialog_set_default_response
  none
  ((GtkDialog dialog)
   (int response_id)))

(define-func gtk_dialog_set_has_separator
  none
  ((GtkDialog dialog)
   (bool setting)))

(define-func gtk_dialog_get_has_separator
  bool
  ((GtkDialog dialog)))

(define-func gtk_dialog_response
  none
  ((GtkDialog dialog)
   (int response_id)))

(define-func gtk_dialog_run
  int
  ((GtkDialog dialog)))

;; InputDialog

(define-object GtkInputDialog (GtkDialog)
  (fields
   (GtkWidget close_button)
   (GtkWidget save_button)))

(define-func gtk_input_dialog_new
  GtkWidget
  ())

;; Paned

(define-object GtkPaned (GtkContainer))

(define-func gtk_paned_add1
  none
  ((GtkPaned paned)
   (GtkWidget child)))

(define-func gtk_paned_add2
  none
  ((GtkPaned paned)
   (GtkWidget child)))

(define-func gtk_paned_pack1
  none
  ((GtkPaned paned)
   (GtkWidget child)
   (bool resize)
   (bool shrink)))

(define-func gtk_paned_pack2
  none
  ((GtkPaned paned)
   (GtkWidget child)
   (bool resize)
   (bool shrink)))

(define-func gtk_paned_get_position
  int
  ((GtkPaned paned)))

(define-func gtk_paned_set_position
  none
  ((GtkPaned paned)
   (int position)))

;; HPaned

(define-object GtkHPaned (GtkPaned))

(define-func gtk_hpaned_new
  GtkWidget
  ())

;; VPaned

(define-object GtkVPaned (GtkPaned))

(define-func gtk_vpaned_new
  GtkWidget
  ())

;; Types

(define-func gtk_type_name
  static_string
  ((type type)))

(define-func gtk_type_from_name
  type
  ((string name)))

;(define-func gtk_class_new
;  type
;  ((type parent)
;   (string name)))
;
;(define-func gtk_signal_new_generic
;  int
;  ((string name)
;   (GtkSignalRunType signal_flags)
;   (type class_type)
;   (type return_type)
;   ((cvec type) params)))
;
;(define-func sgtk_signal_emit
;  none
;  ((GtkObject object)
;   (string signal)
;   (SCM args))
;  (scm-name "gtk-signal-emit")
;  (rest-arg t))

(define-func gtk_signal_set_class_function_full
  none
  ((type class)
   (string signal)
   (full-callback function))
  (protection t)
  (scm-name "gtk-signal-set-class-function"))

;; Plug

(define-object GtkPlug (GtkWindow)
  (fields
   (GdkWindow socket_window)))

(define-func gtk_plug_construct
  none
  ((GtkPlug plug)
   (uint id)))

(define-func gtk_plug_new
  GtkWidget
  ((uint socket_id)))

;; Socket

(define-object GtkSocket (GtkContainer)
  (fields
   (GdkWindow plug_window)))

(define-func gtk_socket_new
  GtkWidget
  ())

(define-func gtk_socket_add_id
  none
  ((GtkSocket socket)
   (ulong window_id)))

(define-func gtk_socket_get_id
  ulong
  ((GtkSocket socket)))

;; TearoffMenuItem

(define-object GtkTearoffMenuItem (GtkMenuItem)
  (fields
   (bool torn_off)))

(define-func gtk_tearoff_menu_item_new
  GtkWidget
  ())

;; Calendar

(define-object GtkCalendar (GtkWidget))

(define-func gtk_calendar_new
  GtkWidget
  ())

(define-func gtk_calendar_select_month
  none
  ((GtkCalendar cal)
   (uint month)
   (uint year)))

(define-func gtk_calendar_select_day
  none
  ((GtkCalendar cal)
   (uint day)))

(define-func gtk_calendar_mark_day
  bool
  ((GtkCalendar cal)
   (uint day)))

(define-func gtk_calendar_unmark_day
  bool
  ((GtkCalendar cal)
   (uint day)))

(define-func gtk_calendar_clear_marks
  none
  ((GtkCalendar cal)))

(define-func gtk_calendar_display_options
  none
  ((GtkCalendar cal)
   (GtkCalendarDisplayOptions flags)))

(define-func gtk_calendar_get_date
  none
  ((GtkCalendar cal)
   ((fvec uint 1 out) year)
   ((fvec uint 1 out) month)
   ((fvec uint 1 out) day)))

(define-func gtk_calendar_freeze
  none
  ((GtkCalendar cal)))

(define-func gtk_calendar_thaw
  none
  ((GtkCalendar cal)))

;; IconFactory

(define-object GtkIconFactory (GObject))

(define-boxed GtkIconSet
  (copy gtk_icon_set_copy)
  (free gtk_icon_set_unref))

(define-func gtk_icon_factory_new
  GtkIconFactory
  ())

(define-func gtk_icon_factory_add
  none
  ((GtkIconFactory factory)
   (string stock_id)
   (GtkIconSet icon_set)))

(define-func gtk_icon_factory_lookup
  GtkIconSet
  ((GtkIconFactory factory)
   (string stock_id)))

(define-func gtk_icon_factory_add_default
  none
  ((GtkIconFactory factory)))

(define-func gtk_icon_factory_remove_default
  none
  ((GtkIconFactory factory)))

(define-func gtk_icon_factory_lookup_default
  GtkIconSet
  ((string stock_id)))

;; XXX size_lookup

(define-func gtk_icon_size_register
  GtkIconSize
  ((string name)
   (int width)
   (int height)))

(define-func gtk_icon_size_register_alias
  none
  ((string alias)
   (GtkIconSize target)))

(define-func gtk_icon_size_from_name
  GtkIconSize
  ((string name)))

(define-func gtk_icon_size_get_name
  static_string
  ((GtkIconSize size)))

(define-func gtk_icon_set_render_icon
  GdkPixbuf
  ((GtkIconSet icon_set)
   (GtkStyle style (null-ok))
   (GtkTextDirection direction)
   (GtkStateType state)
   (GtkIconSize size)
   (GtkWidget widget (null-ok))
   (string detail (null-ok))))

;; XXX icon_source foo

;; Image

(define-object GtkImage (GtkMisc))

(define-func gtk_image_new
  GtkWidget
  ())

(define-func gtk_image_new_from_file
  GtkWidget
  ((string filename)))

(define-func gtk_image_new_from_pixbuf
  GtkWidget
  ((GdkPixbuf pixbuf)))

(define-func gtk_image_new_from_stock
  GtkWidget
  ((string stock_id)
   (GtkIconSize size)))

(define-func gtk_image_new_from_icon_set
  GtkWidget
  ((GtkIconSet icon_set)
   (GtkIconSize size)))

(define-func gtk_image_set_from_file
  none
  ((GtkImage image)
   (string filename)))

(define-func gtk_image_set_from_pixbuf
  none
  ((GtkImage image)
   (GdkPixbuf pixbuf)))

(define-func gtk_image_set_from_stock
  none
  ((GtkImage image)
   (string stock_id)
   (GtkIconSize size)))

(define-func gtk_image_set_from_icon_set
  none
  ((GtkImage image)
   (GtkIconSet icon_set)
   (GtkIconSize size)))

(define-func gtk_image_get_pixbuf
  GdkPixbuf
  ((GtkImage image)))

;; ImageMenuItem

(define-object GtkImageMenuItem (GtkMenuItem))

(define-func gtk_image_menu_item_new
  GtkWidget
  ())

(define-func gtk_image_menu_item_new_with_label
  GtkWidget
  ((string label)))

(define-func gtk_image_menu_item_new_with_mnemonic
  GtkWidget
  ((string label)))

(define-func gtk_image_menu_item_new_from_stock
  GtkWidget
  ((string stock_id)
   (GtkAccelGroup accel_group)))

(define-func gtk_image_menu_item_set_image
  none
  ((GtkImageMenuItem item)
   (GtkWidget image)))

(define-func gtk_image_menu_item_get_image
  GtkWidget
  ((GtkImageMenuItem item)))

;; Invisible

(define-object GtkInvisible (GtkWidget))

(define-func gtk_invisible_new
  GtkWidget
  ())

;; SeparatorMenuItem

(define-object GtkSeparatorMenuItem (GtkMenuItem))

(define-func gtk_separator_menu_item_new
  GtkWidget
  ())
;; hack for status icon
(define-object GtkStatusIcon (GObject))

(define-enum GtkImageType
  (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)
  (icon-name GTK_IMAGE_ICON_NAME))

(define-func gtk_status_icon_new
  GtkStatusIcon
  ())

(define-func gtk_status_icon_new_from_pixbuf
  GtkStatusIcon
  ((GdkPixbuf pixbuf)))

(define-func gtk_status_icon_new_from_file
  GtkStatusIcon
  ((string filename)))

(define-func gtk_status_icon_new_from_stock
  GtkStatusIcon
  ((string stock_id)))

(define-func gtk_status_icon_new_from_icon_name
  GtkStatusIcon
  ((string icon_name)))


(define-func gtk_status_icon_set_from_pixbuf
  none
  ((GtkStatusIcon status_icon)
   (GdkPixbuf pixbuf)))

(define-func gtk_status_icon_set_from_file
  none
  ((GtkStatusIcon status_icon)
   (string  filename)))

(define-func gtk_status_icon_set_from_stock
  none
  ((GtkStatusIcon status_icon)
   (string stock_id)))

(define-func gtk_status_icon_set_from_icon_name
  none
  ((GtkStatusIcon status_icon)
   (string icon_name)))

(define-func gtk_status_icon_get_storage_type
  GtkImageType
  ((GtkStatusIcon status_icon)))

(define-func gtk_status_icon_get_pixbuf
  GdkPixbuf
((GtkStatusIcon status_icon)))

(define-func gtk_status_icon_get_stock
  none
  ((GtkStatusIcon status_icon)))

(define-func gtk_status_icon_get_icon_name
  none
  ((GtkStatusIcon status_icon)))

(define-func gtk_status_icon_get_size
  int
  ((GtkStatusIcon status_icon)))

;(define-func gtk_status_icon_set_screen
;  none
;  ((GtkStatusIcon status_icon)
;   (GdkScreen screen)))

;(define-func gtk_status_icon_get_screen
;  GdkScreen
;  ((GtkStatusIcon status_icon)))

(define-func gtk_status_icon_set_tooltip
  none
  ((GtkStatusIcon status_icon)
   (string tooltip_text)))

(define-func gtk_status_icon_set_visible
  none
  ((GtkStatusIcon status_icon)
   (bool visible)))

(define-func gtk_status_icon_get_visible
  bool
  ((GtkStatusIcon status_icon)))

(define-func gtk_status_icon_set_blinking
  none
 ((GtkStatusIcon status_icon)
  (bool blinking)))

(define-func gtk_status_icon_get_blinking
  bool
  ((GtkStatusIcon status_icon)))

(define-func gtk_status_icon_is_embedded
  bool
  ((GtkStatusIcon status_icon)))

(define-func gtk_status_icon_popup_menu
  none
  ((GtkStatusIcon status_icon)
   (GtkMenu menu)
   (uint button)
   (uint activate_time)))

; remove screen
(define-func gtk_status_icon_get_geometry_interp
  bool
  ((GtkStatusIcon status_icon)
   ((ret int) x)
   ((ret int) y)
   ((ret GtkOrientation) orientation)))

;; GtkColorButton

(define-object GtkColorButton (GtkButton))

(define-func gtk_color_button_new
  GtkWidget
  ())

(define-func gtk_color_button_new_with_color
  GtkWidget
  ((GdkColor color)))

(define-func gtk_color_button_set_color
  none
  ((GtkColorButton color_button)
   (GdkColor color)))

(define-func gtk_color_button_get_color
  none
  ((GtkColorButton color_button)
   (GdkColor color)))

(define-func gtk_color_button_get_color_interp
  string
  ((GtkColorButton button)))

(define-func gtk_color_button_set_alpha
  none
  ((GtkColorButton color_button)
   (uint alpha)))

(define-func gtk_color_button_get_alpha
  none
  ((GtkColorButton color_button)))

(define-func gtk_color_button_set_use_alpha
  none
  ((GtkColorButton color_button)
   (bool use_alpha)))

(define-func gtk_color_button_get_use_alpha
  bool
  ((GtkColorButton color_button)))

(define-func gtk_color_button_set_title
  none
  ((GtkColorButton color_button)
   (string title)))

;; XXX GtkFileChooserButton needs support of GtkFileChooserAction

;; GtkFontButton

(define-object GtkFontButton (GtkButton))

(define-func gtk_font_button_new
  GtkWidget
  ())

(define-func gtk_font_button_new_with_font
  GtkWidget
  ((string font)))

(define-func gtk_font_button_get_title
  static_string
  ((GtkFontButton button)))

(define-func gtk_font_button_set_title
  none
  ((GtkFontButton button)
   (string title)))

(define-func gtk_font_button_get_use_font
  bool
  ((GtkFontButton button)))

(define-func gtk_font_button_set_use_font
  none
  ((GtkFontButton button)
   (bool option)))

(define-func gtk_font_button_get_use_size
  bool
  ((GtkFontButton button)))

(define-func gtk_font_button_set_use_size
  none
  ((GtkFontButton button)
   (bool option)))

(define-func gtk_font_button_get_font_name
  static_string
  ((GtkFontButton button)))

(define-func gtk_font_button_set_font_name
  none
  ((GtkFontButton button)
   (string font)))

(define-func gtk_font_button_get_show_style
  bool
  ((GtkFontButton button)))

(define-func gtk_font_button_set_show_style
  none
  ((GtkFontButton button)
   (bool option)))

(define-func gtk_font_button_get_show_size
  bool
  ((GtkFontButton button)))

(define-func gtk_font_button_set_show_size
  none
  ((GtkFontButton button)
   (bool option)))

;; GtkLinkButton

(define-object GtkLinkButton (GtkButton))

(define-func gtk_link_button_new
  GtkWidget
  ((string uri)))

(define-func gtk_link_button_new_with_label
  GtkWidget
  ((string uri)
   (string label)))

(define-func gtk_link_button_get_uri
  static_string
  ((GtkLinkButton button)))

(define-func gtk_link_button_set_uri
  none
  ((GtkLinkButton button)
   (string uri)))

;; GtkScaleButton

(define-object GtkScaleButton (GtkButton))

(define-func gtk_scale_button_new
  GtkWidget
  ((GtkIconSize size)
   (double min)
   (double max)
   (double step)
   ((tvec string in) icons)))

(define-func gtk_scale_button_set_icons
  none
  ((GtkScaleButton button)
   (string icons)))

(define-func gtk_scale_button_get_value
  double
  ((GtkScaleButton button)))

(define-func gtk_scale_button_set_value
  none
  ((GtkScaleButton button)
   (double value)))

(define-func gtk_scale_button_get_adjustment
  GtkAdjustment
  ((GtkScaleButton button)))

(define-func gtk_scale_button_set_adjustment
  none
  ((GtkScaleButton button)
   (GtkAdjustment adjustment)))

;; GtkVolumeButton

(define-object GtkVolumeButton (GtkScaleButton))

(define-func gtk_volume_button_new
  GtkWidget
  ())

;; GtkAboutDialog

(define-object GtkAboutDialog (GtkDialog))

(define-func gtk_about_dialog_new
  GtkWidget
  ())

(define-func gtk_about_dialog_get_program_name
  static_string
  ((GtkAboutDialog dialog)))

(define-func gtk_about_dialog_set_program_name
  none
  ((GtkAboutDialog dialog)
   (string name)))

(define-func gtk_about_dialog_get_version
  static_string
  ((GtkAboutDialog dialog)))

(define-func gtk_about_dialog_set_version
  none
  ((GtkAboutDialog dialog)
   (string version)))

(define-func gtk_about_dialog_get_copyright
  static_string
  ((GtkAboutDialog dialog)))

(define-func gtk_about_dialog_set_copyright
  none
  ((GtkAboutDialog dialog)
   (string copyright)))

(define-func gtk_about_dialog_get_comments
  static_string
  ((GtkAboutDialog dialog)))

(define-func gtk_about_dialog_set_comments
  none
  ((GtkAboutDialog dialog)
   (string comments)))

(define-func gtk_about_dialog_get_license
  static_string
  ((GtkAboutDialog dialog)))

(define-func gtk_about_dialog_set_license
  none
  ((GtkAboutDialog dialog)
   (string license)))

(define-func gtk_about_dialog_get_wrap_license
  bool
  ((GtkAboutDialog dialog)))

(define-func gtk_about_dialog_set_wrap_license
  none
  ((GtkAboutDialog dialog)
   (bool seting)))

(define-func gtk_about_dialog_get_website
  static_string
  ((GtkAboutDialog dialog)))

(define-func gtk_about_dialog_set_website
  none
  ((GtkAboutDialog dialog)
   (string website)))

(define-func gtk_about_dialog_get_website_label
  static_string
  ((GtkAboutDialog dialog)))

(define-func gtk_about_dialog_set_website_label
  none
  ((GtkAboutDialog dialog)
   (string websitelabel)))

(define-func gtk_about_dialog_set_authors
  none
  ((GtkAboutDialog dialog)
   ((tvec string in) authors)))

(define-func gtk_about_dialog_set_documenters
  none
  ((GtkAboutDialog dialog)
   ((tvec string in) documenters)))

(define-func gtk_about_dialog_set_artists
  none
  ((GtkAboutDialog dialog)
   ((tvec string in) artists)))

(define-func gtk_about_dialog_get_translator_credits
  static_string
  ((GtkAboutDialog dialog)))

(define-func gtk_about_dialog_set_translator_credits
  none
  ((GtkAboutDialog dialog)
   (string translatorcredits)))

(define-func gtk_about_dialog_get_logo
  GdkPixbuf
  ((GtkAboutDialog dialog)))

(define-func gtk_about_dialog_set_logo
  none
  ((GtkAboutDialog dialog)
   (GdkPixbuf logo)))

(define-func gtk_about_dialog_get_logo_icon_name
  static_string
  ((GtkAboutDialog dialog)))

(define-func gtk_about_dialog_set_logo_icon_name
  none
  ((GtkAboutDialog dialog)
   (string logo)))

;; GtkAccelLabel

(define-object GtkAccelLabel (GtkLabel))

(define-func gtk_accel_label_new
  GtkWidget
  ((string label)))

(define-func gtk_accel_label_get_accel_widget
  GtkWidget
  ((GtkAccelLabel label)))

(define-func gtk_accel_label_set_accel_widget
  none
  ((GtkAccelLabel label)
   (GtkWidget widget)))

(define-func gtk_accel_label_get_accel_width
  uint
  ((GtkAccelLabel label)))

(define-func gtk_accel_label_set_accel_closure
  none
  ((GtkAccelLabel label)
   (GClosure closure)))

(define-func gtk_accel_label_refetch
  bool
  ((GtkAccelLabel label)))

;; More defs files

(include "gtktext.defs")
(include "gtktree.defs")
(include "gtkbuilder.defs")

;; Options

(options
 ;; XXX remove the enable-broken when possible
 ;; XXX GtkTree{,Item} and c_tree{,_item} still force us to use it
 (includes "#define GTK_ENABLE_BROKEN\n#include <gtk/gtk.h>")
 (init-func "sgtk_init_gtk_gtk_glue")
 (other-inits "sgtk_init_gtk_glib_glue")
 (other-inits "sgtk_init_gtk_gdk_glue")
 (other-inits "sgtk_init_gdk_pixbuf_glue"))