sig
  class scrolled_window :
    Gtk.scrolled_window Gtk.obj ->
    object
      val obj : Gtk.scrolled_window Gtk.obj
      method add : GObj.widget -> unit
      method add_with_viewport : GObj.widget -> unit
      method all_children : GObj.widget list
      method as_widget : Gtk.widget Gtk.obj
      method border_width : int
      method child : 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 focus : GContainer.focus
      method get_oid : int
      method hadjustment : GData.adjustment
      method hpolicy : Gtk.Tags.policy_type
      method misc : GObj.misc_ops
      method placement : Gtk.Tags.corner_type
      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_hpolicy : Gtk.Tags.policy_type -> unit
      method set_placement : Gtk.Tags.corner_type -> unit
      method set_resize_mode : Gtk.Tags.resize_mode -> unit
      method set_shadow_type : Gtk.Tags.shadow_type -> unit
      method set_vadjustment : GData.adjustment -> unit
      method set_vpolicy : Gtk.Tags.policy_type -> unit
      method shadow_type : Gtk.Tags.shadow_type
      method vadjustment : GData.adjustment
      method vpolicy : Gtk.Tags.policy_type
    end
  val scrolled_window :
    ?hadjustment:GData.adjustment ->
    ?vadjustment:GData.adjustment ->
    ?hpolicy:Gtk.Tags.policy_type ->
    ?vpolicy:Gtk.Tags.policy_type ->
    ?placement:Gtk.Tags.corner_type ->
    ?shadow_type:Gtk.Tags.shadow_type ->
    ?border_width:int ->
    ?width:int ->
    ?height:int ->
    ?packing:(GObj.widget -> unit) ->
    ?show:bool -> unit -> GBin.scrolled_window
  class event_box :
    ([> Gtk.event_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 child : 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 misc : GObj.misc_ops
      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 event_box :
    ?border_width:int ->
    ?width:int ->
    ?height:int ->
    ?packing:(GObj.widget -> unit) -> ?show:bool -> unit -> GBin.event_box
  class invisible :
    ([> Gtk.invisible ] 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 child : 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 misc : GObj.misc_ops
      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 invisible :
    ?border_width:int ->
    ?width:int ->
    ?height:int ->
    ?packing:(GObj.widget -> unit) -> ?show:bool -> unit -> GBin.invisible
  class handle_box_signals :
    ([> Gtk.handle_box ] as 'b) Gtk.obj ->
    object ('a)
      val obj : 'Gtk.obj
      method add : callback:(GObj.widget -> unit) -> GtkSignal.id
      method after : 'a
      method child_attached : callback:(GObj.widget -> unit) -> GtkSignal.id
      method child_detached : callback:(GObj.widget -> unit) -> GtkSignal.id
      method destroy : callback:(unit -> unit) -> GtkSignal.id
      method notify_border_width : callback:(int -> unit) -> GtkSignal.id
      method notify_handle_position :
        callback:(Gtk.Tags.position_type -> unit) -> GtkSignal.id
      method notify_resize_mode :
        callback:(GtkEnums.resize_mode -> unit) -> GtkSignal.id
      method notify_shadow_type :
        callback:(Gtk.Tags.shadow_type -> unit) -> GtkSignal.id
      method notify_snap_edge :
        callback:(Gtk.Tags.position_type -> unit) -> GtkSignal.id
      method remove : callback:(GObj.widget -> unit) -> GtkSignal.id
    end
  class handle_box :
    Gtk.handle_box Gtk.obj ->
    object
      val obj : Gtk.handle_box 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 child : GObj.widget
      method children : GObj.widget list
      method coerce : GObj.widget
      method connect : GBin.handle_box_signals
      method destroy : unit -> unit
      method drag : GObj.drag_ops
      method event : GObj.event_ops
      method focus : GContainer.focus
      method get_oid : int
      method handle_position : Gtk.Tags.position_type
      method misc : GObj.misc_ops
      method remove : GObj.widget -> unit
      method resize_mode : Gtk.Tags.resize_mode
      method set_border_width : int -> unit
      method set_handle_position : Gtk.Tags.position_type -> unit
      method set_resize_mode : Gtk.Tags.resize_mode -> unit
      method set_shadow_type : Gtk.Tags.shadow_type -> unit
      method set_snap_edge : Gtk.Tags.position_type -> unit
      method shadow_type : Gtk.Tags.shadow_type
      method snap_edge : Gtk.Tags.position_type
    end
  val handle_box :
    ?handle_position:Gtk.Tags.position_type ->
    ?snap_edge:Gtk.Tags.position_type ->
    ?shadow_type:Gtk.Tags.shadow_type ->
    ?border_width:int ->
    ?width:int ->
    ?height:int ->
    ?packing:(GObj.widget -> unit) -> ?show:bool -> unit -> GBin.handle_box
  class frame_skel :
    ([> Gtk.frame ] 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 child : GObj.widget
      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 label : string option
      method label_widget : GObj.widget option
      method label_xalign : float
      method label_yalign : float
      method misc : GObj.misc_ops
      method remove : GObj.widget -> unit
      method resize_mode : Gtk.Tags.resize_mode
      method set_border_width : int -> unit
      method set_label : string option -> unit
      method set_label_widget : GObj.widget option -> unit
      method set_label_xalign : float -> unit
      method set_label_yalign : float -> unit
      method set_resize_mode : Gtk.Tags.resize_mode -> unit
      method set_shadow_type : Gtk.Tags.shadow_type -> unit
      method shadow_type : Gtk.Tags.shadow_type
    end
  class frame :
    Gtk.frame Gtk.obj ->
    object
      val obj : Gtk.frame 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 child : 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 focus : GContainer.focus
      method get_oid : int
      method label : string option
      method label_widget : GObj.widget option
      method label_xalign : float
      method label_yalign : float
      method misc : GObj.misc_ops
      method remove : GObj.widget -> unit
      method resize_mode : Gtk.Tags.resize_mode
      method set_border_width : int -> unit
      method set_label : string option -> unit
      method set_label_widget : GObj.widget option -> unit
      method set_label_xalign : float -> unit
      method set_label_yalign : float -> unit
      method set_resize_mode : Gtk.Tags.resize_mode -> unit
      method set_shadow_type : Gtk.Tags.shadow_type -> unit
      method shadow_type : Gtk.Tags.shadow_type
    end
  val frame :
    ?label:string ->
    ?label_xalign:Gtk.clampf ->
    ?label_yalign:Gtk.clampf ->
    ?shadow_type:Gtk.Tags.shadow_type ->
    ?border_width:int ->
    ?width:int ->
    ?height:int ->
    ?packing:(GObj.widget -> unit) -> ?show:bool -> unit -> GBin.frame
  class aspect_frame :
    Gtk.aspect_frame Gtk.obj ->
    object
      val obj : Gtk.aspect_frame 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 child : 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 focus : GContainer.focus
      method get_oid : int
      method label : string option
      method label_widget : GObj.widget option
      method label_xalign : float
      method label_yalign : float
      method misc : GObj.misc_ops
      method obey_child : bool
      method ratio : float
      method remove : GObj.widget -> unit
      method resize_mode : Gtk.Tags.resize_mode
      method set_border_width : int -> unit
      method set_label : string option -> unit
      method set_label_widget : GObj.widget option -> unit
      method set_label_xalign : float -> unit
      method set_label_yalign : float -> unit
      method set_obey_child : bool -> unit
      method set_ratio : float -> unit
      method set_resize_mode : Gtk.Tags.resize_mode -> unit
      method set_shadow_type : Gtk.Tags.shadow_type -> unit
      method set_xalign : float -> unit
      method set_yalign : float -> unit
      method shadow_type : Gtk.Tags.shadow_type
      method xalign : float
      method yalign : float
    end
  val aspect_frame :
    ?obey_child:bool ->
    ?ratio:float ->
    ?xalign:Gtk.clampf ->
    ?yalign:Gtk.clampf ->
    ?label:string ->
    ?label_xalign:Gtk.clampf ->
    ?label_yalign:Gtk.clampf ->
    ?shadow_type:Gtk.Tags.shadow_type ->
    ?border_width:int ->
    ?width:int ->
    ?height:int ->
    ?packing:(GObj.widget -> unit) -> ?show:bool -> unit -> GBin.aspect_frame
  class viewport :
    Gtk.viewport Gtk.obj ->
    object
      val obj : Gtk.viewport 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 child : 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 hadjustment : GData.adjustment
      method misc : GObj.misc_ops
      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_resize_mode : Gtk.Tags.resize_mode -> unit
      method set_shadow_type : Gtk.Tags.shadow_type -> unit
      method set_vadjustment : GData.adjustment -> unit
      method shadow_type : Gtk.Tags.shadow_type
      method vadjustment : GData.adjustment
    end
  val viewport :
    ?hadjustment:GData.adjustment ->
    ?vadjustment:GData.adjustment ->
    ?shadow_type:Gtk.Tags.shadow_type ->
    ?border_width:int ->
    ?width:int ->
    ?height:int ->
    ?packing:(GObj.widget -> unit) -> ?show:bool -> unit -> GBin.viewport
  class alignment :
    Gtk.alignment Gtk.obj ->
    object
      val obj : Gtk.alignment 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 bottom_padding : int
      method child : 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 focus : GContainer.focus
      method get_oid : int
      method left_padding : int
      method misc : GObj.misc_ops
      method remove : GObj.widget -> unit
      method resize_mode : Gtk.Tags.resize_mode
      method right_padding : int
      method set_border_width : int -> unit
      method set_bottom_padding : int -> unit
      method set_left_padding : int -> unit
      method set_resize_mode : Gtk.Tags.resize_mode -> unit
      method set_right_padding : int -> unit
      method set_top_padding : int -> unit
      method set_xalign : Gtk.clampf -> unit
      method set_xscale : Gtk.clampf -> unit
      method set_yalign : Gtk.clampf -> unit
      method set_yscale : Gtk.clampf -> unit
      method top_padding : int
      method xalign : Gtk.clampf
      method xscale : Gtk.clampf
      method yalign : Gtk.clampf
      method yscale : Gtk.clampf
    end
  val alignment :
    ?padding:int * int * int * int ->
    ?xalign:Gtk.clampf ->
    ?yalign:Gtk.clampf ->
    ?xscale:Gtk.clampf ->
    ?yscale:Gtk.clampf ->
    ?border_width:int ->
    ?width:int ->
    ?height:int ->
    ?packing:(GObj.widget -> unit) -> ?show:bool -> unit -> GBin.alignment
  val alignment_cast : #GObj.widget -> GBin.alignment
  class expander_signals :
    ([> Gtk.expander ] as 'a) Gtk.obj ->
    object ('b)
      val obj : 'Gtk.obj
      method activate : callback:(unit -> unit) -> GtkSignal.id
      method add : callback:(GObj.widget -> unit) -> GtkSignal.id
      method after : 'b
      method destroy : callback:(unit -> unit) -> GtkSignal.id
      method notify_border_width : callback:(int -> unit) -> GtkSignal.id
      method notify_expanded : callback:(bool -> unit) -> GtkSignal.id
      method notify_label : callback:(string -> unit) -> GtkSignal.id
      method notify_label_widget :
        callback:(GObj.widget -> unit) -> GtkSignal.id
      method notify_resize_mode :
        callback:(GtkEnums.resize_mode -> unit) -> GtkSignal.id
      method notify_spacing : callback:(int -> unit) -> GtkSignal.id
      method notify_use_underline : callback:(bool -> unit) -> GtkSignal.id
      method remove : callback:(GObj.widget -> unit) -> GtkSignal.id
    end
  class expander :
    ([> Gtk.expander ] 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 child : GObj.widget
      method children : GObj.widget list
      method coerce : GObj.widget
      method connect : GBin.expander_signals
      method destroy : unit -> unit
      method drag : GObj.drag_ops
      method expanded : bool
      method focus : GContainer.focus
      method get_oid : int
      method label : string
      method label_widget : GObj.widget
      method misc : GObj.misc_ops
      method remove : GObj.widget -> unit
      method resize_mode : Gtk.Tags.resize_mode
      method set_border_width : int -> unit
      method set_expanded : bool -> unit
      method set_label : string -> unit
      method set_label_widget : GObj.widget -> unit
      method set_resize_mode : Gtk.Tags.resize_mode -> unit
      method set_spacing : int -> unit
      method set_use_underline : bool -> unit
      method spacing : int
      method use_underline : bool
    end
  val expander :
    ?expanded:bool ->
    ?label:string ->
    ?spacing:int ->
    ?use_underline:bool ->
    ?border_width:int ->
    ?width:int ->
    ?height:int ->
    ?packing:(GObj.widget -> unit) -> ?show:bool -> unit -> GBin.expander
end