# Gtk::Button Class Reference
Widgets

A widget that creates a signal when clicked on. More...

Inheritance diagram for Gtk::Button:
[legend]
Collaboration diagram for Gtk::Button:
[legend]

List of all members.

## Public Member Functions

virtual | ~Button ()
GtkButton* | gobj ()
| Provides access to the underlying C GtkObject.
const GtkButton* | gobj () const
| Provides access to the underlying C GtkObject.
| Button ()
| Create an empty button.
| Button (const Glib::ustring& label, bool mnemonic=false)
| Simple Push Button with label.
| Button (const StockID& stock_id)
| Creates a new Button containing the image and text from a stock item.
void | clicked ()
| Emits a Gtk::Button::clicked signal to the given Gtk::Button.
void | set_relief (ReliefStyle newstyle)
| Sets the relief style of the edges of the given Gtk::Button widget.
ReliefStyle | get_relief () const
| Returns the current relief style of the given Gtk::Button.
void | set_label (const Glib::ustring& label)
| Sets the text of the label of the button to str.
Glib::ustring | get_label () const
| Fetches the text from the label of the button, as set by set_label().
void | set_use_underline (bool use_underline=true)
| If true, an underline in the text of the button label indicates the next character should be used for the mnemonic accelerator key.
bool | get_use_underline () const
| Returns whether an embedded underline in the button label indicates a mnemonic.
void | set_use_stock (bool use_stock=true)
| If `true`, the label set on the button is used as a stock id to select the stock item for the button.
bool | get_use_stock () const
| Returns whether the button label is a stock item.
void | set_focus_on_click (bool focus_on_click=true)
| Sets whether the button will grab focus when it is clicked with the mouse.
bool | get_focus_on_click () const
| Returns whether the button grabs focus when it is clicked with the mouse.
void | set_alignment (float xalign, float yalign)
| Sets the alignment of the child.
void | get_alignment (float& xalign, float& yalign)
| Gets the alignment of the child in the button.
void | set_image (Widget& image)
| Set the image of button to the given widget.
Widget* | get_image ()
| Gets the widget that is currenty set as the image of button.
const Widget* | get_image () const
| Gets the widget that is currenty set as the image of button.
void | set_image_position (PositionType position)
| Sets the position of the image relative to the text inside the button.
PositionType | get_image_position () const
| Gets the position of the image relative to the text inside the button.
Glib::RefPtr< Gdk::Window > | get_event_window ()
| Returns the button's event window if it is realized, `0` otherwise.
Glib::RefPtr< const Gdk::Window > | get_event_window () const
| Returns the button's event window if it is realized, `0` otherwise.
Glib::SignalProxy0< void > | signal_pressed ()
Glib::SignalProxy0< void > | signal_released ()
Glib::SignalProxy0< void > | signal_clicked ()
Glib::SignalProxy0< void > | signal_enter ()
Glib::SignalProxy0< void > | signal_leave ()
Glib::SignalProxy0< void > | signal_activate ()
Glib::PropertyProxy < Glib::ustring > | property_label ()
| Text of the label widget inside the button, if the button contains a label widget.
Glib::PropertyProxy_ReadOnly < Glib::ustring > | property_label () const
| Text of the label widget inside the button, if the button contains a label widget.
Glib::PropertyProxy< ReliefStyle > | property_relief ()
| The border relief style.
Glib::PropertyProxy_ReadOnly < ReliefStyle > | property_relief () const
| The border relief style.
Glib::PropertyProxy< bool > | property_use_underline ()
| If set, an underline in the text indicates the next character should be used for the mnemonic accelerator key.
Glib::PropertyProxy_ReadOnly < bool > | property_use_underline () const
| If set, an underline in the text indicates the next character should be used for the mnemonic accelerator key.
Glib::PropertyProxy< bool > | property_use_stock ()
| If set, the label is used to pick a stock item instead of being displayed.
Glib::PropertyProxy_ReadOnly < bool > | property_use_stock () const
| If set, the label is used to pick a stock item instead of being displayed.
Glib::PropertyProxy< bool > | property_focus_on_click ()
| Whether the button grabs focus when it is clicked with the mouse.
Glib::PropertyProxy_ReadOnly < bool > | property_focus_on_click () const
| Whether the button grabs focus when it is clicked with the mouse.
Glib::PropertyProxy< float > | property_xalign ()
| Horizontal position of child in available space.
Glib::PropertyProxy_ReadOnly < float > | property_xalign () const
| Horizontal position of child in available space.
Glib::PropertyProxy< float > | property_yalign ()
| Vertical position of child in available space.
Glib::PropertyProxy_ReadOnly < float > | property_yalign () const
| Vertical position of child in available space.
Glib::PropertyProxy < Gtk::Widget* > | property_image ()
| Child widget to appear next to the button text.
Glib::PropertyProxy_ReadOnly < Gtk::Widget* > | property_image () const
| Child widget to appear next to the button text.
Glib::PropertyProxy< PositionType > | property_image_position ()
| The position of the image relative to the text.
Glib::PropertyProxy_ReadOnly < PositionType > | property_image_position () const
| The position of the image relative to the text.

## Protected Member Functions

virtual void | on_pressed ()
virtual void | on_released ()
virtual void | on_clicked ()
virtual void | on_enter ()
virtual void | on_leave ()
virtual void | on_activate ()

## Related Functions

(Note that these are not member functions.)
Gtk::Button* | wrap (GtkButton* object, bool take_copy=false)
| A Glib::wrap() method for this object.

## Detailed Description

A widget that creates a signal when clicked on.

This widget is generally used with a signal handler that is called when the button is pressed. It can hold any valid child widget. The most commonly used child is the Gtk::Label.

The Button widget looks like this:

## Constructor & Destructor Documentation

virtual Gtk::Button::~Button | ( |  | ) | `[virtual]`

Gtk::Button::Button | ( |  | ) |

Create an empty button.

With an empty button, you can Gtk::Button::add() a widget such as a Gtk::Image or Gtk::Box.

If you just wish to add a Gtk::Label, you may want to use the Gtk::Button(const Glib::ustring& label) ctor directly instead.

Gtk::Button::Button | ( | const Glib::ustring & | label,
|  | bool | mnemonic = `false`
| ) |  | `[explicit]`

Simple Push Button with label.

Create a button with the given label inside. You won't be able to add a widget in this button since it already has a Gtk::Label in it

Gtk::Button::Button | ( | const StockID& | stock_id | ) | `[explicit]`

Creates a new Button containing the image and text from a stock item.

Stock ids have identifiers like Gtk::Stock::OK and Gtk::Stock::APPLY.

Parameters:

  stock_id | The stock item.

## Member Function Documentation

void Gtk::Button::clicked | ( |  | ) |

Emits a Gtk::Button::clicked signal to the given Gtk::Button.

void Gtk::Button::get_alignment | ( | float & | xalign,
|  | float & | yalign
| ) |  |

Gets the alignment of the child in the button.

Since gtkmm 2.4:

Parameters:

  xalign | Return location for horizontal alignment.
  yalign | Return location for vertical alignment.

Glib::RefPtr<Gdk::Window> Gtk::Button::get_event_window | ( |  | ) |

Returns the button's event window if it is realized, `0` otherwise.

This function should be rarely needed.

Since gtkmm 2.22:

Returns:
  button's event window.

Glib::RefPtr<const Gdk::Window> Gtk::Button::get_event_window | ( |  | ) | const

Returns the button's event window if it is realized, `0` otherwise.

This function should be rarely needed.

Since gtkmm 2.22:

Returns:
  button's event window.

bool Gtk::Button::get_focus_on_click | ( |  | ) | const

Returns whether the button grabs focus when it is clicked with the mouse.

See set_focus_on_click().

Since gtkmm 2.4:

Returns:
  `true` if the button grabs focus when it is clicked with the mouse.

Widget* Gtk::Button::get_image | ( |  | ) |

Gets the widget that is currenty set as the image of button.

This may have been explicitly set by set_image() or specified as a stock item to the constructor.

Since gtkmm 2.6:

const Widget* Gtk::Button::get_image | ( |  | ) | const

Gets the widget that is currenty set as the image of button.

This may have been explicitly set by set_image() or specified as a stock item to the constructor.

Since gtkmm 2.6:

PositionType Gtk::Button::get_image_position | ( |  | ) | const

Gets the position of the image relative to the text inside the button.

Since gtkmm 2.10:

Returns:
  The position.

Glib::ustring Gtk::Button::get_label | ( |  | ) | const

Fetches the text from the label of the button, as set by set_label().

If the label text has not been set the return value will be `0`. This will be the case if you create an empty button with new() to use as a container.

Returns:
  The text of the label widget. This string is owned by the widget and must not be modified or freed.

ReliefStyle Gtk::Button::get_relief | ( |  | ) | const

Returns the current relief style of the given Gtk::Button.

Returns:
  The current Gtk::ReliefStyle.

bool Gtk::Button::get_use_stock | ( |  | ) | const

Returns whether the button label is a stock item.

Returns:
  `true` if the button label is used to select a stock item instead of being used directly as the label text.

bool Gtk::Button::get_use_underline | ( |  | ) | const

Returns whether an embedded underline in the button label indicates a mnemonic.

See set_use_underline().

Returns:
  `true` if an embedded underline in the button label indicates the mnemonic accelerator keys.

const GtkButton* Gtk::Button::gobj | ( |  | ) | const`[inline]`

Provides access to the underlying C GtkObject.

Reimplemented from Gtk::Activatable.

Reimplemented in Gtk::CheckButton, Gtk::ColorButton, Gtk::FontButton, Gtk::LinkButton, Gtk::RadioButton, Gtk::ScaleButton, Gtk::ToggleButton, and Gtk::VolumeButton.

GtkButton* Gtk::Button::gobj | ( |  | ) | `[inline]`

Provides access to the underlying C GtkObject.

Reimplemented from Gtk::Activatable.

Reimplemented in Gtk::CheckButton, Gtk::ColorButton, Gtk::FontButton, Gtk::LinkButton, Gtk::RadioButton, Gtk::ScaleButton, Gtk::ToggleButton, and Gtk::VolumeButton.

virtual void Gtk::Button::on_activate | ( |  | ) | `[protected, virtual]`

virtual void Gtk::Button::on_clicked | ( |  | ) | `[protected, virtual]`

virtual void Gtk::Button::on_enter | ( |  | ) | `[protected, virtual]`

virtual void Gtk::Button::on_leave | ( |  | ) | `[protected, virtual]`

virtual void Gtk::Button::on_pressed | ( |  | ) | `[protected, virtual]`

virtual void Gtk::Button::on_released | ( |  | ) | `[protected, virtual]`

Glib::PropertyProxy<bool> Gtk::Button::property_focus_on_click | ( |  | ) |

Whether the button grabs focus when it is clicked with the mouse.

You rarely need to use properties because there are get_ and set_ methods for almost all of them.

Returns:
  A PropertyProxy that allows you to get or set the property of the value, or receive notification when the value of the property changes.

Glib::PropertyProxy_ReadOnly<bool> Gtk::Button::property_focus_on_click | ( |  | ) | const

Whether the button grabs focus when it is clicked with the mouse.

You rarely need to use properties because there are get_ and set_ methods for almost all of them.

Returns:
  A PropertyProxy that allows you to get or set the property of the value, or receive notification when the value of the property changes.

Glib::PropertyProxy<Gtk::Widget*> Gtk::Button::property_image | ( |  | ) |

Child widget to appear next to the button text.

You rarely need to use properties because there are get_ and set_ methods for almost all of them.

Returns:
  A PropertyProxy that allows you to get or set the property of the value, or receive notification when the value of the property changes.

Glib::PropertyProxy_ReadOnly<Gtk::Widget*> Gtk::Button::property_image | ( |  | ) | const

Child widget to appear next to the button text.

You rarely need to use properties because there are get_ and set_ methods for almost all of them.

Returns:
  A PropertyProxy that allows you to get or set the property of the value, or receive notification when the value of the property changes.

Glib::PropertyProxy_ReadOnly<PositionType> Gtk::Button::property_image_position | ( |  | ) | const

The position of the image relative to the text.

You rarely need to use properties because there are get_ and set_ methods for almost all of them.

Returns:
  A PropertyProxy that allows you to get or set the property of the value, or receive notification when the value of the property changes.

Glib::PropertyProxy<PositionType> Gtk::Button::property_image_position | ( |  | ) |

The position of the image relative to the text.

You rarely need to use properties because there are get_ and set_ methods for almost all of them.

Returns:
  A PropertyProxy that allows you to get or set the property of the value, or receive notification when the value of the property changes.

Glib::PropertyProxy<Glib::ustring> Gtk::Button::property_label | ( |  | ) |

Text of the label widget inside the button, if the button contains a label widget.

You rarely need to use properties because there are get_ and set_ methods for almost all of them.

Returns:
  A PropertyProxy that allows you to get or set the property of the value, or receive notification when the value of the property changes.

Glib::PropertyProxy_ReadOnly<Glib::ustring> Gtk::Button::property_label | ( |  | ) | const

Text of the label widget inside the button, if the button contains a label widget.

You rarely need to use properties because there are get_ and set_ methods for almost all of them.

Returns:
  A PropertyProxy that allows you to get or set the property of the value, or receive notification when the value of the property changes.

Glib::PropertyProxy<ReliefStyle> Gtk::Button::property_relief | ( |  | ) |

The border relief style.

You rarely need to use properties because there are get_ and set_ methods for almost all of them.

Returns:
  A PropertyProxy that allows you to get or set the property of the value, or receive notification when the value of the property changes.

Glib::PropertyProxy_ReadOnly<ReliefStyle> Gtk::Button::property_relief | ( |  | ) | const

The border relief style.

You rarely need to use properties because there are get_ and set_ methods for almost all of them.

Returns:
  A PropertyProxy that allows you to get or set the property of the value, or receive notification when the value of the property changes.

Glib::PropertyProxy<bool> Gtk::Button::property_use_stock | ( |  | ) |

If set, the label is used to pick a stock item instead of being displayed.

You rarely need to use properties because there are get_ and set_ methods for almost all of them.

Returns:
  A PropertyProxy that allows you to get or set the property of the value, or receive notification when the value of the property changes.

Glib::PropertyProxy_ReadOnly<bool> Gtk::Button::property_use_stock | ( |  | ) | const

If set, the label is used to pick a stock item instead of being displayed.

You rarely need to use properties because there are get_ and set_ methods for almost all of them.

Returns:
  A PropertyProxy that allows you to get or set the property of the value, or receive notification when the value of the property changes.

Glib::PropertyProxy<bool> Gtk::Button::property_use_underline | ( |  | ) |

If set, an underline in the text indicates the next character should be used for the mnemonic accelerator key.

You rarely need to use properties because there are get_ and set_ methods for almost all of them.

Returns:
  A PropertyProxy that allows you to get or set the property of the value, or receive notification when the value of the property changes.

Glib::PropertyProxy_ReadOnly<bool> Gtk::Button::property_use_underline | ( |  | ) | const

If set, an underline in the text indicates the next character should be used for the mnemonic accelerator key.

You rarely need to use properties because there are get_ and set_ methods for almost all of them.

Returns:
  A PropertyProxy that allows you to get or set the property of the value, or receive notification when the value of the property changes.

Glib::PropertyProxy_ReadOnly<float> Gtk::Button::property_xalign | ( |  | ) | const

Horizontal position of child in available space.

0.0 is left aligned, 1.0 is right aligned.

You rarely need to use properties because there are get_ and set_ methods for almost all of them.

Returns:
  A PropertyProxy that allows you to get or set the property of the value, or receive notification when the value of the property changes.

Glib::PropertyProxy<float> Gtk::Button::property_xalign | ( |  | ) |

Horizontal position of child in available space.

0.0 is left aligned, 1.0 is right aligned.

You rarely need to use properties because there are get_ and set_ methods for almost all of them.

Returns:
  A PropertyProxy that allows you to get or set the property of the value, or receive notification when the value of the property changes.

Glib::PropertyProxy<float> Gtk::Button::property_yalign | ( |  | ) |

Vertical position of child in available space.

0.0 is top aligned, 1.0 is bottom aligned.

You rarely need to use properties because there are get_ and set_ methods for almost all of them.

Returns:
  A PropertyProxy that allows you to get or set the property of the value, or receive notification when the value of the property changes.

Glib::PropertyProxy_ReadOnly<float> Gtk::Button::property_yalign | ( |  | ) | const

Vertical position of child in available space.

0.0 is top aligned, 1.0 is bottom aligned.

You rarely need to use properties because there are get_ and set_ methods for almost all of them.

Returns:
  A PropertyProxy that allows you to get or set the property of the value, or receive notification when the value of the property changes.

void Gtk::Button::set_alignment | ( | float | xalign,
|  | float | yalign
| ) |  |

Sets the alignment of the child.

This property has no effect unless the child is a Gtk::Misc or a Gtk::Aligment.

Since gtkmm 2.4:

Parameters:

  xalign | The horizontal position of the child, 0.0 is left aligned, 1.0 is right aligned.
  yalign | The vertical position of the child, 0.0 is top aligned, 1.0 is bottom aligned.

void Gtk::Button::set_focus_on_click | ( | bool | focus_on_click = `true` | ) |

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.

Since gtkmm 2.4:

Parameters:

  focus_on_click | Whether the button grabs focus when clicked with the mouse.

void Gtk::Button::set_image | ( | Widget& | image | ) |

Set the image of button to the given widget.

Note that it depends on the Gtk::Settings:gtk-button-images setting whether the image will be displayed or not, you don't have to call Gtk::Widget::show() on image yourself.

Since gtkmm 2.6:

Parameters:

  image | A widget to set as the image for the button.

void Gtk::Button::set_image_position | ( | PositionType | position | ) |

Sets the position of the image relative to the text inside the button.

Since gtkmm 2.10:

Parameters:

  position | The position.

void Gtk::Button::set_label | ( | const Glib::ustring & | label | ) |

Sets the text of the label of the button to str.

This text is also used to select the stock item if set_use_stock() is used.

This will also clear any previously set labels.

Parameters:

  label | A string.

void Gtk::Button::set_relief | ( | ReliefStyle | newstyle | ) |

Sets the relief style of the edges of the given Gtk::Button widget.

Three styles exist, GTK_RELIEF_NORMAL, GTK_RELIEF_HALF, GTK_RELIEF_NONE. The default style is, as one can guess, GTK_RELIEF_NORMAL.

Parameters:

  newstyle | The GtkReliefStyle as described above.

void Gtk::Button::set_use_stock | ( | bool | use_stock = `true` | ) |

If `true`, the label set on the button is used as a stock id to select the stock item for the button.

Parameters:

  use_stock | `true` if the button should use a stock item.

void Gtk::Button::set_use_underline | ( | bool | use_underline = `true` | ) |

If true, an underline in the text of the button label indicates the next character should be used for the mnemonic accelerator key.

Parameters:

  use_underline | `true` if underlines in the text indicate mnemonics.

Glib::SignalProxy0< void > Gtk::Button::signal_activate | ( |  | ) |

Prototype:
  `void on_my_activate()`

Glib::SignalProxy0< void > Gtk::Button::signal_clicked | ( |  | ) |

Prototype:
  `void on_my_clicked()`

Glib::SignalProxy0< void > Gtk::Button::signal_enter | ( |  | ) |

Prototype:
  `void on_my_enter()`

Glib::SignalProxy0< void > Gtk::Button::signal_leave | ( |  | ) |

Prototype:
  `void on_my_leave()`

Glib::SignalProxy0< void > Gtk::Button::signal_pressed | ( |  | ) |

Prototype:
  `void on_my_pressed()`

Glib::SignalProxy0< void > Gtk::Button::signal_released | ( |  | ) |

Prototype:
  `void on_my_released()`

## Friends And Related Function Documentation

Gtk::Button* wrap | ( | GtkButton * | object,
|  | bool | take_copy = `false`
| ) |  | `[related]`

A Glib::wrap() method for this object.

Parameters:

  object | The C instance.
  take_copy | False if the result should take ownership of the C instance. True if it should take a new copy or ref.

Returns:
  A C++ instance that wraps this C instance.

The documentation for this class was generated from the following file:

- gtkmm/button.h