sig
  type menu_entry =
      [ `C of string * bool * (bool -> unit)
      | `I of string * (unit -> unit)
      | `M of string * GToolbox.menu_entry list
      | `R of (string * bool * (bool -> unit)) list
      | `S ]
  val build_menu : GMenu.menu -> entries:GToolbox.menu_entry list -> unit
  val popup_menu :
    entries:GToolbox.menu_entry list -> button:int -> time:int32 -> unit
  val question_box :
    title:string ->
    buttons:string list ->
    ?default:int -> ?icon:#GObj.widget -> string -> int
  val message_box :
    title:string -> ?icon:#GObj.widget -> ?ok:string -> string -> unit
  val input_string :
    title:string ->
    ?ok:string -> ?cancel:string -> ?text:string -> string -> string option
  val input_text :
    title:string ->
    ?ok:string -> ?cancel:string -> ?text:string -> string -> string option
  val select_file :
    title:string ->
    ?dir:string Pervasives.ref -> ?filename:string -> unit -> string option
  type 'a tree = [ `L of '| `N of 'a * 'GToolbox.tree list ]
  class ['a] tree_selection :
    tree:'GToolbox.tree ->
    label:('-> string) ->
    info:('-> string) ->
    ?packing:(GObj.widget -> unit) ->
    ?show:bool ->
    unit ->
    object
      val obj : Gtk.widget Gtk.obj
      val mutable selection : 'a option
      method as_widget : Gtk.widget Gtk.obj
      method clear_selection : unit -> unit
      method coerce : GObj.widget
      method destroy : unit -> unit
      method drag : GObj.drag_ops
      method get_oid : int
      method misc : GObj.misc_ops
      method selection : 'a option
      method wtree : GBroken.tree
      method wview : GText.view
    end
  val tree_selection_dialog :
    tree:'GToolbox.tree ->
    label:('-> string) ->
    info:('-> string) ->
    title:string ->
    ?ok:string ->
    ?cancel:string ->
    ?width:int -> ?height:int -> ?show:bool -> unit -> 'a option
  val autosize_clist : 'GList.clist -> unit
end