# Module Glade

    module Glade: sig .. end

    val init : unit -> unit

    type glade_xml = [ `data | `glade_xml ]

    val create : ?file:string ->
           ?data:string ->
           ?root:string -> ?domain:string -> unit -> glade_xml Gtk.obj

    val signal_autoconnect : [> `glade_xml ] Gtk.obj ->
           f:(handler:string ->
              signal:string ->
              after:bool -> ?target:unit Gtk.obj -> unit Gtk.obj -> unit) ->
           unit

    val get_widget : [> `glade_xml ] Gtk.obj -> name:string -> Gtk.widget Gtk.obj

    val get_widget_name : [> `widget ] Gtk.obj -> string

    val get_widget_tree : [> `widget ] Gtk.obj -> glade_xml Gtk.obj

    val get_widget_msg : name:string -> ?info:string -> [> `glade_xml ] Gtk.obj -> Gtk.widget Gtk.obj

    type handler = [ `Custom of Gobject.Closure.argv -> Gobject.data_get list -> unit
           | `Object of string * (unit Gtk.obj -> unit)
           | `Simple of unit -> unit ]

    val gtk_bool : bool -> Gobject.Closure.argv -> 'a -> unit

    val add_handler : name:string -> handler -> unit

    val bind_handlers : ?extra:(string * handler) list ->
           ?warn:bool -> [> `glade_xml ] Gtk.obj -> unit

    val bind_handler : name:string ->
           handler:handler -> ?warn:bool -> [> `glade_xml ] Gtk.obj -> unit

    val print_bindings : Pervasives.out_channel -> [> `glade_xml ] Gtk.obj -> unit

    val trace_handlers : Pervasives.out_channel -> [> `glade_xml ] Gtk.obj -> unit

    class xml : ?trace:Pervasives.out_channel -> ?autoconnect:bool -> glade_xml Gtk.obj -> object .. end