## GtkFontButton

GtkFontButton — A button to launch a font selection dialog

## Synopsis

    #include <gtk/gtk.h>

    struct              GtkFontButton;
    GtkWidget *         gtk_font_button_new                 (void);
    GtkWidget *         gtk_font_button_new_with_font       (const gchar *fontname);
    gboolean            gtk_font_button_set_font_name       (GtkFontButton *font_button,
                                                             const gchar *fontname);
    const gchar *       gtk_font_button_get_font_name       (GtkFontButton *font_button);
    void                gtk_font_button_set_show_style      (GtkFontButton *font_button,
                                                             gboolean show_style);
    gboolean            gtk_font_button_get_show_style      (GtkFontButton *font_button);
    void                gtk_font_button_set_show_size       (GtkFontButton *font_button,
                                                             gboolean show_size);
    gboolean            gtk_font_button_get_show_size       (GtkFontButton *font_button);
    void                gtk_font_button_set_use_font        (GtkFontButton *font_button,
                                                             gboolean use_font);
    gboolean            gtk_font_button_get_use_font        (GtkFontButton *font_button);
    void                gtk_font_button_set_use_size        (GtkFontButton *font_button,
                                                             gboolean use_size);
    gboolean            gtk_font_button_get_use_size        (GtkFontButton *font_button);
    void                gtk_font_button_set_title           (GtkFontButton *font_button,
                                                             const gchar *title);
    const gchar *       gtk_font_button_get_title           (GtkFontButton *font_button);

## Object Hierarchy

      GObject
       +----GInitiallyUnowned
             +----GtkWidget
                   +----GtkContainer
                         +----GtkBin
                               +----GtkButton
                                     +----GtkFontButton

## Implemented Interfaces

GtkFontButton implements AtkImplementorIface, GtkBuildable and GtkActivatable.

## Properties

      "font-name"                gchar*                : Read / Write
      "show-size"                gboolean              : Read / Write
      "show-style"               gboolean              : Read / Write
      "title"                    gchar*                : Read / Write
      "use-font"                 gboolean              : Read / Write
      "use-size"                 gboolean              : Read / Write

## Signals

      "font-set"                                       : Run First

## Description

The GtkFontButton is a button which displays the currently selected font an allows to open a font selection dialog to change the font. It is suitable widget for selecting a font in a preference dialog.

## Details

### struct GtkFontButton

    struct GtkFontButton;

The GtkFontButton struct has only private members and should not be used directly.

### gtk_font_button_new ()

    GtkWidget *         gtk_font_button_new                 (void);

Creates a new font picker widget.

Returns : | a new font picker widget.

Since 2.4

### gtk_font_button_new_with_font ()

    GtkWidget *         gtk_font_button_new_with_font       (const gchar *fontname);

Creates a new font picker widget.

`fontname` : | Name of font to display in font selection dialog
Returns : | a new font picker widget.

Since 2.4

### gtk_font_button_set_font_name ()

    gboolean            gtk_font_button_set_font_name       (GtkFontButton *font_button,
                                                             const gchar *fontname);

Sets or updates the currently-displayed font in font picker dialog.

`font_button` : | a GtkFontButton
`fontname` : | Name of font to display in font selection dialog
Returns : | Return value of `gtk_font_selection_dialog_set_font_name()` if the font selection dialog exists, otherwise `FALSE`.

Since 2.4

### gtk_font_button_get_font_name ()

    const gchar *       gtk_font_button_get_font_name       (GtkFontButton *font_button);

Retrieves the name of the currently selected font. This name includes style and size information as well. If you want to render something with the font, use this string with `pango_font_description_from_string()` . If you're interested in peeking certain values (family name, style, size, weight) just query these properties from the PangoFontDescription object.

`font_button` : | a GtkFontButton
Returns : | an internal copy of the font name which must not be freed.

Since 2.4

### gtk_font_button_set_show_style ()

    void                gtk_font_button_set_show_style      (GtkFontButton *font_button,
                                                             gboolean show_style);

If `show_style` is `TRUE`, the font style will be displayed along with name of the selected font.

`font_button` : | a GtkFontButton
`show_style` : | `TRUE` if font style should be displayed in label.

Since 2.4

### gtk_font_button_get_show_style ()

    gboolean            gtk_font_button_get_show_style      (GtkFontButton *font_button);

Returns whether the name of the font style will be shown in the label.

`font_button` : | a GtkFontButton
Returns : | whether the font style will be shown in the label.

Since 2.4

### gtk_font_button_set_show_size ()

    void                gtk_font_button_set_show_size       (GtkFontButton *font_button,
                                                             gboolean show_size);

If `show_size` is `TRUE`, the font size will be displayed along with the name of the selected font.

`font_button` : | a GtkFontButton
`show_size` : | `TRUE` if font size should be displayed in dialog.

Since 2.4

### gtk_font_button_get_show_size ()

    gboolean            gtk_font_button_get_show_size       (GtkFontButton *font_button);

Returns whether the font size will be shown in the label.

`font_button` : | a GtkFontButton
Returns : | whether the font size will be shown in the label.

Since 2.4

### gtk_font_button_set_use_font ()

    void                gtk_font_button_set_use_font        (GtkFontButton *font_button,
                                                             gboolean use_font);

If `use_font` is `TRUE`, the font name will be written using the selected font.

`font_button` : | a GtkFontButton
`use_font` : | If `TRUE`, font name will be written using font chosen.

Since 2.4

### gtk_font_button_get_use_font ()

    gboolean            gtk_font_button_get_use_font        (GtkFontButton *font_button);

Returns whether the selected font is used in the label.

`font_button` : | a GtkFontButton
Returns : | whether the selected font is used in the label.

Since 2.4

### gtk_font_button_set_use_size ()

    void                gtk_font_button_set_use_size        (GtkFontButton *font_button,
                                                             gboolean use_size);

If `use_size` is `TRUE`, the font name will be written using the selected size.

`font_button` : | a GtkFontButton
`use_size` : | If `TRUE`, font name will be written using the selected size.

Since 2.4

### gtk_font_button_get_use_size ()

    gboolean            gtk_font_button_get_use_size        (GtkFontButton *font_button);

Returns whether the selected size is used in the label.

`font_button` : | a GtkFontButton
Returns : | whether the selected size is used in the label.

Since 2.4

### gtk_font_button_set_title ()

    void                gtk_font_button_set_title           (GtkFontButton *font_button,
                                                             const gchar *title);

Sets the title for the font selection dialog.

`font_button` : | a GtkFontButton
`title` : | a string containing the font selection dialog title

Since 2.4

### gtk_font_button_get_title ()

    const gchar *       gtk_font_button_get_title           (GtkFontButton *font_button);

Retrieves the title of the font selection dialog.

`font_button` : | a GtkFontButton
Returns : | an internal copy of the title string which must not be freed.

Since 2.4

## Property Details

### The `"font-name"` property

      "font-name"                gchar*                : Read / Write

The name of the currently selected font.

Default value: "Sans 12"

Since 2.4

### The `"show-size"` property

      "show-size"                gboolean              : Read / Write

If this property is set to `TRUE`, the selected font size will be shown in the label. For a more WYSIWYG way to show the selected size, see the ::use-size property.

Default value: TRUE

Since 2.4

### The `"show-style"` property

      "show-style"               gboolean              : Read / Write

If this property is set to `TRUE`, the name of the selected font style will be shown in the label. For a more WYSIWYG way to show the selected style, see the ::use-font property.

Default value: TRUE

Since 2.4

### The `"title"` property

      "title"                    gchar*                : Read / Write

The title of the font selection dialog.

Default value: "Pick a Font"

Since 2.4

### The `"use-font"` property

      "use-font"                 gboolean              : Read / Write

If this property is set to `TRUE`, the label will be drawn in the selected font.

Default value: FALSE

Since 2.4

### The `"use-size"` property

      "use-size"                 gboolean              : Read / Write

If this property is set to `TRUE`, the label will be drawn with the selected font size.

Default value: FALSE

Since 2.4

## Signal Details

### The `"font-set"` signal

    void                user_function                      (GtkFontButton *widget,
                                                            gpointer       user_data)      : Run First

The ::font-set signal is emitted when the user selects a font. When handling this signal, use `gtk_font_button_get_font_name()` to find out which font was just selected.

Note that this signal is only emitted when the user changes the font. If you need to react to programmatic font changes as well, use the notify::font-name signal.

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

Since 2.4

## See Also

GtkFontSelectionDialog, GtkColorButton.