;; -*- scheme -*-


;;;
;;; manual portion from gtk-boxed.defs
;;;



;;; Gtk boxed types

(define-boxed GtkAccelGroup
  gtk_accel_group_ref
  gtk_accel_group_unref)

(define-boxed GtkSelectionData
  gtk_selection_data_copy
  gtk_selection_data_free)


;;; Gdk boxed types

                                        ;(define-boxed GdkPoint
                                        ;  gdk_point_copy
                                        ;  gdk_point_destroy)

(define-boxed GdkVisual
  gdk_visual_ref
  gdk_visual_unref)

(define-boxed GdkFont
  gdk_font_ref
  gdk_font_unref)

(define-boxed GdkEvent
  gdk_event_copy
  gdk_event_free
  "sizeof(GdkEvent)")

(define-boxed GdkColor
  gdk_color_copy
  gdk_color_free
  "sizeof(GdkColor)")

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

;;; Functions

;; Gdk

(define-func gdk_font_load
  GdkFont
  ((string name)))

;; main

(define-func gtk_exit
  none
  ((int code (= "0"))))

(define-func gtk_main
  none
  ())

(define-func gtk_main_quit
  none
  ())

(define-func gtk_main_iteration
  bool
  ())

(define-func gtk_timeout_add_interp
  int
  ((int interval)
   (callback function)))

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

(define-func gtk_idle_add_interp
  int
  ((callback function)))

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

(define-func gtk_input_add_interp
  int
  ((int source)
   (GdkInputCondition condition)
   (callback callback)))

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

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

(define-func g_mem_chunk_info
  none
  ())

;; GtkObject

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

;; Signals

(define-func gtk_signal_connect_interp
  int
  ((GtkObject object)
   (string name)
   (callback func)
   (bool after (= "0"))))

;; GtkWidget

(define-object GtkWidget (GtkObject)
  (fields
   (GtkStyle style)))

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

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

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

(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_hide
  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_add_accelerator
  none
  ((GtkWidget widget)
   (string accel_signal)
   (GtkAccelGroup accel_group)
   (guint accel_key)
   (guint accel_mods)
   (GtkAccelFlags accel_flags)))

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

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

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

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

(define-func gtk_widget_popup
  none
  ((GtkWidget widget)
   (int x)
   (int y)))

(define-func gtk_widget_basic
  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_restore_state
  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_style
  none
  ((GtkWidget widget)
   (GtkStyle style)))

(define-func gtk_widget_set_uposition
  none
  ((GtkWidget widget)
   (int x)
   (int y)))

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

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

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

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

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

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

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

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

(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_visual
  none
  ((GdkVisual visual)))

(define-func gtk_widget_push_style
  none
  ((GtkStyle style)))

(define-func gtk_widget_pop_colormap
  none
  ())

(define-func gtk_widget_pop_visual
  none
  ())

(define-func gtk_widget_pop_style
  none
  ())

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

(define-func gtk_widget_set_default_visual
  none
  ((GdkVisual visual)))

(define-func gtk_widget_set_default_style
  none
  ((GtkStyle style)))

(define-func gtk_widget_get_default_colormap
  GdkColormap
  ())

(define-func gtk_widget_get_default_visual
  GdkVisual
  ())

(define-func gtk_widget_get_default_style
  GtkStyle
  ())

;;; Container

(define-object GtkContainer (GtkWidget))

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

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

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

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

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

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

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

(define-func gtk_container_need_resize
  bool
  ((GtkContainer container)))

(define-func gtk_container_focus
  GtkDirectionType
  ((GtkContainer container)
   (GtkDirectionType direction)))

;;; Bin

(define-object GtkBin (GtkContainer))

;;; 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_set_focus
  none
  ((GtkWindow window)
   (GtkWidget focus)))

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

(define-func gtk_window_set_policy
  none
  ((GtkWindow window)
   (bool allow_shrink)
   (bool allow_grow)
   (bool auto_shrink)))

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

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

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

;;; Box

(define-object GtkBox (GtkContainer))

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

(define-func gtk_box_pack_end
  none
  ((GtkBox box)
   (GtkWidget child)
   (bool expand (= "TRUE"))
   (bool fill (= "TRUE"))
   (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_set_spacing
  none
  ((GtkBox box)
   (int spacing)))

;;; Table

(define-object GtkTable (GtkContainer))

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

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

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

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

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

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

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

;;; Button

(define-object GtkButton (GtkContainer))

(define-func gtk_button_new
  GtkWidget
  ())

(define-func gtk_button_new_with_label
  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)))

;;; 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_set_mode
  none
  ((GtkToggleButton toggle_button)
   (bool draw_indicator)))

(define-func gtk_toggle_button_set_state
  none
  ((GtkToggleButton toggle_button)
   (bool state)))

(define-func gtk_toggle_button_toggled
  none
  ((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)))

;;; RadioButton

(define-object GtkRadioButton (GtkCheckButton))

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

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

;;; Misc

(define-object GtkMisc (GtkWidget))

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

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

;;; Label

(define-object GtkLabel (GtkMisc))

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

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

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

;; 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)))

;; 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_set_label_align
  none
  ((GtkFrame frame)
   (float xalign)
   (float yalign)))

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

;; Progress Bar

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

(define-func gtk_progress_bar_new
  GtkWidget
  ())

(define-func gtk_progress_bar_update
  none
  ((GtkProgressBar progress_bar)
   (float percentage)))

                                        ;(define-func gtk_progress_bar_percentage
                                        ;  float
                                        ;  ((GtkProgressBar progress_bar)))

;; Tooltips

(define-object GtkTooltips (GtkData))

(define-func gtk_tooltips_new
  GtkTooltips
  ())

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

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

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

(define-func gtk_tooltips_set_delay
  none
  ((GtkTooltips tooltips)
   (int delay)))

(define-func gtk_tooltips_set_tips
  none
  ((GtkTooltips tooltips)
   (GtkWidget widget)
   (string tips_text (null-ok))))

(define-func gtk_tooltips_set_colors
  none
  ((GtkTooltips tooltips)
   (GdkColor background)
   (GdkColor foreground)))

;; 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)))

;; MenuBar

(define-object GtkMenuBar (GtkMenuShell))

(define-func gtk_menu_bar_new
  GtkWidget
  ())

(define-func gtk_menu_bar_append
  none
  ((GtkMenuBar menu_bar)
   (GtkWidget child)))

(define-func gtk_menu_bar_prepend
  none
  ((GtkMenuBar menu_bar)
   (GtkWidget child)))

(define-func gtk_menu_bar_insert
  none
  ((GtkMenuBar menu_bar)
   (GtkWidget child)
   (int position)))

;; Menu

(define-object GtkMenu (GtkMenuShell))

(define-func gtk_menu_new
  GtkWidget
  ())

(define-func gtk_menu_append
  none
  ((GtkMenu menu)
   (GtkWidget child)))

(define-func gtk_menu_prepend
  none
  ((GtkMenu menu)
   (GtkWidget child)))

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

(define-func gtk_menu_popup_interp
  none
  ((GtkMenu menu)
   (GtkWidget parent_menu_shell)
   (GtkWidget parent_menu_item)
   (int button)
   (int activate_time)))

(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)
   (int index)))

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


;; 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)))

;; 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_set_submenu
  none
  ((GtkMenuItem menu_item)
   (GtkWidget submenu)))

(define-func gtk_menu_item_set_placement
  none
  ((GtkMenuItem menu_item)
   (GtkSubmenuPlacement placement)))

(define-func gtk_menu_item_configure
  none
  ((GtkMenuItem menu_item)
   (bool show_toggle_indicator)
   (bool show_submenu_indicator)))

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

;; CheckMenuItem

(define-object GtkCheckMenuItem (GtkMenuItem))

(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_set_state
  none
  ((GtkCheckMenuItem check_menu_item)
   (bool state)))

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

;; RadioMenuItem

(define-object GtkRadioMenuItem (GtkCheckMenuItem))

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

(define-func gtk_radio_menu_item_new_with_label_interp
  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_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)))

;; Data

(define-object GtkData (GtkObject))

;; Adjustment

(define-object GtkAdjustment (GtkData))

(define-func gtk_adjustment_new
  GtkObject
  ((float value)
   (float lower)
   (float upper)
   (float step_increment)
   (float page_increment)
   (float page_size)))

;; ScrolledWidow

(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_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)))

;; 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_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)))

;; 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_prepend_page
  none
  ((GtkNotebook notebook)
   (GtkWidget child)
   (GtkWidget tab_label)))

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

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

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

(define-func gtk_notebook_set_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_tab_pos
  none
  ((GtkNotebook notebook)
   (GtkPositionType pos)))

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

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

;; Entry

(define-object GtkEntry (GtkWidget))

(define-func gtk_entry_new
  GtkWidget
  ())

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

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

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

(define-func gtk_entry_set_position
  none
  ((GtkEntry entry)
   (int position)))

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

;; Text

(define-object GtkText (GtkWidget))

(define-func gtk_text_new
  GtkWidget
  ((GtkAdjustment hadj (null-ok))
   (GtkAdjustment vadj (null-ok))))

(define-func gtk_text_set_editable
  none
  ((GtkText text)
   (bool editable)))

(define-func gtk_text_set_adjustments
  none
  ((GtkText text)
   (GtkAdjustment hadj)
   (GtkAdjustment vadj)))

(define-func gtk_text_set_point
  none
  ((GtkText text)
   (uint index)))

(define-func gtk_text_get_point
  uint
  ((GtkText text)))

(define-func gtk_text_get_length
  uint
  ((GtkText text)))

(define-func gtk_text_freeze
  none
  ((GtkText text)))

(define-func gtk_text_thaw
  none
  ((GtkText text)))

(define-func gtk_text_insert
  none
  ((GtkText text)
   (GdkFont font (null-ok))
   (GdkColor fore (null-ok))
   (GdkColor back (null-ok))
   (string chars)
   (int length)))

(define-func gtk_text_backward_delete
  none
  ((GtkText text)
   (uint nchars)))

(define-func gtk_text_foreward_delete
  none
  ((GtkText text)
   (uint nchars)))

;; TextView

(define-boxed GtkTextIter
  gtk_text_iter_copy
  gtk_text_iter_free)

;; TreeView
(define-boxed GtkTreeIter
  gtk_tree_iter_copy
  gtk_tree_iter_free)

(define-boxed GtkTreePath
  gtk_tree_path_copy
  gtk_tree_path_free)

;; 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)))

;; Color

                                        ; XXX lots missing

(define-func gdk_color_parse_interp
  GdkColor
  ((string spec)))

;; Preview

(define-object GtkPreview (GtkWidget))

;; XXX lots missing

(define-func gtk_preview_set_install_cmap
  none
  ((bool install_cmap)))

(define-func gtk_preview_set_reserved
  none
  ((int nreserved)))

(define-func gtk_preview_get_visual
  GdkVisual
  ())

(define-func gtk_preview_get_cmap
  GdkColormap
  ())

;; ColorSelectionDialog

(define-object GtkColorSelectionDialog (GtkWindow)
  (fields
   (GtkWidget colorsel)
   (GtkWidget main_vbox)
   (GtkWidget ok_button)
   (GtkWidget reset_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_update_policy
  none
  ((GtkColorSelection colorsel)
   (GtkUpdateType policy)))

(define-func gtk_color_selection_set_opacity
  none
  ((GtkColorSelection colorsel)
   (bool use_opacity)))

;; Range

(define-object GtkRange (GtkWidget))

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

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

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

;; Scale

(define-object GtkScale (GtkRange))

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

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

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

;; HScale

(define-object GtkHScale (GtkScale))

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

;; VScale

(define-object GtkVScale (GtkScale))

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

;; 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)))

;; Dialog

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

(define-func gtk_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_handle_size
  none
  ((GtkPaned paned)
   (int size)))

(define-func gtk_paned_gutter_size
  none
  ((GtkPaned paned)
   (int size)))

;; HPaned

(define-object GtkHPaned (GtkPaned))

(define-func gtk_hpaned_new
  GtkWidget
  ())

;; VPaned

(define-object GtkVPaned (GtkPaned))

(define-func gtk_vpaned_new
  GtkWidget
  ())

;;; hack

;(define-func panel_register_toy
;  none
;  ((gpointer panel)
;   (GtkWidget applet)
;   (string id)
;   (string params)
;   (int x)
;   (int y)
;   (int flags)))

;(define-func panel_quit
;  none
;  ((gpointer panel)))

;(define-func panel_new_applet
;  none
;  ((gpointer panel)
;   (string applet)
;   (string params)))
