# Gtk::Button Class Reference
[Widgets]

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

Inherits Gtk::Bin.

Inherited by Gtk::ColorButton, Gtk::FontButton, Gtk::LinkButton, Gtk::OptionMenu, Gtk::ScaleButton, and Gtk::ToggleButton.

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 | pressed ()
void | released ()
void | clicked ()
void | enter ()
void | leave ()
void | set_relief (ReliefStyle newstyle)
ReliefStyle | get_relief () const
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
| Return value: `true` if an embedded underline in the button label.
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
| Return value: `true` if the button label is used to.
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
| Return value: `true` if the button grabs focus when it is clicked with.
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::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.
Glib::PropertyProxy_ReadOnly < Glib::ustring > | property_label () const
| Text of the label widget inside the button.
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.
Glib::PropertyProxy_ReadOnly < bool > | property_use_underline () const
| If set.
Glib::PropertyProxy< bool > | property_use_stock ()
| If set.
Glib::PropertyProxy_ReadOnly < bool > | property_use_stock () const
| If set.
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::Pixmap 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 | ( |  | ) |

void Gtk::Button::enter | ( |  | ) |

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.

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

Return value: `true` if the button grabs focus when it is clicked with.

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

Since gtkmm 2.4:

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.

newin2p6

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.

newin2p6

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

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

Returns:
  The position

Since gtkmm 2.10:

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

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

Return value: `true` if the button label is used to.

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

Return value: `true` if an embedded underline in the button label.

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::Bin.

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

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

Provides access to the underlying C GtkObject.

Reimplemented from Gtk::Bin.

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

void Gtk::Button::leave | ( |  | ) |

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]`

void Gtk::Button::pressed | ( |  | ) |

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<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<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<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<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_ReadOnly<Glib::ustring> Gtk::Button::property_label | ( |  | ) | const

Text of the label widget inside the button.

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.

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<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<bool> Gtk::Button::property_use_stock | ( |  | ) | const

If set.

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.

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.

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.

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

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

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

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

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::released | ( |  | ) |

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 | ) |

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