sig
  class box_skel :
    ([> Gtk.box ] as 'a) Gtk.obj ->
    object
      val obj : 'Gtk.obj
      method add : GObj.widget -> unit
      method all_children : GObj.widget list
      method as_widget : Gtk.widget Gtk.obj
      method border_width : int
      method children : GObj.widget list
      method coerce : GObj.widget
      method destroy : unit -> unit
      method drag : GObj.drag_ops
      method focus : GContainer.focus
      method get_oid : int
      method homogeneous : bool
      method misc : GObj.misc_ops
      method pack :
        ?from:Gtk.Tags.pack_type ->
        ?expand:bool -> ?fill:bool -> ?padding:int -> GObj.widget -> unit
      method remove : GObj.widget -> unit
      method reorder_child : GObj.widget -> pos:int -> unit
      method resize_mode : Gtk.Tags.resize_mode
      method set_border_width : int -> unit
      method set_child_packing :
        ?from:Gtk.Tags.pack_type ->
        ?expand:bool -> ?fill:bool -> ?padding:int -> GObj.widget -> unit
      method set_homogeneous : bool -> unit
      method set_resize_mode : Gtk.Tags.resize_mode -> unit
      method set_spacing : int -> unit
      method spacing : int
    end
  class box :
    ([> Gtk.box ] as 'a) Gtk.obj ->
    object
      val obj : 'Gtk.obj
      method add : GObj.widget -> unit
      method all_children : GObj.widget list
      method as_widget : Gtk.widget Gtk.obj
      method border_width : int
      method children : GObj.widget list
      method coerce : GObj.widget
      method connect : GContainer.container_signals
      method destroy : unit -> unit
      method drag : GObj.drag_ops
      method focus : GContainer.focus
      method get_oid : int
      method homogeneous : bool
      method misc : GObj.misc_ops
      method pack :
        ?from:Gtk.Tags.pack_type ->
        ?expand:bool -> ?fill:bool -> ?padding:int -> GObj.widget -> unit
      method remove : GObj.widget -> unit
      method reorder_child : GObj.widget -> pos:int -> unit
      method resize_mode : Gtk.Tags.resize_mode
      method set_border_width : int -> unit
      method set_child_packing :
        ?from:Gtk.Tags.pack_type ->
        ?expand:bool -> ?fill:bool -> ?padding:int -> GObj.widget -> unit
      method set_homogeneous : bool -> unit
      method set_resize_mode : Gtk.Tags.resize_mode -> unit
      method set_spacing : int -> unit
      method spacing : int
    end
  val box :
    Gtk.Tags.orientation ->
    ?homogeneous:bool ->
    ?spacing:int ->
    ?border_width:int ->
    ?width:int ->
    ?height:int ->
    ?packing:(GObj.widget -> unit) -> ?show:bool -> unit -> GPack.box
  val vbox :
    ?homogeneous:bool ->
    ?spacing:int ->
    ?border_width:int ->
    ?width:int ->
    ?height:int ->
    ?packing:(GObj.widget -> unit) -> ?show:bool -> unit -> GPack.box
  val hbox :
    ?homogeneous:bool ->
    ?spacing:int ->
    ?border_width:int ->
    ?width:int ->
    ?height:int ->
    ?packing:(GObj.widget -> unit) -> ?show:bool -> unit -> GPack.box
  class button_box :
    ([> Gtk.button_box ] as 'a) Gtk.obj ->
    object
      val obj : 'Gtk.obj
      method add : GObj.widget -> unit
      method all_children : GObj.widget list
      method as_widget : Gtk.widget Gtk.obj
      method border_width : int
      method children : GObj.widget list
      method coerce : GObj.widget
      method connect : GContainer.container_signals
      method destroy : unit -> unit
      method drag : GObj.drag_ops
      method focus : GContainer.focus
      method get_child_secondary : GObj.widget -> bool
      method get_oid : int
      method homogeneous : bool
      method layout : Gtk.Tags.button_box_style
      method misc : GObj.misc_ops
      method pack :
        ?from:Gtk.Tags.pack_type ->
        ?expand:bool -> ?fill:bool -> ?padding:int -> GObj.widget -> unit
      method remove : GObj.widget -> unit
      method reorder_child : GObj.widget -> pos:int -> unit
      method resize_mode : Gtk.Tags.resize_mode
      method set_border_width : int -> unit
      method set_child_packing :
        ?from:Gtk.Tags.pack_type ->
        ?expand:bool -> ?fill:bool -> ?padding:int -> GObj.widget -> unit
      method set_child_secondary : GObj.widget -> bool -> unit
      method set_homogeneous : bool -> unit
      method set_layout : Gtk.Tags.button_box_style -> unit
      method set_resize_mode : Gtk.Tags.resize_mode -> unit
      method set_spacing : int -> unit
      method spacing : int
    end
  val button_box :
    Gtk.Tags.orientation ->
    ?spacing:int ->
    ?layout:Gtk.Tags.button_box_style ->
    ?border_width:int ->
    ?width:int ->
    ?height:int ->
    ?packing:(GObj.widget -> unit) -> ?show:bool -> unit -> GPack.button_box
  class table :
    Gtk.table Gtk.obj ->
    object
      val obj : Gtk.table Gtk.obj
      method add : GObj.widget -> unit
      method all_children : GObj.widget list
      method as_widget : Gtk.widget Gtk.obj
      method attach :
        left:int ->
        top:int ->
        ?right:int ->
        ?bottom:int ->
        ?expand:Gtk.Tags.expand_type ->
        ?fill:Gtk.Tags.expand_type ->
        ?shrink:Gtk.Tags.expand_type ->
        ?xpadding:int -> ?ypadding:int -> GObj.widget -> unit
      method border_width : int
      method children : GObj.widget list
      method coerce : GObj.widget
      method col_spacings : int
      method columns : int
      method connect : GContainer.container_signals
      method destroy : unit -> unit
      method drag : GObj.drag_ops
      method focus : GContainer.focus
      method get_oid : int
      method homogeneous : bool
      method misc : GObj.misc_ops
      method remove : GObj.widget -> unit
      method resize_mode : Gtk.Tags.resize_mode
      method row_spacings : int
      method rows : int
      method set_border_width : int -> unit
      method set_col_spacing : int -> int -> unit
      method set_col_spacings : int -> unit
      method set_columns : int -> unit
      method set_homogeneous : bool -> unit
      method set_resize_mode : Gtk.Tags.resize_mode -> unit
      method set_row_spacing : int -> int -> unit
      method set_row_spacings : int -> unit
      method set_rows : int -> unit
    end
  val table :
    ?columns:int ->
    ?rows:int ->
    ?homogeneous:bool ->
    ?row_spacings:int ->
    ?col_spacings:int ->
    ?border_width:int ->
    ?width:int ->
    ?height:int ->
    ?packing:(GObj.widget -> unit) -> ?show:bool -> unit -> GPack.table
  class grid :
    Gtk.grid Gtk.obj ->
    object
      val obj : Gtk.grid Gtk.obj
      method add : GObj.widget -> unit
      method all_children : GObj.widget list
      method as_widget : Gtk.widget Gtk.obj
      method attach :
        left:int ->
        top:int -> ?width:int -> ?height:int -> GObj.widget -> unit
      method baseline_row : int
      method border_width : int
      method children : GObj.widget list
      method coerce : GObj.widget
      method col_homogeneous : bool
      method col_spacings : int
      method connect : GContainer.container_signals
      method destroy : unit -> unit
      method drag : GObj.drag_ops
      method focus : GContainer.focus
      method get_oid : int
      method misc : GObj.misc_ops
      method remove : GObj.widget -> unit
      method resize_mode : Gtk.Tags.resize_mode
      method row_homogeneous : bool
      method row_spacings : int
      method set_baseline_row : int -> unit
      method set_border_width : int -> unit
      method set_col_homogeneous : bool -> unit
      method set_col_spacings : int -> unit
      method set_resize_mode : Gtk.Tags.resize_mode -> unit
      method set_row_homogeneous : bool -> unit
      method set_row_spacings : int -> unit
    end
  val grid :
    ?baseline_row:int ->
    ?row_homogeneous:bool ->
    ?col_homogeneous:bool ->
    ?row_spacings:int ->
    ?col_spacings:int ->
    ?border_width:int ->
    ?width:int ->
    ?height:int ->
    ?packing:(GObj.widget -> unit) -> ?show:bool -> unit -> GPack.grid
  class fixed :
    Gtk.fixed Gtk.obj ->
    object
      val obj : Gtk.fixed Gtk.obj
      method add : GObj.widget -> unit
      method all_children : GObj.widget list
      method as_widget : Gtk.widget Gtk.obj
      method border_width : int
      method children : GObj.widget list
      method coerce : GObj.widget
      method connect : GContainer.container_signals
      method destroy : unit -> unit
      method drag : GObj.drag_ops
      method event : GObj.event_ops
      method focus : GContainer.focus
      method get_oid : int
      method misc : GObj.misc_ops
      method move : GObj.widget -> x:int -> y:int -> unit
      method put : GObj.widget -> x:int -> y:int -> unit
      method remove : GObj.widget -> unit
      method resize_mode : Gtk.Tags.resize_mode
      method set_border_width : int -> unit
      method set_resize_mode : Gtk.Tags.resize_mode -> unit
    end
  val fixed :
    ?border_width:int ->
    ?width:int ->
    ?height:int ->
    ?packing:(GObj.widget -> unit) -> ?show:bool -> unit -> GPack.fixed
  class layout :
    ([> Gtk.layout ] as 'a) Gtk.obj ->
    object
      val obj : 'Gtk.obj
      method add : GObj.widget -> unit
      method all_children : GObj.widget list
      method as_widget : Gtk.widget Gtk.obj
      method bin_window : Gdk.window
      method border_width : int
      method children : GObj.widget list
      method coerce : GObj.widget
      method connect : GContainer.container_signals
      method destroy : unit -> unit
      method drag : GObj.drag_ops
      method event : GObj.event_ops
      method focus : GContainer.focus
      method get_oid : int
      method hadjustment : GData.adjustment
      method height : int
      method misc : GObj.misc_ops
      method move : GObj.widget -> x:int -> y:int -> unit
      method put : GObj.widget -> x:int -> y:int -> unit
      method remove : GObj.widget -> unit
      method resize_mode : Gtk.Tags.resize_mode
      method set_border_width : int -> unit
      method set_hadjustment : GData.adjustment -> unit
      method set_height : int -> unit
      method set_resize_mode : Gtk.Tags.resize_mode -> unit
      method set_vadjustment : GData.adjustment -> unit
      method set_width : int -> unit
      method vadjustment : GData.adjustment
      method width : int
    end
  val layout :
    ?hadjustment:GData.adjustment ->
    ?vadjustment:GData.adjustment ->
    ?layout_width:int ->
    ?layout_height:int ->
    ?border_width:int ->
    ?width:int ->
    ?height:int ->
    ?packing:(GObj.widget -> unit) -> ?show:bool -> unit -> GPack.layout
  class notebook_signals :
    [> Gtk.notebook ] Gtk.obj ->
    object ('a)
      method add : callback:(GObj.widget -> unit) -> GtkSignal.id
      method after : 'a
      method change_current_page : callback:(int -> unit) -> GtkSignal.id
      method create_window :
        callback:(page:GObj.widget -> x:int -> y:int -> unit) -> GtkSignal.id
      method destroy : callback:(unit -> unit) -> GtkSignal.id
      method move_focus_out :
        callback:(GtkEnums.direction_type -> unit) -> GtkSignal.id
      method notify_border_width : callback:(int -> unit) -> GtkSignal.id
      method notify_enable_popup : callback:(bool -> unit) -> GtkSignal.id
      method notify_group_name : callback:(string -> unit) -> GtkSignal.id
      method notify_resize_mode :
        callback:(GtkEnums.resize_mode -> unit) -> GtkSignal.id
      method notify_scrollable : callback:(bool -> unit) -> GtkSignal.id
      method notify_show_border : callback:(bool -> unit) -> GtkSignal.id
      method notify_show_tabs : callback:(bool -> unit) -> GtkSignal.id
      method notify_tab_pos :
        callback:(GtkEnums.position_type -> unit) -> GtkSignal.id
      method page_added :
        callback:(GObj.widget -> int -> unit) -> GtkSignal.id
      method page_removed :
        callback:(GObj.widget -> int -> unit) -> GtkSignal.id
      method page_reordered :
        callback:(GObj.widget -> int -> unit) -> GtkSignal.id
      method remove : callback:(GObj.widget -> unit) -> GtkSignal.id
      method reorder_tab :
        callback:(GtkEnums.direction_type -> bool -> unit) -> GtkSignal.id
      method select_page : callback:(bool -> unit) -> GtkSignal.id
      method switch_page : callback:(int -> unit) -> GtkSignal.id
    end
  class notebook :
    Gtk.notebook Gtk.obj ->
    object
      val obj : Gtk.notebook Gtk.obj
      method add : GObj.widget -> unit
      method all_children : GObj.widget list
      method append_page :
        ?tab_label:GObj.widget ->
        ?menu_label:GObj.widget -> GObj.widget -> int
      method as_notebook : Gtk.notebook Gtk.obj
      method as_widget : Gtk.widget Gtk.obj
      method border_width : int
      method children : GObj.widget list
      method coerce : GObj.widget
      method connect : GPack.notebook_signals
      method current_page : int
      method destroy : unit -> unit
      method drag : GObj.drag_ops
      method enable_popup : bool
      method event : GObj.event_ops
      method focus : GContainer.focus
      method get_menu_label : GObj.widget -> GObj.widget
      method get_nth_page : int -> GObj.widget
      method get_oid : int
      method get_tab_label : GObj.widget -> GObj.widget
      method get_tab_reorderable : GObj.widget -> bool
      method goto_page : int -> unit
      method group_name : string
      method insert_page :
        ?tab_label:GObj.widget ->
        ?menu_label:GObj.widget -> ?pos:int -> GObj.widget -> int
      method misc : GObj.misc_ops
      method next_page : unit -> unit
      method page_num : GObj.widget -> int
      method prepend_page :
        ?tab_label:GObj.widget ->
        ?menu_label:GObj.widget -> GObj.widget -> int
      method previous_page : unit -> unit
      method remove : GObj.widget -> unit
      method remove_page : int -> unit
      method reorder_child : GObj.widget -> int -> unit
      method resize_mode : Gtk.Tags.resize_mode
      method scrollable : bool
      method set_border_width : int -> unit
      method set_enable_popup : bool -> unit
      method set_group_name : string -> unit
      method set_page :
        ?tab_label:GObj.widget ->
        ?menu_label:GObj.widget -> GObj.widget -> unit
      method set_resize_mode : Gtk.Tags.resize_mode -> unit
      method set_scrollable : bool -> unit
      method set_show_border : bool -> unit
      method set_show_tabs : bool -> unit
      method set_tab_pos : Gtk.Tags.position_type -> unit
      method set_tab_reorderable : GObj.widget -> bool -> unit
      method show_border : bool
      method show_tabs : bool
      method tab_pos : Gtk.Tags.position_type
    end
  val notebook :
    ?enable_popup:bool ->
    ?group_name:string ->
    ?scrollable:bool ->
    ?show_border:bool ->
    ?show_tabs:bool ->
    ?tab_pos:Gtk.Tags.position_type ->
    ?border_width:int ->
    ?width:int ->
    ?height:int ->
    ?packing:(GObj.widget -> unit) -> ?show:bool -> unit -> GPack.notebook
  class paned :
    Gtk.paned Gtk.obj ->
    object
      val obj : Gtk.paned Gtk.obj
      method add : GObj.widget -> unit
      method add1 : GObj.widget -> unit
      method add2 : GObj.widget -> unit
      method all_children : GObj.widget list
      method as_widget : Gtk.widget Gtk.obj
      method border_width : int
      method child1 : GObj.widget
      method child2 : GObj.widget
      method children : GObj.widget list
      method coerce : GObj.widget
      method connect : GContainer.container_signals
      method destroy : unit -> unit
      method drag : GObj.drag_ops
      method event : GObj.event_ops
      method focus : GContainer.focus
      method get_oid : int
      method max_position : int
      method min_position : int
      method misc : GObj.misc_ops
      method pack1 : ?resize:bool -> ?shrink:bool -> GObj.widget -> unit
      method pack2 : ?resize:bool -> ?shrink:bool -> GObj.widget -> unit
      method position : int
      method remove : GObj.widget -> unit
      method resize_mode : Gtk.Tags.resize_mode
      method set_border_width : int -> unit
      method set_position : int -> unit
      method set_resize_mode : Gtk.Tags.resize_mode -> unit
    end
  val paned :
    Gtk.Tags.orientation ->
    ?border_width:int ->
    ?width:int ->
    ?height:int ->
    ?packing:(GObj.widget -> unit) -> ?show:bool -> unit -> GPack.paned
end