Button
Elementary

## Functions

Evas_Object * | elm_button_add (Evas_Object *parent)
| Add a new button to the parent's canvas.
void | elm_button_autorepeat_initial_timeout_set (Evas_Object *obj, double t)
| The initial timeout before the autorepeat event is generated.
double | elm_button_autorepeat_initial_timeout_get (const Evas_Object *obj)
| The initial timeout before the autorepeat event is generated.
void | elm_button_autorepeat_gap_timeout_set (Evas_Object *obj, double t)
| The interval between each generated autorepeat event.
double | elm_button_autorepeat_gap_timeout_get (const Evas_Object *obj)
| The interval between each generated autorepeat event.
void | elm_button_autorepeat_set (Evas_Object *obj, Eina_Bool on)
| Turn on/off the autorepeat event generated when the button is kept pressed.
Eina_Bool | elm_button_autorepeat_get (const Evas_Object *obj)
| Turn on/off the autorepeat event generated when the button is kept pressed.

## Detailed Description

This is a push-button. Press it and run some function. It can contain a simple label and icon object and it also has an autorepeat feature.

This widget inherits from the Layout one, so that all the functions acting on it also work for button objects.

This widget emits the following signals, besides the ones sent from Layout :

- "clicked": the user clicked the button (press/release).
- "repeated": the user pressed the button without releasing it.
- "pressed": button was pressed.
- "unpressed": button was released after being pressed.
- `"focused"` : When the button has received focus. (since 1.8)
- `"unfocused"` : When the button has lost focus. (since 1.8) In all cases, the `event` parameter of the callback will be `NULL`.

Also, defined in the default theme, the button has the following styles available:

- default: a normal button.
- anchor: Like default, but the button fades away when the mouse is not over it, leaving only the text or icon.
- hoversel_vertical: Internally used by Hoversel to give a continuous look across its options.
- hoversel_vertical_entry: Another internal for Hoversel.
- naviframe: Internally used by Elm_Naviframe for its back button.
- colorselector: Internally used by Colorselector for its left and right buttons.

Default content parts of the button widget that you can use for are:

- "icon" - An icon of the button

Default text parts of the button widget that you can use for are:

- "default" - A label of the button

Supported elm_object common APIs.

- elm_object_part_text_set
- elm_object_part_text_get
- elm_object_part_content_set
- elm_object_part_content_get
- elm_object_part_content_unset
- elm_object_signal_emit
- elm_object_signal_callback_add
- elm_object_signal_callback_del

Here is some sample code using it:

- Button - Hello, Button!
- Button - Complete example

## Function Documentation

## elm_button_add()

Evas_Object * elm_button_add | ( | Evas_Object * | parent | ) |

Add a new button to the parent's canvas.

Parameters

  parent | The parent object

Returns
  The new object or NULL if it cannot be created

References EINA_SAFETY_ON_NULL_RETURN_VAL.

Referenced by elm_color_class_editor_add(), and elm_quicklaunch_seed().

## elm_button_autorepeat_initial_timeout_set()

void elm_button_autorepeat_initial_timeout_set | ( | Evas_Object * | obj,
|  | double | t )

The initial timeout before the autorepeat event is generated.

Sets the timeout, in seconds, since the button is pressed until the first `repeated` signal is emitted. If `t` is 0.0 or less, there won't be any delay and the event will be fired the moment the button is pressed.

See also elm_button_autorepeat_set, elm_button_autorepeat_gap_timeout_set.

Parameters

  [in] | t | Timeout in seconds

## elm_button_autorepeat_initial_timeout_get()

double elm_button_autorepeat_initial_timeout_get | ( | const Evas_Object * | obj | ) |

The initial timeout before the autorepeat event is generated.

Sets the timeout, in seconds, since the button is pressed until the first `repeated` signal is emitted. If `t` is 0.0 or less, there won't be any delay and the event will be fired the moment the button is pressed.

See also elm_button_autorepeat_set, elm_button_autorepeat_gap_timeout_set.

Returns
  Timeout in seconds

## elm_button_autorepeat_gap_timeout_set()

void elm_button_autorepeat_gap_timeout_set | ( | Evas_Object * | obj,
|  | double | t )

The interval between each generated autorepeat event.

After the first `repeated` event is fired, all subsequent ones will follow after a delay of `t` seconds for each.

See also elm_button_autorepeat_initial_timeout_set.

Parameters

  [in] | t | Interval in seconds

## elm_button_autorepeat_gap_timeout_get()

double elm_button_autorepeat_gap_timeout_get | ( | const Evas_Object * | obj | ) |

The interval between each generated autorepeat event.

After the first `repeated` event is fired, all subsequent ones will follow after a delay of `t` seconds for each.

See also elm_button_autorepeat_initial_timeout_set.

Returns
  Interval in seconds

## elm_button_autorepeat_set()

void elm_button_autorepeat_set | ( | Evas_Object * | obj,
|  | Eina_Bool | on )

Turn on/off the autorepeat event generated when the button is kept pressed.

When off, no autorepeat is performed and buttons emit a normal `clicked` signal when they are clicked.

When on, keeping a button pressed will continuously emit a `repeated` signal until the button is released. The time it takes until it starts emitting the signal is given by elm_button_autorepeat_initial_timeout_set, and the time between each new emission by elm_button_autorepeat_gap_timeout_set.

Parameters

  [in] | on | A bool to turn on/off the event

## elm_button_autorepeat_get()

Eina_Bool elm_button_autorepeat_get | ( | const Evas_Object * | obj | ) |

Turn on/off the autorepeat event generated when the button is kept pressed.

When off, no autorepeat is performed and buttons emit a normal `clicked` signal when they are clicked.

When on, keeping a button pressed will continuously emit a `repeated` signal until the button is released. The time it takes until it starts emitting the signal is given by elm_button_autorepeat_initial_timeout_set, and the time between each new emission by elm_button_autorepeat_gap_timeout_set.

Returns
  A bool to turn on/off the event