sig
  class filter :
    ([> Gtk.file_filter ] as 'a) Gtk.obj ->
    object
      val obj : 'Gtk.obj
      method add_custom :
        GtkEnums.file_filter_flags list ->
        callback:((GtkEnums.file_filter_flags * string) list -> bool) -> unit
      method add_mime_type : string -> unit
      method add_pattern : string -> unit
      method as_file_filter : Gtk.file_filter Gtk.obj
      method destroy : unit -> unit
      method get_oid : int
      method name : string
      method set_name : string -> unit
    end
  val filter :
    ?name:string ->
    ?patterns:string list -> ?mime_types:string list -> unit -> GFile.filter
  class type chooser_signals =
    object
      method confirm_overwrite :
        callback:(unit -> GtkEnums.file_chooser_confirmation) -> GtkSignal.id
      method current_folder_changed : callback:(unit -> unit) -> GtkSignal.id
      method file_activated : callback:(unit -> unit) -> GtkSignal.id
      method selection_changed : callback:(unit -> unit) -> GtkSignal.id
      method update_preview : callback:(unit -> unit) -> GtkSignal.id
    end
  class type chooser =
    object
      method action : GtkEnums.file_chooser_action
      method add_filter : GFile.filter -> unit
      method add_shortcut_folder : string -> unit
      method add_shortcut_folder_uri : string -> unit
      method current_folder : string option
      method current_folder_uri : string
      method do_overwrite_confirmation : bool
      method extra_widget : GObj.widget
      method filename : string option
      method filter : GFile.filter
      method get_filenames : string list
      method get_uris : string list
      method list_filters : GFile.filter list
      method list_shortcut_folder_uris : string list
      method list_shortcut_folders : string list
      method local_only : bool
      method preview_filename : string option
      method preview_uri : string option
      method preview_widget : GObj.widget
      method preview_widget_active : bool
      method remove_filter : GFile.filter -> unit
      method remove_shortcut_folder : string -> unit
      method remove_shortcut_folder_uri : string -> unit
      method select_all : unit
      method select_filename : string -> bool
      method select_multiple : bool
      method select_uri : string -> bool
      method set_action : GtkEnums.file_chooser_action -> unit
      method set_current_folder : string -> bool
      method set_current_folder_uri : string -> bool
      method set_current_name : string -> unit
      method set_do_overwrite_confirmation : bool -> unit
      method set_extra_widget : GObj.widget -> unit
      method set_filename : string -> bool
      method set_filter : GFile.filter -> unit
      method set_local_only : bool -> unit
      method set_preview_widget : GObj.widget -> unit
      method set_preview_widget_active : bool -> unit
      method set_select_multiple : bool -> unit
      method set_show_hidden : bool -> unit
      method set_uri : string -> bool
      method set_use_preview_label : bool -> unit
      method show_hidden : bool
      method unselect_all : unit
      method unselect_filename : string -> unit
      method unselect_uri : string -> unit
      method uri : string option
      method use_preview_label : bool
    end
  class chooser_widget_signals :
    [> `filechooser | `gtk | `widget ] Gtk.obj ->
    object ('a)
      method after : 'a
      method confirm_overwrite :
        callback:(unit -> GtkEnums.file_chooser_confirmation) -> GtkSignal.id
      method current_folder_changed : callback:(unit -> unit) -> GtkSignal.id
      method destroy : callback:(unit -> unit) -> GtkSignal.id
      method file_activated : callback:(unit -> unit) -> GtkSignal.id
      method selection_changed : callback:(unit -> unit) -> GtkSignal.id
      method update_preview : callback:(unit -> unit) -> GtkSignal.id
    end
  class chooser_widget :
    ([> `filechooser | `gtk | `widget ] as 'a) Gtk.obj ->
    object
      val obj : 'Gtk.obj
      method action : GtkEnums.file_chooser_action
      method add_filter : filter -> unit
      method add_shortcut_folder : string -> unit
      method add_shortcut_folder_uri : string -> unit
      method as_widget : Gtk.widget Gtk.obj
      method coerce : GObj.widget
      method connect : GFile.chooser_widget_signals
      method current_folder : string option
      method current_folder_uri : string
      method destroy : unit -> unit
      method do_overwrite_confirmation : bool
      method drag : GObj.drag_ops
      method event : GObj.event_ops
      method extra_widget : GObj.widget
      method filename : string option
      method filter : filter
      method get_filenames : string list
      method get_oid : int
      method get_uris : string list
      method list_filters : filter list
      method list_shortcut_folder_uris : string list
      method list_shortcut_folders : string list
      method local_only : bool
      method misc : GObj.misc_ops
      method preview_filename : string option
      method preview_uri : string option
      method preview_widget : GObj.widget
      method preview_widget_active : bool
      method remove_filter : filter -> unit
      method remove_shortcut_folder : string -> unit
      method remove_shortcut_folder_uri : string -> unit
      method select_all : unit
      method select_filename : string -> bool
      method select_multiple : bool
      method select_uri : string -> bool
      method set_action : GtkEnums.file_chooser_action -> unit
      method set_current_folder : string -> bool
      method set_current_folder_uri : string -> bool
      method set_current_name : string -> unit
      method set_do_overwrite_confirmation : bool -> unit
      method set_extra_widget : GObj.widget -> unit
      method set_filename : string -> bool
      method set_filter : filter -> unit
      method set_local_only : bool -> unit
      method set_preview_widget : GObj.widget -> unit
      method set_preview_widget_active : bool -> unit
      method set_select_multiple : bool -> unit
      method set_show_hidden : bool -> unit
      method set_uri : string -> bool
      method set_use_preview_label : bool -> unit
      method show_hidden : bool
      method unselect_all : unit
      method unselect_filename : string -> unit
      method unselect_uri : string -> unit
      method uri : string option
      method use_preview_label : bool
    end
  val chooser_widget :
    action:GtkEnums.file_chooser_action ->
    ?backend:string ->
    ?packing:(GObj.widget -> unit) ->
    ?show:bool -> unit -> GFile.chooser_widget
  class chooser_button_signals :
    [> `container | `filechooser | `gtk | `widget ] Gtk.obj ->
    object ('a)
      method add : callback:(GObj.widget -> unit) -> GtkSignal.id
      method after : 'a
      method confirm_overwrite :
        callback:(unit -> GtkEnums.file_chooser_confirmation) -> GtkSignal.id
      method current_folder_changed : callback:(unit -> unit) -> GtkSignal.id
      method destroy : callback:(unit -> unit) -> GtkSignal.id
      method file_activated : callback:(unit -> unit) -> GtkSignal.id
      method remove : callback:(GObj.widget -> unit) -> GtkSignal.id
      method selection_changed : callback:(unit -> unit) -> GtkSignal.id
      method update_preview : callback:(unit -> unit) -> GtkSignal.id
    end
  class chooser_button :
    ([> Gtk.file_chooser_button ] as 'a) Gtk.obj ->
    object
      val obj : 'Gtk.obj
      method action : GtkEnums.file_chooser_action
      method add : GObj.widget -> unit
      method add_filter : filter -> unit
      method add_shortcut_folder : string -> unit
      method add_shortcut_folder_uri : string -> unit
      method all_children : GObj.widget list
      method as_widget : Gtk.widget Gtk.obj
      method border_width : int
      method children : GObj.widget list
      method coerce : GObj.widget
      method connect : GFile.chooser_button_signals
      method current_folder : string option
      method current_folder_uri : string
      method destroy : unit -> unit
      method do_overwrite_confirmation : bool
      method drag : GObj.drag_ops
      method extra_widget : GObj.widget
      method filename : string option
      method filter : filter
      method focus : GContainer.focus
      method get_filenames : string list
      method get_oid : int
      method get_uris : string list
      method homogeneous : bool
      method list_filters : filter list
      method list_shortcut_folder_uris : string list
      method list_shortcut_folders : string list
      method local_only : bool
      method misc : GObj.misc_ops
      method pack :
        ?from:Gtk.Tags.pack_type ->
        ?expand:bool -> ?fill:bool -> ?padding:int -> GObj.widget -> unit
      method preview_filename : string option
      method preview_uri : string option
      method preview_widget : GObj.widget
      method preview_widget_active : bool
      method remove : GObj.widget -> unit
      method remove_filter : filter -> unit
      method remove_shortcut_folder : string -> unit
      method remove_shortcut_folder_uri : string -> unit
      method reorder_child : GObj.widget -> pos:int -> unit
      method resize_mode : Gtk.Tags.resize_mode
      method select_all : unit
      method select_filename : string -> bool
      method select_multiple : bool
      method select_uri : string -> bool
      method set_action : GtkEnums.file_chooser_action -> unit
      method set_border_width : int -> unit
      method set_child_packing :
        ?from:Gtk.Tags.pack_type ->
        ?expand:bool -> ?fill:bool -> ?padding:int -> GObj.widget -> unit
      method set_current_folder : string -> bool
      method set_current_folder_uri : string -> bool
      method set_current_name : string -> unit
      method set_do_overwrite_confirmation : bool -> unit
      method set_extra_widget : GObj.widget -> unit
      method set_filename : string -> bool
      method set_filter : filter -> unit
      method set_homogeneous : bool -> unit
      method set_local_only : bool -> unit
      method set_preview_widget : GObj.widget -> unit
      method set_preview_widget_active : bool -> unit
      method set_resize_mode : Gtk.Tags.resize_mode -> unit
      method set_select_multiple : bool -> unit
      method set_show_hidden : bool -> unit
      method set_spacing : int -> unit
      method set_title : string -> unit
      method set_uri : string -> bool
      method set_use_preview_label : bool -> unit
      method set_width_chars : int -> unit
      method show_hidden : bool
      method spacing : int
      method title : string
      method unselect_all : unit
      method unselect_filename : string -> unit
      method unselect_uri : string -> unit
      method uri : string option
      method use_preview_label : bool
      method width_chars : int
    end
  val chooser_button :
    action:GtkEnums.file_chooser_action ->
    ?title:string ->
    ?width_chars:int ->
    ?backend:string ->
    ?border_width:int ->
    ?width:int ->
    ?height:int ->
    ?packing:(GObj.widget -> unit) ->
    ?show:bool -> unit -> GFile.chooser_button
  class virtual chooser_impl :
    object
      method action : GtkEnums.file_chooser_action
      method add_filter : filter -> unit
      method add_shortcut_folder : string -> unit
      method add_shortcut_folder_uri : string -> unit
      method current_folder : string option
      method current_folder_uri : string
      method do_overwrite_confirmation : bool
      method extra_widget : GObj.widget
      method filename : string option
      method filter : filter
      method get_filenames : string list
      method get_uris : string list
      method list_filters : filter list
      method list_shortcut_folder_uris : string list
      method list_shortcut_folders : string list
      method local_only : bool
      method private virtual obj : [> Gtk.file_chooser ] Gtk.obj
      method preview_filename : string option
      method preview_uri : string option
      method preview_widget : GObj.widget
      method preview_widget_active : bool
      method remove_filter : filter -> unit
      method remove_shortcut_folder : string -> unit
      method remove_shortcut_folder_uri : string -> unit
      method select_all : unit
      method select_filename : string -> bool
      method select_multiple : bool
      method select_uri : string -> bool
      method set_action : GtkEnums.file_chooser_action -> unit
      method set_current_folder : string -> bool
      method set_current_folder_uri : string -> bool
      method set_current_name : string -> unit
      method set_do_overwrite_confirmation : bool -> unit
      method set_extra_widget : GObj.widget -> unit
      method set_filename : string -> bool
      method set_filter : filter -> unit
      method set_local_only : bool -> unit
      method set_preview_widget : GObj.widget -> unit
      method set_preview_widget_active : bool -> unit
      method set_select_multiple : bool -> unit
      method set_show_hidden : bool -> unit
      method set_uri : string -> bool
      method set_use_preview_label : bool -> unit
      method show_hidden : bool
      method unselect_all : unit
      method unselect_filename : string -> unit
      method unselect_uri : string -> unit
      method uri : string option
      method use_preview_label : bool
    end
end