sig
  class editable_signals :
    [> Gtk.editable ] Gtk.obj ->
    object ('a)
      method after : 'a
      method changed : 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 Pervasives.ref -> unit) -> GtkSignal.id
    end
  class editable :
    ([> Gtk.editable ] as 'a) Gtk.obj ->
    object
      val obj : 'Gtk.obj
      method as_widget : Gtk.widget Gtk.obj
      method coerce : GObj.widget
      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 get_chars : start:int -> stop:int -> string
      method get_oid : int
      method insert_text : string -> pos:int -> int
      method misc : GObj.misc_ops
      method private obj : 'Gtk.obj
      method paste_clipboard : unit -> unit
      method position : int
      method select_region : start:int -> stop:int -> unit
      method selection : (int * int) option
      method set_editable : bool -> unit
      method set_position : int -> unit
    end
  class entry_completion_signals :
    [> `entrycompletion ] Gtk.obj ->
    object ('a)
      method action_activated : callback:(int -> unit) -> GtkSignal.id
      method after : 'a
      method match_selected :
        callback:(GTree.model_filter -> Gtk.tree_iter -> bool) ->
        GtkSignal.id
    end
  class entry_completion :
    ([> `celllayout | `entrycompletion ] as 'a) Gtk.obj ->
    object
      val obj : 'Gtk.obj
      method add_attribute :
        #GTree.cell_renderer -> string -> 'GTree.column -> unit
      method as_entry_completion : Gtk.entry_completion
      method clear : unit -> unit
      method clear_attributes : #GTree.cell_renderer -> unit
      method complete : unit -> unit
      method connect : GEdit.entry_completion_signals
      method delete_action : int -> unit
      method get_entry : GObj.widget option
      method insert_action_markup : int -> string -> unit
      method insert_action_text : int -> string -> unit
      method minimum_key_length : int
      method misc : GObj.gobject_ops
      method model : GTree.model
      method pack :
        ?expand:bool ->
        ?from:Gtk.Tags.pack_type -> #GTree.cell_renderer -> unit
      method reorder : #GTree.cell_renderer -> int -> unit
      method set_cell_data_func :
        #GTree.cell_renderer ->
        (GTree.model -> Gtk.tree_iter -> unit) -> unit
      method set_match_func : (string -> Gtk.tree_iter -> bool) -> unit
      method set_minimum_key_length : int -> unit
      method set_model : GTree.model -> unit
      method set_text_column : string GTree.column -> unit
      method unset_cell_data_func : #GTree.cell_renderer -> unit
    end
  class entry_signals :
    [> Gtk.entry ] Gtk.obj ->
    object ('a)
      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_from_cursor :
        callback:(Gtk.Tags.delete_type -> int -> unit) -> GtkSignal.id
      method delete_text :
        callback:(start:int -> stop:int -> unit) -> GtkSignal.id
      method destroy : callback:(unit -> unit) -> GtkSignal.id
      method insert_at_cursor : callback:(string -> unit) -> GtkSignal.id
      method insert_text :
        callback:(string -> pos:int ref -> unit) -> GtkSignal.id
      method move_cursor :
        callback:(Gtk.Tags.movement_step -> int -> extend:bool -> unit) ->
        GtkSignal.id
      method paste_clipboard : callback:(unit -> unit) -> GtkSignal.id
      method populate_popup : callback:(GMenu.menu -> unit) -> GtkSignal.id
      method toggle_overwrite : callback:(unit -> unit) -> GtkSignal.id
    end
  class entry :
    ([> Gtk.entry ] as 'a) Gtk.obj ->
    object
      val obj : 'Gtk.obj
      method activates_default : bool
      method append_text : string -> unit
      method as_widget : Gtk.widget Gtk.obj
      method coerce : GObj.widget
      method connect : GEdit.entry_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 get_chars : start:int -> stop:int -> string
      method get_completion : GEdit.entry_completion option
      method get_oid : int
      method has_frame : bool
      method insert_text : string -> pos:int -> int
      method invisible_char : int
      method max_length : int
      method misc : GObj.misc_ops
      method private obj : 'Gtk.obj
      method paste_clipboard : unit -> unit
      method position : int
      method prepend_text : string -> unit
      method scroll_offset : int
      method select_region : start:int -> stop:int -> unit
      method selection : (int * int) option
      method set_activates_default : bool -> unit
      method set_completion : GEdit.entry_completion -> unit
      method set_editable : bool -> unit
      method set_has_frame : bool -> unit
      method set_invisible_char : int -> unit
      method set_max_length : int -> unit
      method set_position : int -> unit
      method set_text : string -> unit
      method set_visibility : bool -> unit
      method set_width_chars : int -> unit
      method set_xalign : float -> unit
      method text : string
      method text_length : int
      method visibility : bool
      method width_chars : int
      method xalign : float
    end
  val entry :
    ?text:string ->
    ?visibility:bool ->
    ?max_length:int ->
    ?activates_default:bool ->
    ?editable:bool ->
    ?has_frame:bool ->
    ?width_chars:int ->
    ?xalign:float ->
    ?width:int ->
    ?height:int ->
    ?packing:(GObj.widget -> unit) -> ?show:bool -> unit -> GEdit.entry
  val entry_completion :
    ?model:#GTree.model ->
    ?minimum_key_length:int ->
    ?entry:GEdit.entry -> unit -> GEdit.entry_completion
  class spin_button_signals :
    [> Gtk.spin_button ] Gtk.obj ->
    object ('a)
      method activate : callback:(unit -> unit) -> GtkSignal.id
      method after : 'a
      method change_value :
        callback:(Gtk.Tags.scroll_type -> unit) -> GtkSignal.id
      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_from_cursor :
        callback:(Gtk.Tags.delete_type -> int -> unit) -> GtkSignal.id
      method delete_text :
        callback:(start:int -> stop:int -> unit) -> GtkSignal.id
      method destroy : callback:(unit -> unit) -> GtkSignal.id
      method input : callback:(unit -> int) -> GtkSignal.id
      method insert_at_cursor : callback:(string -> unit) -> GtkSignal.id
      method insert_text :
        callback:(string -> pos:int ref -> unit) -> GtkSignal.id
      method move_cursor :
        callback:(Gtk.Tags.movement_step -> int -> extend:bool -> unit) ->
        GtkSignal.id
      method output : callback:(unit -> bool) -> GtkSignal.id
      method paste_clipboard : callback:(unit -> unit) -> GtkSignal.id
      method populate_popup : callback:(GMenu.menu -> unit) -> GtkSignal.id
      method toggle_overwrite : callback:(unit -> unit) -> GtkSignal.id
      method value_changed : callback:(unit -> unit) -> GtkSignal.id
      method wrapped : callback:(unit -> unit) -> GtkSignal.id
    end
  class spin_button :
    Gtk.spin_button Gtk.obj ->
    object
      val obj : Gtk.spin_button Gtk.obj
      method adjustment : GData.adjustment
      method as_widget : Gtk.widget Gtk.obj
      method coerce : GObj.widget
      method connect : GEdit.spin_button_signals
      method destroy : unit -> unit
      method digits : int
      method drag : GObj.drag_ops
      method event : GObj.event_ops
      method get_oid : int
      method misc : GObj.misc_ops
      method numeric : bool
      method rate : float
      method set_adjustment : GData.adjustment -> unit
      method set_digits : int -> unit
      method set_numeric : bool -> unit
      method set_rate : float -> unit
      method set_snap_to_ticks : bool -> unit
      method set_update_policy : [ `ALWAYS | `IF_VALID ] -> unit
      method set_value : float -> unit
      method set_wrap : bool -> unit
      method snap_to_ticks : bool
      method spin : Gtk.Tags.spin_type -> unit
      method update : unit
      method update_policy : [ `ALWAYS | `IF_VALID ]
      method value : float
      method value_as_int : int
      method wrap : bool
    end
  val spin_button :
    ?adjustment:GData.adjustment ->
    ?rate:float ->
    ?digits:int ->
    ?numeric:bool ->
    ?snap_to_ticks:bool ->
    ?update_policy:[ `ALWAYS | `IF_VALID ] ->
    ?value:float ->
    ?wrap:bool ->
    ?width:int ->
    ?height:int ->
    ?packing:(GObj.widget -> unit) -> ?show:bool -> unit -> GEdit.spin_button
  class combo :
    Gtk.combo Gtk.obj ->
    object
      val obj : Gtk.combo Gtk.obj
      method allow_empty : bool
      method as_widget : Gtk.widget Gtk.obj
      method case_sensitive : bool
      method coerce : GObj.widget
      method destroy : unit -> unit
      method disable_activate : unit -> unit
      method drag : GObj.drag_ops
      method enable_arrow_keys : bool
      method entry : GEdit.entry
      method get_oid : int
      method list : GList.liste
      method misc : GObj.misc_ops
      method set_allow_empty : bool -> unit
      method set_case_sensitive : bool -> unit
      method set_enable_arrow_keys : bool -> unit
      method set_item_string : GList.list_item -> string -> unit
      method set_popdown_strings : string list -> unit
      method set_value_in_list : bool -> unit
      method value_in_list : bool
    end
  val combo :
    ?popdown_strings:string list ->
    ?allow_empty:bool ->
    ?case_sensitive:bool ->
    ?enable_arrow_keys:bool ->
    ?value_in_list:bool ->
    ?border_width:int ->
    ?width:int ->
    ?height:int ->
    ?packing:(GObj.widget -> unit) -> ?show:bool -> unit -> GEdit.combo
  class combo_box_signals :
    [> Gtk.combo_box ] Gtk.obj ->
    object ('a)
      method add : callback:(GObj.widget -> unit) -> GtkSignal.id
      method after : 'a
      method changed : callback:(unit -> unit) -> GtkSignal.id
      method destroy : callback:(unit -> unit) -> GtkSignal.id
      method remove : callback:(GObj.widget -> unit) -> GtkSignal.id
    end
  class combo_box :
    ([> Gtk.combo_box ] as 'a) Gtk.obj ->
    object
      val obj : 'Gtk.obj
      method active : int
      method active_iter : Gtk.tree_iter option
      method add : GObj.widget -> unit
      method add_attribute :
        #GTree.cell_renderer -> string -> 'GTree.column -> unit
      method add_tearoffs : bool
      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 clear : unit -> unit
      method clear_attributes : #GTree.cell_renderer -> unit
      method coerce : GObj.widget
      method connect : GEdit.combo_box_signals
      method destroy : unit -> unit
      method drag : GObj.drag_ops
      method event : GObj.event_ops
      method focus : GContainer.focus
      method focus_on_click : bool
      method get_oid : int
      method has_frame : bool
      method misc : GObj.misc_ops
      method model : GTree.model
      method pack :
        ?expand:bool ->
        ?from:Gtk.Tags.pack_type -> #GTree.cell_renderer -> unit
      method remove : GObj.widget -> unit
      method reorder : #GTree.cell_renderer -> int -> unit
      method resize_mode : Gtk.Tags.resize_mode
      method set_active : int -> unit
      method set_active_iter : Gtk.tree_iter option -> unit
      method set_add_tearoffs : bool -> unit
      method set_border_width : int -> unit
      method set_cell_data_func :
        #GTree.cell_renderer ->
        (GTree.model -> Gtk.tree_iter -> unit) -> unit
      method set_column_span_column : int GTree.column -> unit
      method set_focus_on_click : bool -> unit
      method set_has_frame : bool -> unit
      method set_model : GTree.model -> unit
      method set_resize_mode : Gtk.Tags.resize_mode -> unit
      method set_row_separator_func :
        (GTree.model -> Gtk.tree_iter -> bool) option -> unit
      method set_row_span_column : int GTree.column -> unit
      method set_wrap_width : int -> unit
      method unset_cell_data_func : #GTree.cell_renderer -> unit
      method wrap_width : int
    end
  val combo_box :
    ?model:#GTree.model ->
    ?active:int ->
    ?add_tearoffs:bool ->
    ?focus_on_click:bool ->
    ?has_frame:bool ->
    ?wrap_width:int ->
    ?width:int ->
    ?height:int ->
    ?packing:(GObj.widget -> unit) -> ?show:bool -> unit -> GEdit.combo_box
  class combo_box_entry :
    ([> Gtk.combo_box_entry ] as 'a) Gtk.obj ->
    object
      val obj : 'Gtk.obj
      method active : int
      method active_iter : Gtk.tree_iter option
      method add : GObj.widget -> unit
      method add_attribute :
        #GTree.cell_renderer -> string -> 'GTree.column -> unit
      method add_tearoffs : bool
      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 clear : unit -> unit
      method clear_attributes : #GTree.cell_renderer -> unit
      method coerce : GObj.widget
      method connect : combo_box_signals
      method destroy : unit -> unit
      method drag : GObj.drag_ops
      method entry : GEdit.entry
      method event : GObj.event_ops
      method focus : GContainer.focus
      method focus_on_click : bool
      method get_oid : int
      method has_frame : bool
      method misc : GObj.misc_ops
      method model : GTree.model
      method pack :
        ?expand:bool ->
        ?from:Gtk.Tags.pack_type -> #GTree.cell_renderer -> unit
      method remove : GObj.widget -> unit
      method reorder : #GTree.cell_renderer -> int -> unit
      method resize_mode : Gtk.Tags.resize_mode
      method set_active : int -> unit
      method set_active_iter : Gtk.tree_iter option -> unit
      method set_add_tearoffs : bool -> unit
      method set_border_width : int -> unit
      method set_cell_data_func :
        #GTree.cell_renderer ->
        (GTree.model -> Gtk.tree_iter -> unit) -> unit
      method set_column_span_column : int GTree.column -> unit
      method set_focus_on_click : bool -> unit
      method set_has_frame : bool -> unit
      method set_model : GTree.model -> unit
      method set_resize_mode : Gtk.Tags.resize_mode -> unit
      method set_row_separator_func :
        (GTree.model -> Gtk.tree_iter -> bool) option -> unit
      method set_row_span_column : int GTree.column -> unit
      method set_text_column : string GTree.column -> unit
      method set_wrap_width : int -> unit
      method text_column : string GTree.column
      method unset_cell_data_func : #GTree.cell_renderer -> unit
      method wrap_width : int
    end
  val combo_box_entry :
    ?model:#GTree.model ->
    ?text_column:string GTree.column ->
    ?active:int ->
    ?add_tearoffs:bool ->
    ?focus_on_click:bool ->
    ?has_frame:bool ->
    ?wrap_width:int ->
    ?width:int ->
    ?height:int ->
    ?packing:(GObj.widget -> unit) ->
    ?show:bool -> unit -> GEdit.combo_box_entry
  type 'a text_combo = 'a * (GTree.list_store * string GTree.column)
    constraint 'a = #GEdit.combo_box
  val text_combo_add : #GEdit.combo_box GEdit.text_combo -> string -> unit
  val text_combo_get_active :
    #GEdit.combo_box GEdit.text_combo -> string option
  val combo_box_text :
    ?strings:string list ->
    ?use_markup:bool ->
    ?active:int ->
    ?add_tearoffs:bool ->
    ?focus_on_click:bool ->
    ?has_frame:bool ->
    ?wrap_width:int ->
    ?width:int ->
    ?height:int ->
    ?packing:(GObj.widget -> unit) ->
    ?show:bool -> unit -> GEdit.combo_box GEdit.text_combo
  val combo_box_entry_text :
    ?strings:string list ->
    ?active:int ->
    ?add_tearoffs:bool ->
    ?focus_on_click:bool ->
    ?has_frame:bool ->
    ?wrap_width:int ->
    ?width:int ->
    ?height:int ->
    ?packing:(GObj.widget -> unit) ->
    ?show:bool -> unit -> GEdit.combo_box_entry GEdit.text_combo
end