sig
  val cast : 'Gobject.obj -> Gtk.file_selection Gtk.obj
  module P :
    sig
      val filename : ([> `fileselection ], string) Gobject.property
      val select_multiple : ([> `fileselection ], bool) Gobject.property
      val show_fileops : ([> `fileselection ], bool) Gobject.property
    end
  val make_params :
    cont:(([> `fileselection ] as 'a) Gobject.param list -> 'b) ->
    'Gobject.param list ->
    ?filename:string -> ?select_multiple:bool -> ?show_fileops:bool -> 'b
  external create : string -> Gtk.file_selection Gtk.obj
    = "ml_gtk_file_selection_new"
  external complete : [> `fileselection ] Gtk.obj -> filter:string -> unit
    = "ml_gtk_file_selection_complete"
  external get_ok_button : [> `fileselection ] Gtk.obj -> Gtk.button Gtk.obj
    = "ml_gtk_file_selection_get_ok_button"
  external get_cancel_button :
    [> `fileselection ] Gtk.obj -> Gtk.button Gtk.obj
    = "ml_gtk_file_selection_get_cancel_button"
  external get_help_button :
    [> `fileselection ] Gtk.obj -> Gtk.button Gtk.obj
    = "ml_gtk_file_selection_get_help_button"
  external get_file_list : [> `fileselection ] Gtk.obj -> Gtk.clist Gtk.obj
    = "ml_gtk_file_selection_get_file_list"
  external get_dir_list : [> `fileselection ] Gtk.obj -> Gtk.clist Gtk.obj
    = "ml_gtk_file_selection_get_dir_list"
  external get_selections : [> `fileselection ] Gtk.obj -> string list
    = "ml_gtk_file_selection_get_selections"
end