### Tutorial

« Color Selection | Font Selection »

## File Selections

The file selection widget is a quick and simple way to display a File dialog box. It comes complete with Ok, Cancel, and Help buttons, a great way to cut down on programming time.
To create a new file selection box use one of the following constructors:

`FileSelection(); explicit FileSelection(const String& title);`

Both constructors create a FileSelectionDialog, the first with the default title which is just the program name and the second with the title specified.
To set the filename, for example to bring up a specific directory, or give a default filename, use this method:

`void set_filename(const String& filename);`

To grab the text that the user has entered or clicked on, use this method:

`String get_filename() const;`

There are also accessors that return a pointer to the corresponding widget contained within the file selection widget. These are:

`Gtk::Entry* selection_entry() const; Gtk::Label* selection_text() const; Gtk::Button* ok_button() const; Gtk::Button* cancel_button() const; Gtk::Button* help_button() const;`

Most likely you will want to use the ok_button(), cancel_button(), and help_button() accessors for signal connection.
Here is an example of a FileSelection widget modified to run on its own. As you will see, there is nothing much to creating a file selection widget. In this example the Help button is hidden.
The header file for File selection is filesel.h

`#include<inti/main.h> #include <inti/gtk/fileselection.h> using namespace Inti; class FileSelection : public Gtk::FileSelection { protected: void on_ok(); public: FileSelection(); virtual ~FileSelection(); };`

and the source file is filesel.cc

`#include"filesel.h"
#include <inti/gtk/button.h>
#include <iostream>
FileSelection::FileSelection()
: Gtk::FileSelection("File selection")
{
ok_button()->sig_clicked().connect(slot(this, &FileSelection::on_ok));
cancel_button()->sig_clicked().connect(slot(this, &FileSelection::dispose));
// Lets set the filename, as if this were a save dialog, and we are giving a default filename.
set_filename("penguin.png");
}
FileSelection::~FileSelection()
{
}
void
FileSelection::on_ok()
{
std::cout << get_filename().c_str() << '\n';
}
INTI_MAIN(FileSelection)`

« Color Selection | Index Miscellaneous Widgets Top | Font Selection »