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

(define-method set_border_width
  (of-object "GtkContainer")
  (c-name "gtk_container_set_border_width")
  (return-type "none")
  (parameters
    '("guint" "border_width")
  )
)

(define-method get_border_width
  (of-object "GtkContainer")
  (c-name "gtk_container_get_border_width")
  (return-type "guint")
)

(define-method add
  (of-object "GtkContainer")
  (c-name "gtk_container_add")
  (return-type "none")
  (parameters
    '("GtkWidget*" "widget")
  )
)

(define-method remove
  (of-object "GtkContainer")
  (c-name "gtk_container_remove")
  (return-type "none")
  (parameters
    '("GtkWidget*" "widget")
  )
)

(define-method set_resize_mode
  (of-object "GtkContainer")
  (c-name "gtk_container_set_resize_mode")
  (return-type "none")
  (parameters
    '("GtkResizeMode" "resize_mode")
  )
)

(define-method get_resize_mode
  (of-object "GtkContainer")
  (c-name "gtk_container_get_resize_mode")
  (return-type "GtkResizeMode")
)

(define-method check_resize
  (of-object "GtkContainer")
  (c-name "gtk_container_check_resize")
  (return-type "none")
)

(define-method foreach
  (of-object "GtkContainer")
  (c-name "gtk_container_foreach")
  (return-type "none")
  (parameters
    '("GtkCallback" "callback")
    '("gpointer" "callback_data")
  )
)

(define-method foreach_full
  (of-object "GtkContainer")
  (c-name "gtk_container_foreach_full")
  (return-type "none")
  (parameters
    '("GtkCallback" "callback")
    '("GtkCallbackMarshal" "marshal")
    '("gpointer" "callback_data")
    '("GtkDestroyNotify" "notify")
  )
)

(define-method get_children
  (of-object "GtkContainer")
  (c-name "gtk_container_get_children")
  (caller-owns-return #l)
  (return-type "GList-GtkWidget*")
)

(define-method set_focus_chain
  (of-object "GtkContainer")
  (c-name "gtk_container_set_focus_chain")
  (return-type "none")
  (parameters
    '("GList-GtkWidget*" "focusable_widgets")
  )
)

(define-method get_focus_chain
  (of-object "GtkContainer")
  (c-name "gtk_container_get_focus_chain")
  (return-type "gboolean")
  (parameters
    '("GList**" "focusable_widgets")
  )
)

(define-method unset_focus_chain
  (of-object "GtkContainer")
  (c-name "gtk_container_unset_focus_chain")
  (return-type "none")
)

(define-method set_reallocate_redraws
  (of-object "GtkContainer")
  (c-name "gtk_container_set_reallocate_redraws")
  (return-type "none")
  (parameters
    '("gboolean" "needs_redraws")
  )
)

(define-method set_focus_child
  (of-object "GtkContainer")
  (c-name "gtk_container_set_focus_child")
  (return-type "none")
  (parameters
    '("GtkWidget*" "child" (null-ok))
  )
)

(define-method set_focus_vadjustment
  (of-object "GtkContainer")
  (c-name "gtk_container_set_focus_vadjustment")
  (return-type "none")
  (parameters
    '("GtkAdjustment*" "adjustment")
  )
)

(define-method get_focus_vadjustment
  (of-object "GtkContainer")
  (c-name "gtk_container_get_focus_vadjustment")
  (return-type "GtkAdjustment*")
)

(define-method set_focus_hadjustment
  (of-object "GtkContainer")
  (c-name "gtk_container_set_focus_hadjustment")
  (return-type "none")
  (parameters
    '("GtkAdjustment*" "adjustment")
  )
)

(define-method get_focus_hadjustment
  (of-object "GtkContainer")
  (c-name "gtk_container_get_focus_hadjustment")
  (return-type "GtkAdjustment*")
)

(define-method resize_children
  (of-object "GtkContainer")
  (c-name "gtk_container_resize_children")
  (return-type "none")
)

(define-method child_type
  (of-object "GtkContainer")
  (c-name "gtk_container_child_type")
  (return-type "GType")
)

(define-method add_with_properties
  (of-object "GtkContainer")
  (c-name "gtk_container_add_with_properties")
  (return-type "none")
  (parameters
    '("GtkWidget*" "widget")
    '("const-gchar*" "first_prop_name")
  )
  (varargs #t)
)

(define-method child_set
  (of-object "GtkContainer")
  (c-name "gtk_container_child_set")
  (return-type "none")
  (parameters
    '("GtkWidget*" "child")
    '("const-gchar*" "first_prop_name")
  )
  (varargs #t)
)

(define-method child_get
  (of-object "GtkContainer")
  (c-name "gtk_container_child_get")
  (return-type "none")
  (parameters
    '("GtkWidget*" "child")
    '("const-gchar*" "first_prop_name")
  )
  (varargs #t)
)

(define-method child_set_valist
  (of-object "GtkContainer")
  (c-name "gtk_container_child_set_valist")
  (return-type "none")
  (parameters
    '("GtkWidget*" "child")
    '("const-gchar*" "first_property_name")
    '("va_list" "var_args")
  )
)

(define-method child_get_valist
  (of-object "GtkContainer")
  (c-name "gtk_container_child_get_valist")
  (return-type "none")
  (parameters
    '("GtkWidget*" "child")
    '("const-gchar*" "first_property_name")
    '("va_list" "var_args")
  )
)

(define-method child_set_property
  (of-object "GtkContainer")
  (c-name "gtk_container_child_set_property")
  (return-type "none")
  (parameters
    '("GtkWidget*" "child")
    '("const-gchar*" "property_name")
    '("const-GValue*" "value")
  )
)

(define-method child_get_property
  (of-object "GtkContainer")
  (c-name "gtk_container_child_get_property")
  (return-type "none")
  (parameters
    '("GtkWidget*" "child")
    '("const-gchar*" "property_name")
    '("GValue*" "value")
  )
)

(define-method forall
  (of-object "GtkContainer")
  (c-name "gtk_container_forall")
  (return-type "none")
  (parameters
    '("GtkCallback" "callback")
    '("gpointer" "callback_data")
  )
)

(define-virtual add
  (of-object "GtkContainer")
  (return-type "none")
  (parameters
    '("GtkWidget*" "widget")
  )
)

(define-virtual remove
  (of-object "GtkContainer")
  (return-type "none")
  (parameters
    '("GtkWidget*" "widget")
  )
)

(define-virtual check_resize
  (of-object "GtkContainer")
  (return-type "none")
)

(define-virtual forall
  (of-object "GtkContainer")
  (return-type "none")
  (parameters
    '("gboolean" "include_internals")
    '("GtkCallback" "callback")
    '("gpointer" "callback_data")
  )
)

(define-virtual set_focus_child
  (of-object "GtkContainer")
  (return-type "none")
  (parameters
    '("GtkWidget*" "widget" (null-ok))
  )
)

(define-virtual child_type
  (of-object "GtkContainer")
  (return-type "GType")
)

(define-virtual composite_name
  (of-object "GtkContainer")
  (caller-owns-return #t)
  (return-type "gchar*")
  (parameters
    '("GtkWidget*" "child")
  )
)

(define-virtual set_child_property
  (of-object "GtkContainer")
  (return-type "none")
  (parameters
    '("GtkWidget*" "child")
    '("guint" "property_id")
    '("const-GValue*" "value")
    '("GParamSpec*" "pspec")
  )
)

(define-virtual get_child_property
  (of-object "GtkContainer")
  (return-type "none")
  (parameters
    '("GtkWidget*" "child")
    '("guint" "property_id")
    '("GValue*" "value")
    '("GParamSpec*" "pspec")
  )
)

