module Gtk::FileChooser


Gtk::FileChooser is an interface that can be implemented by file selection widgets.

In GTK, the main objects that implement this interface are Gtk::FileChooserWidget and Gtk::FileChooserDialog.

You do not need to write an object that implements the Gtk::FileChooser interface unless you are trying to adapt an existing file selector to expose a standard programming interface.

Gtk::FileChooser allows for shortcuts to various places in the filesystem. In the default implementation these are displayed in the left pane. It may be a bit confusing at first that these shortcuts come from various sources and in various flavours, so lets explain the terminology here:

File Names and Encodings

When the user is finished selecting files in a Gtk::FileChooser, your program can get the selected filenames as GFiles.

Adding options

You can add extra widgets to a file chooser to provide options that are not present in the default design, by using Gtk::FileChooser#add_choice. Each choice has an identifier and a user visible label; additionally, each choice can have multiple options. If a choice has no option, it will be rendered as a check button with the given label; if a choice has options, it will be rendered as a combo box.

Direct including types

Defined in:


Class Method Summary

Instance Method Summary

Class Method Detail

def self.g_type : UInt64 #

Instance Method Detail

def action : Gtk::FileChooserAction #

def action=(action : Gtk::FileChooserAction) : Nil #

def add_choice(id : String, label : String, options : Enumerable(String)?, option_labels : Enumerable(String)?) : Nil #

def add_filter(filter : Gtk::FileFilter) : Nil #

def add_shortcut_folder(folder : Gio::File) : Bool #

def choice(id : String) : String? #

def create_folders : Bool #

def create_folders=(create_folders : Bool) : Nil #

def create_folders? : Bool #

def current_folder : Gio::File? #

def current_folder=(file : Gio::File?) : Bool #

def current_name : String? #

def current_name=(name : String) : Nil #

def file : Gio::File? #

def file=(file : Gio::File) : Bool #

def files : Gio::ListModel #

def filter : Gtk::FileFilter? #

def filter=(filter : Gtk::FileFilter) : Nil #

def filters : Gio::ListModel #

def remove_choice(id : String) : Nil #

def remove_filter(filter : Gtk::FileFilter) : Nil #

def remove_shortcut_folder(folder : Gio::File) : Bool #

def select_multiple : Bool #

def select_multiple=(select_multiple : Bool) : Nil #

def select_multiple? : Bool #

def set_choice(id : String, option : String) : Nil #

def shortcut_folders : Gio::ListModel #

abstract def to_unsafe #