## GtkFileChooserButton

GtkFileChooserButton — A button to launch a file selection dialog

## Functions

GtkWidget * | gtk_file_chooser_button_new ()
GtkWidget * | gtk_file_chooser_button_new_with_dialog ()
const gchar * | gtk_file_chooser_button_get_title ()
void | gtk_file_chooser_button_set_title ()
gint | gtk_file_chooser_button_get_width_chars ()
void | gtk_file_chooser_button_set_width_chars ()
gboolean | gtk_file_chooser_button_get_focus_on_click ()
void | gtk_file_chooser_button_set_focus_on_click ()

## Properties

GtkFileChooser * | dialog | Write / Construct Only
gchar * | title | Read / Write
gint | width-chars | Read / Write

## Signals

void | file-set | Run First

## Types and Values

struct | GtkFileChooserButton
struct | GtkFileChooserButtonClass

## Object Hierarchy

        GObject
        ╰── GInitiallyUnowned
            ╰── GtkWidget
                ╰── GtkContainer
                    ╰── GtkBox
                        ╰── GtkFileChooserButton

## Implemented Interfaces

GtkFileChooserButton implements AtkImplementorIface, GtkBuildable, GtkOrientable and GtkFileChooser.

## Includes

    #include <gtk/gtk.h>

## Description

The GtkFileChooserButton is a widget that lets the user select a file. It implements the GtkFileChooser interface. Visually, it is a file name with a button to bring up a GtkFileChooserDialog. The user can then use that dialog to change the file associated with that button. This widget does not support setting the “select-multiple” property to `TRUE`.

#### Create a button to let the user select a file in /etc

    1
    2
    3
    4
    5
    6
    7
    8

    {
      GtkWidget *button;

      button = gtk_file_chooser_button_new (_("Select a file"),
                                            GTK_FILE_CHOOSER_ACTION_OPEN);
      gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (button),
                                           "/etc");
    }

The GtkFileChooserButton supports the GtkFileChooserActions `GTK_FILE_CHOOSER_ACTION_OPEN` and `GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER`.

> The GtkFileChooserButton will ellipsize the label, and will thus request little horizontal space. To give the button more space, you should call `gtk_widget_get_preferred_size()`, `gtk_file_chooser_button_set_width_chars()`, or pack the button in such a way that other interface elements give space to the widget.

### CSS nodes

GtkFileChooserButton has a CSS node with name “filechooserbutton”, containing a subnode for the internal button with name “button” and style class “.file”.

## Functions

### gtk_file_chooser_button_new ()

    GtkWidget *
    gtk_file_chooser_button_new (const gchar *title,
                                 GtkFileChooserAction action);

Creates a new file-selecting button widget.

#### Parameters

title | the title of the browse dialog. |
action | the open mode for the widget. |

#### Returns

a new button widget.

Since: 2.6

### gtk_file_chooser_button_new_with_dialog ()

    GtkWidget *
    gtk_file_chooser_button_new_with_dialog
                                   (GtkWidget *dialog);

Creates a GtkFileChooserButton widget which uses `dialog` as its file-picking window.

Note that `dialog` must be a GtkDialog (or subclass) which implements the GtkFileChooser interface and must not have `GTK_DIALOG_DESTROY_WITH_PARENT` set.

Also note that the dialog needs to have its confirmative button added with response `GTK_RESPONSE_ACCEPT` or `GTK_RESPONSE_OK` in order for the button to take over the file selected in the dialog.

#### Parameters

dialog | the widget to use as dialog. | [type Gtk.Dialog]

#### Returns

a new button widget.

Since: 2.6

### gtk_file_chooser_button_get_title ()

    const gchar *
    gtk_file_chooser_button_get_title (GtkFileChooserButton *button);

Retrieves the title of the browse dialog used by `button` . The returned value should not be modified or freed.

#### Parameters

button | the button widget to examine. |

#### Returns

a pointer to the browse dialog’s title.

Since: 2.6

### gtk_file_chooser_button_set_title ()

    void
    gtk_file_chooser_button_set_title (GtkFileChooserButton *button,
                                       const gchar *title);

Modifies the `title` of the browse dialog used by `button` .

#### Parameters

button | the button widget to modify. |
title | the new browse dialog title. |

Since: 2.6

### gtk_file_chooser_button_get_width_chars ()

    gint
    gtk_file_chooser_button_get_width_chars
                                   (GtkFileChooserButton *button);

Retrieves the width in characters of the `button` widget’s entry and/or label.

#### Parameters

button | the button widget to examine. |

#### Returns

an integer width (in characters) that the button will use to size itself.

Since: 2.6

### gtk_file_chooser_button_set_width_chars ()

    void
    gtk_file_chooser_button_set_width_chars
                                   (GtkFileChooserButton *button,
                                    gint n_chars);

Sets the width (in characters) that `button` will use to `n_chars` .

#### Parameters

button | the button widget to examine. |
n_chars | the new width, in characters. |

Since: 2.6

### gtk_file_chooser_button_get_focus_on_click ()

    gboolean
    gtk_file_chooser_button_get_focus_on_click
                                   (GtkFileChooserButton *button);

`gtk_file_chooser_button_get_focus_on_click` has been deprecated since version 3.20 and should not be used in newly-written code.

Use `gtk_widget_get_focus_on_click()` instead

Returns whether the button grabs focus when it is clicked with the mouse. See `gtk_file_chooser_button_set_focus_on_click()`.

#### Parameters

button | a GtkFileChooserButton |

#### Returns

`TRUE` if the button grabs focus when it is clicked with the mouse.

Since: 2.10

### gtk_file_chooser_button_set_focus_on_click ()

    void
    gtk_file_chooser_button_set_focus_on_click
                                   (GtkFileChooserButton *button,
                                    gboolean focus_on_click);

`gtk_file_chooser_button_set_focus_on_click` has been deprecated since version 3.20 and should not be used in newly-written code.

Use `gtk_widget_set_focus_on_click()` instead

Sets whether the button will grab focus when it is clicked with the mouse. Making mouse clicks not grab focus is useful in places like toolbars where you don’t want the keyboard focus removed from the main area of the application.

#### Parameters

button | a GtkFileChooserButton |
focus_on_click | whether the button grabs focus when clicked with the mouse |

Since: 2.10

## Types and Values

### struct GtkFileChooserButton

    struct GtkFileChooserButton;

### struct GtkFileChooserButtonClass

    struct GtkFileChooserButtonClass {
      GtkBoxClass parent_class;

      void (* file_set) (GtkFileChooserButton *fc);
    };

#### Members

`file_set` () | Signal emitted when the user selects a file. |

## Property Details

### The `“dialog”` property

      “dialog”                   GtkFileChooser *

Instance of the GtkFileChooserDialog associated with the button.

Owner: GtkFileChooserButton

Flags: Write / Construct Only

Since: 2.6

### The `“title”` property

      “title”                    gchar *

Title to put on the GtkFileChooserDialog associated with the button.

Owner: GtkFileChooserButton

Flags: Read / Write

Default value: "Select a File"

Since: 2.6

### The `“width-chars”` property

      “width-chars”              gint

The width of the entry and label inside the button, in characters.

Owner: GtkFileChooserButton

Flags: Read / Write

Allowed values: >= -1

Default value: -1

Since: 2.6

## Signal Details

### The `“file-set”` signal

    void
    user_function (GtkFileChooserButton *widget,
                   gpointer              user_data)

The ::file-set signal is emitted when the user selects a file.

Note that this signal is only emitted when the user changes the file.

#### Parameters

widget | the object which received the signal. |
user_data | user data set when the signal handler was connected. |

Flags: Run First

Since: 2.12

## See Also

GtkFileChooserDialog