GimpEnumWidgets

## GimpEnumWidgets GimpEnumWidgets — A set of utility functions to create widgets based on enums. |

## Synopsis

    GtkWidget *         gimp_enum_radio_box_new             (GType enum_type,
                                                             GCallback callback,
                                                             gpointer callback_data,
                                                             GtkWidget **first_button);
    GtkWidget *         gimp_enum_radio_box_new_with_range  (GType enum_type,
                                                             gint minimum,
                                                             gint maximum,
                                                             GCallback callback,
                                                             gpointer callback_data,
                                                             GtkWidget **first_button);
    GtkWidget *         gimp_enum_radio_frame_new           (GType enum_type,
                                                             GtkWidget *label_widget,
                                                             GCallback callback,
                                                             gpointer callback_data,
                                                             GtkWidget **first_button);
    GtkWidget *         gimp_enum_radio_frame_new_with_range
                                                            (GType enum_type,
                                                             gint minimum,
                                                             gint maximum,
                                                             GtkWidget *label_widget,
                                                             GCallback callback,
                                                             gpointer callback_data,
                                                             GtkWidget **first_button);
    GtkWidget *         gimp_enum_stock_box_new             (GType enum_type,
                                                             const gchar *stock_prefix,
                                                             GtkIconSize icon_size,
                                                             GCallback callback,
                                                             gpointer callback_data,
                                                             GtkWidget **first_button);
    GtkWidget *         gimp_enum_stock_box_new_with_range  (GType enum_type,
                                                             gint minimum,
                                                             gint maximum,
                                                             const gchar *stock_prefix,
                                                             GtkIconSize icon_size,
                                                             GCallback callback,
                                                             gpointer callback_data,
                                                             GtkWidget **first_button);
    void                gimp_enum_stock_box_set_child_padding
                                                            (GtkWidget *stock_box,
                                                             gint xpad,
                                                             gint ypad);

## Description

A set of utility functions to create widgets based on enums.

## Details

### gimp_enum_radio_box_new ()

    GtkWidget *         gimp_enum_radio_box_new             (GType enum_type,
                                                             GCallback callback,
                                                             gpointer callback_data,
                                                             GtkWidget **first_button);

Creates a new group of GtkRadioButtons representing the enum values. A group of radiobuttons is a good way to represent enums with up to three or four values. Often it is better to use a GimpEnumComboBox instead.

`enum_type` : | the GType of an enum.
`callback` : | a callback to connect to the "toggled" signal of each GtkRadioButton that is created.
`callback_data` : | data to pass to the `callback`.
`first_button` : | returns the first button in the created group.
Returns : | a new GtkVBox holding a group of GtkRadioButtons.

Since GIMP 2.4

### gimp_enum_radio_box_new_with_range ()

    GtkWidget *         gimp_enum_radio_box_new_with_range  (GType enum_type,
                                                             gint minimum,
                                                             gint maximum,
                                                             GCallback callback,
                                                             gpointer callback_data,
                                                             GtkWidget **first_button);

Just like `gimp_enum_radio_box_new()`, this function creates a group of radio buttons, but it allows to limit the range of available enum values.

`enum_type` : | the GType of an enum.
`minimum` : | the minimum enum value
`maximum` : | the maximum enum value
`callback` : | a callback to connect to the "toggled" signal of each GtkRadioButton that is created.
`callback_data` : | data to pass to the `callback`.
`first_button` : | returns the first button in the created group.
Returns : | a new GtkVBox holding a group of GtkRadioButtons.

Since GIMP 2.4

### gimp_enum_radio_frame_new ()

    GtkWidget *         gimp_enum_radio_frame_new           (GType enum_type,
                                                             GtkWidget *label_widget,
                                                             GCallback callback,
                                                             gpointer callback_data,
                                                             GtkWidget **first_button);

Calls `gimp_enum_radio_box_new()` and puts the resulting vbox into a GtkFrame.

`enum_type` : | the GType of an enum.
`label_widget` : | a widget to use as label for the frame that will hold the radio box.
`callback` : | a callback to connect to the "toggled" signal of each GtkRadioButton that is created.
`callback_data` : | data to pass to the `callback`.
`first_button` : | returns the first button in the created group.
Returns : | a new GtkFrame holding a group of GtkRadioButtons.

Since GIMP 2.4

### gimp_enum_radio_frame_new_with_range ()

    GtkWidget *         gimp_enum_radio_frame_new_with_range
                                                            (GType enum_type,
                                                             gint minimum,
                                                             gint maximum,
                                                             GtkWidget *label_widget,
                                                             GCallback callback,
                                                             gpointer callback_data,
                                                             GtkWidget **first_button);

Calls `gimp_enum_radio_box_new_with_range()` and puts the resulting vbox into a GtkFrame.

`enum_type` : | the GType of an enum.
`minimum` : | the minimum enum value
`maximum` : | the maximum enum value
`label_widget` : | a widget to put into the frame that will hold the radio box.
`callback` : | a callback to connect to the "toggled" signal of each GtkRadioButton that is created.
`callback_data` : | data to pass to the `callback`.
`first_button` : | returns the first button in the created group.
Returns : | a new GtkFrame holding a group of GtkRadioButtons.

Since GIMP 2.4

### gimp_enum_stock_box_new ()

    GtkWidget *         gimp_enum_stock_box_new             (GType enum_type,
                                                             const gchar *stock_prefix,
                                                             GtkIconSize icon_size,
                                                             GCallback callback,
                                                             gpointer callback_data,
                                                             GtkWidget **first_button);

Creates a horizontal box of radio buttons with stock icons. The stock_id for each icon is created by appending the enum_value's nick to the given `stock_prefix`.

`enum_type` : | the GType of an enum.
`stock_prefix` : | the prefix of the group of stock ids to use.
`icon_size` : | the icon size for the stock icons
`callback` : | a callback to connect to the "toggled" signal of each GtkRadioButton that is created.
`callback_data` : | data to pass to the `callback`.
`first_button` : | returns the first button in the created group.
Returns : | a new GtkHBox holding a group of GtkRadioButtons.

Since GIMP 2.4

### gimp_enum_stock_box_new_with_range ()

    GtkWidget *         gimp_enum_stock_box_new_with_range  (GType enum_type,
                                                             gint minimum,
                                                             gint maximum,
                                                             const gchar *stock_prefix,
                                                             GtkIconSize icon_size,
                                                             GCallback callback,
                                                             gpointer callback_data,
                                                             GtkWidget **first_button);

Just like `gimp_enum_stock_box_new()`, this function creates a group of radio buttons, but it allows to limit the range of available enum values.

`enum_type` : | the GType of an enum.
`minimum` : | the minumim enum value
`maximum` : | the maximum enum value
`stock_prefix` : | the prefix of the group of stock ids to use.
`icon_size` : | the icon size for the stock icons
`callback` : | a callback to connect to the "toggled" signal of each GtkRadioButton that is created.
`callback_data` : | data to pass to the `callback`.
`first_button` : | returns the first button in the created group.
Returns : | a new GtkHBox holding a group of GtkRadioButtons.

Since GIMP 2.4

### gimp_enum_stock_box_set_child_padding ()

    void                gimp_enum_stock_box_set_child_padding
                                                            (GtkWidget *stock_box,
                                                             gint xpad,
                                                             gint ypad);

Sets the padding of all buttons in a box created by `gimp_enum_stock_box_new()`.

`stock_box` : | a stock box widget
`xpad` : | horizontal padding
`ypad` : | vertical padding

Since GIMP 2.4