sig
  class tree_item_signals :
    Gtk.tree_item Gtk.obj ->
    object ('a)
      method add : callback:(GObj.widget -> unit) -> GtkSignal.id
      method after : 'a
      method collapse : callback:(unit -> unit) -> GtkSignal.id
      method deselect : callback:(unit -> unit) -> GtkSignal.id
      method destroy : callback:(unit -> unit) -> GtkSignal.id
      method expand : callback:(unit -> unit) -> GtkSignal.id
      method remove : callback:(GObj.widget -> unit) -> GtkSignal.id
      method select : callback:(unit -> unit) -> GtkSignal.id
      method toggle : callback:(unit -> unit) -> GtkSignal.id
    end
  class tree_item :
    Gtk.tree_item Gtk.obj ->
    object
      val obj : Gtk.tree_item Gtk.obj
      method add : GObj.widget -> unit
      method all_children : GObj.widget list
      method as_item : Gtk.tree_item Gtk.obj
      method as_widget : Gtk.widget Gtk.obj
      method border_width : int
      method children : GObj.widget list
      method coerce : GObj.widget
      method collapse : unit -> unit
      method connect : GBroken.tree_item_signals
      method destroy : unit -> unit
      method drag : GObj.drag_ops
      method event : GObj.event_ops
      method expand : unit -> unit
      method focus : GContainer.focus
      method get_oid : int
      method misc : GObj.misc_ops
      method remove : GObj.widget -> unit
      method remove_subtree : unit -> unit
      method resize_mode : Gtk.Tags.resize_mode
      method set_border_width : int -> unit
      method set_resize_mode : Gtk.Tags.resize_mode -> unit
      method set_subtree : GBroken.tree -> unit
      method subtree : GBroken.tree option
    end
  and tree_signals :
    Gtk.tree Gtk.obj ->
    object ('a)
      val obj : Gtk.tree Gtk.obj
      method add : callback:(GObj.widget -> unit) -> GtkSignal.id
      method after : 'a
      method destroy : callback:(unit -> unit) -> GtkSignal.id
      method remove : callback:(GObj.widget -> unit) -> GtkSignal.id
      method select_child :
        callback:(GBroken.tree_item -> unit) -> GtkSignal.id
      method selection_changed : callback:(unit -> unit) -> GtkSignal.id
      method unselect_child :
        callback:(GBroken.tree_item -> unit) -> GtkSignal.id
    end
  and tree :
    Gtk.tree Gtk.obj ->
    object
      val obj : Gtk.tree Gtk.obj
      method add : GBroken.tree_item -> unit
      method all_children : GBroken.tree_item list
      method append : GBroken.tree_item -> unit
      method as_tree : Gtk.tree Gtk.obj
      method as_widget : Gtk.widget Gtk.obj
      method border_width : int
      method child_position : GBroken.tree_item -> int
      method children : GBroken.tree_item list
      method clear_items : start:int -> stop:int -> unit
      method coerce : GObj.widget
      method connect : GBroken.tree_signals
      method destroy : unit -> unit
      method drag : GObj.drag_ops
      method event : GObj.event_ops
      method focus : GContainer.focus
      method get_oid : int
      method insert : GBroken.tree_item -> pos:int -> unit
      method misc : GObj.misc_ops
      method prepend : GBroken.tree_item -> unit
      method remove : GBroken.tree_item -> unit
      method remove_items : GBroken.tree_item list -> unit
      method resize_mode : Gtk.Tags.resize_mode
      method select_item : pos:int -> unit
      method selection : GBroken.tree_item list
      method set_border_width : int -> unit
      method set_resize_mode : Gtk.Tags.resize_mode -> unit
      method set_selection_mode : Gtk.Tags.selection_mode -> unit
      method set_view_lines : bool -> unit
      method set_view_mode : [ `ITEM | `LINE ] -> unit
      method unselect_item : pos:int -> unit
      method private wrap : Gtk.widget Gtk.obj -> GBroken.tree_item
    end
  val tree_item :
    ?label:string ->
    ?packing:(GBroken.tree_item -> unit) ->
    ?show:bool -> unit -> GBroken.tree_item
  val tree :
    ?selection_mode:Gtk.Tags.selection_mode ->
    ?view_mode:[ `ITEM | `LINE ] ->
    ?view_lines:bool ->
    ?border_width:int ->
    ?width:int ->
    ?height:int ->
    ?packing:(GObj.widget -> unit) -> ?show:bool -> unit -> GBroken.tree
  class old_editable_signals :
    ([> Gtk.old_editable ] as 'b) Gtk.obj ->
    object ('a)
      val obj : 'Gtk.obj
      method activate : callback:(unit -> unit) -> GtkSignal.id
      method after : 'a
      method changed : callback:(unit -> unit) -> GtkSignal.id
      method copy_clipboard : callback:(unit -> unit) -> GtkSignal.id
      method cut_clipboard : callback:(unit -> unit) -> GtkSignal.id
      method delete_text :
        callback:(start:int -> stop:int -> unit) -> GtkSignal.id
      method destroy : callback:(unit -> unit) -> GtkSignal.id
      method insert_text :
        callback:(string -> pos:int ref -> unit) -> GtkSignal.id
      method move_cursor : callback:(int -> int -> unit) -> GtkSignal.id
      method move_page : callback:(int -> unit) -> GtkSignal.id
      method move_to_column : callback:(int -> unit) -> GtkSignal.id
      method move_to_row : callback:(int -> unit) -> GtkSignal.id
      method move_word : callback:(int -> unit) -> GtkSignal.id
      method paste_clipboard : callback:(unit -> unit) -> GtkSignal.id
    end
  class text :
    Gtk.text Gtk.obj ->
    object
      val obj : Gtk.text Gtk.obj
      method as_widget : Gtk.widget Gtk.obj
      method backward_delete : int -> unit
      method coerce : GObj.widget
      method connect : GBroken.old_editable_signals
      method copy_clipboard : unit -> unit
      method cut_clipboard : unit -> unit
      method delete_selection : unit -> unit
      method delete_text : start:int -> stop:int -> unit
      method destroy : unit -> unit
      method drag : GObj.drag_ops
      method editable : bool
      method event : GObj.event_ops
      method forward_delete : int -> unit
      method freeze : unit -> unit
      method get_chars : start:int -> stop:int -> string
      method get_oid : int
      method hadjustment : GData.adjustment
      method insert :
        ?font:Gdk.font ->
        ?foreground:GDraw.color -> ?background:GDraw.color -> string -> unit
      method insert_text : string -> pos:int -> int
      method length : int
      method line_wrap : bool
      method misc : GObj.misc_ops
      method private obj : Gtk.text Gtk.obj
      method paste_clipboard : unit -> unit
      method point : int
      method position : int
      method select_region : start:int -> stop:int -> unit
      method selection : (int * int) option
      method set_editable : bool -> unit
      method set_hadjustment : GData.adjustment -> unit
      method set_line_wrap : bool -> unit
      method set_point : int -> unit
      method set_position : int -> unit
      method set_vadjustment : GData.adjustment -> unit
      method set_word_wrap : bool -> unit
      method thaw : unit -> unit
      method vadjustment : GData.adjustment
      method word_wrap : bool
    end
  val text :
    ?hadjustment:GData.adjustment ->
    ?vadjustment:GData.adjustment ->
    ?editable:bool ->
    ?line_wrap:bool ->
    ?word_wrap:bool ->
    ?packing:(GObj.widget -> unit) -> ?show:bool -> unit -> GBroken.text
end