- Elementary
- Main
- Authors
- Examples
- Files
- Pages
- Types
- Modules

Macros | Functions
SegmentControl

## Macros
#define | elm_obj_segment_control_item_add(icon, label, ret) ELM_OBJ_SEGMENT_CONTROL_ID(ELM_OBJ_SEGMENT_CONTROL_SUB_ID_ITEM_ADD), EO_TYPECHECK(Evas_Object *, icon), EO_TYPECHECK(const char *, label), EO_TYPECHECK(Elm_Object_Item **, ret)
#define | elm_obj_segment_control_item_insert_at(icon, label, idx, ret) ELM_OBJ_SEGMENT_CONTROL_ID(ELM_OBJ_SEGMENT_CONTROL_SUB_ID_ITEM_INSERT_AT), EO_TYPECHECK(Evas_Object *, icon), EO_TYPECHECK(const char *, label), EO_TYPECHECK(int, idx), EO_TYPECHECK(Elm_Object_Item **, ret)
#define | elm_obj_segment_control_item_del_at(idx) ELM_OBJ_SEGMENT_CONTROL_ID(ELM_OBJ_SEGMENT_CONTROL_SUB_ID_ITEM_DEL_AT), EO_TYPECHECK(int, idx)
#define | elm_obj_segment_control_item_label_get(idx, ret) ELM_OBJ_SEGMENT_CONTROL_ID(ELM_OBJ_SEGMENT_CONTROL_SUB_ID_ITEM_LABEL_GET), EO_TYPECHECK(int, idx), EO_TYPECHECK(const char **, ret)
#define | elm_obj_segment_control_item_icon_get(idx, ret) ELM_OBJ_SEGMENT_CONTROL_ID(ELM_OBJ_SEGMENT_CONTROL_SUB_ID_ITEM_ICON_GET), EO_TYPECHECK(int, idx), EO_TYPECHECK(Evas_Object **, ret)
#define | elm_obj_segment_control_item_count_get(ret) ELM_OBJ_SEGMENT_CONTROL_ID(ELM_OBJ_SEGMENT_CONTROL_SUB_ID_ITEM_COUNT_GET), EO_TYPECHECK(int *, ret)
#define | elm_obj_segment_control_item_selected_get(ret) ELM_OBJ_SEGMENT_CONTROL_ID(ELM_OBJ_SEGMENT_CONTROL_SUB_ID_ITEM_SELECTED_GET), EO_TYPECHECK(Elm_Object_Item **, ret)
#define | elm_obj_segment_control_item_get(idx, ret) ELM_OBJ_SEGMENT_CONTROL_ID(ELM_OBJ_SEGMENT_CONTROL_SUB_ID_ITEM_GET), EO_TYPECHECK(int, idx), EO_TYPECHECK(Elm_Object_Item **, ret)

## Functions
int | elm_segment_control_item_index_get (const Elm_Object_Item *it)
| Get the index of an item. More...
Evas_Object * | elm_segment_control_item_object_get (const Elm_Object_Item *it)
| Get the real Evas(Edje) object created to implement the view of a given segment_control `item`. More...
void | elm_segment_control_item_selected_set (Elm_Object_Item *it, Eina_Bool select)
| Set the selected state of an item. More...
Evas_Object * | elm_segment_control_add (Evas_Object *parent)
| Add a new segment control widget to the given parent Elementary (container) object. More...
Elm_Object_Item * | elm_segment_control_item_add (Evas_Object *obj, Evas_Object *icon, const char *label)
| Append a new item to the segment control object. More...
Elm_Object_Item * | elm_segment_control_item_insert_at (Evas_Object *obj, Evas_Object *icon, const char *label, int index)
| Insert a new item to the segment control object at specified position. More...
void | elm_segment_control_item_del_at (Evas_Object *obj, int index)
| Remove a segment control item at given index from its parent, deleting it. More...
const char * | elm_segment_control_item_label_get (const Evas_Object *obj, int index)
| Get the label of item. More...
Evas_Object * | elm_segment_control_item_icon_get (const Evas_Object *obj, int index)
| Get the icon associated to the item. More...
int | elm_segment_control_item_count_get (const Evas_Object *obj)
| Get the Segment items count from segment control. More...
Elm_Object_Item * | elm_segment_control_item_selected_get (const Evas_Object *obj)
| Get the selected item. More...
Elm_Object_Item * | elm_segment_control_item_get (const Evas_Object *obj, int index)
| Get the item placed at specified index. More...

## Detailed Description

Segment control widget is a horizontal control made of multiple segment items, each segment item functioning similar to discrete two state button. A segment control groups the items together and provides compact single button with multiple equal size segments.

Segment item size is determined by base widget size and the number of items added. Only one segment item can be at selected state. A segment item can display combination of Text and any Evas_Object like Images or other widget.

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

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

- `"changed"` - When the user clicks on a segment item which is not previously selected and get selected. The event_info parameter is the segment item pointer.

Available styles for it:

- `"default"`

Default content parts of the segment control items that you can use for are:

- "icon" - An icon in a segment control item

Default text parts of the segment control items that you can use for are:

- "default" - Title label in a segment control item

Supported elm_object common APIs.

- elm_object_disabled_set
- elm_object_disabled_get

Supported elm_object_item common APIs.

- elm_object_item_del
- elm_object_item_part_text_set
- elm_object_item_part_text_get
- elm_object_item_part_content_set
- elm_object_item_part_content_get

Here is an example on its usage:

- Segment Control Example

## Macro Definition Documentation

#define elm_obj_segment_control_item_add | ( |  | icon,
|  |  | label,
|  |  | ret
| ) |  | ELM_OBJ_SEGMENT_CONTROL_ID(ELM_OBJ_SEGMENT_CONTROL_SUB_ID_ITEM_ADD), EO_TYPECHECK(Evas_Object *, icon), EO_TYPECHECK(const char *, label), EO_TYPECHECK(Elm_Object_Item **, ret)

Since
  1.8

Append a new item to the segment control object.

Parameters

  [in] | icon |
  [in] | label |
  [out] | ret |

See Also
  elm_segment_control_item_add

Referenced by elm_segment_control_item_add().

#define elm_obj_segment_control_item_count_get | ( |  | ret | ) | ELM_OBJ_SEGMENT_CONTROL_ID(ELM_OBJ_SEGMENT_CONTROL_SUB_ID_ITEM_COUNT_GET), EO_TYPECHECK(int *, ret)

Since
  1.8

Get the Segment items count from segment control.

Parameters

  [out] | ret |

See Also
  elm_segment_control_item_count_get

Referenced by elm_segment_control_item_count_get().

#define elm_obj_segment_control_item_del_at | ( |  | idx | ) | ELM_OBJ_SEGMENT_CONTROL_ID(ELM_OBJ_SEGMENT_CONTROL_SUB_ID_ITEM_DEL_AT), EO_TYPECHECK(int, idx)

Since
  1.8

Remove a segment control item at given index from its parent,

Parameters

  [in] | idx |

See Also
  elm_segment_control_item_del_at

Referenced by elm_segment_control_item_del_at().

#define elm_obj_segment_control_item_get | ( |  | idx,
|  |  | ret
| ) |  | ELM_OBJ_SEGMENT_CONTROL_ID(ELM_OBJ_SEGMENT_CONTROL_SUB_ID_ITEM_GET), EO_TYPECHECK(int, idx), EO_TYPECHECK(Elm_Object_Item **, ret)

Since
  1.8

Get the item placed at specified index.

Parameters

  [in] | idx |
  [out] | ret |

See Also
  elm_segment_control_item_get

Referenced by elm_segment_control_item_get().

#define elm_obj_segment_control_item_icon_get | ( |  | idx,
|  |  | ret
| ) |  | ELM_OBJ_SEGMENT_CONTROL_ID(ELM_OBJ_SEGMENT_CONTROL_SUB_ID_ITEM_ICON_GET), EO_TYPECHECK(int, idx), EO_TYPECHECK(Evas_Object **, ret)

Since
  1.8

Get the icon associated to the item.

Parameters

  [in] | idx |
  [out] | ret |

See Also
  elm_segment_control_item_icon_get

Referenced by elm_segment_control_item_icon_get().

#define elm_obj_segment_control_item_insert_at | ( |  | icon,
|  |  | label,
|  |  | idx,
|  |  | ret
| ) |  | ELM_OBJ_SEGMENT_CONTROL_ID(ELM_OBJ_SEGMENT_CONTROL_SUB_ID_ITEM_INSERT_AT), EO_TYPECHECK(Evas_Object *, icon), EO_TYPECHECK(const char *, label), EO_TYPECHECK(int, idx), EO_TYPECHECK(Elm_Object_Item **, ret)

Since
  1.8

Insert a new item to the segment control object at specified position.

Parameters

  [in] | icon |
  [in] | label |
  [in] | idx |
  [out] | ret |

See Also
  elm_segment_control_item_insert_at

Referenced by elm_segment_control_item_insert_at().

#define elm_obj_segment_control_item_label_get | ( |  | idx,
|  |  | ret
| ) |  | ELM_OBJ_SEGMENT_CONTROL_ID(ELM_OBJ_SEGMENT_CONTROL_SUB_ID_ITEM_LABEL_GET), EO_TYPECHECK(int, idx), EO_TYPECHECK(const char **, ret)

Since
  1.8

Get the label of item.

Parameters

  [in] | idx |
  [out] | ret |

See Also
  elm_segment_control_item_label_get

Referenced by elm_segment_control_item_label_get().

#define elm_obj_segment_control_item_selected_get | ( |  | ret | ) | ELM_OBJ_SEGMENT_CONTROL_ID(ELM_OBJ_SEGMENT_CONTROL_SUB_ID_ITEM_SELECTED_GET), EO_TYPECHECK(Elm_Object_Item **, ret)

Since
  1.8

Get the selected item.

Parameters

  [out] | ret |

See Also
  elm_segment_control_item_selected_get

Referenced by elm_segment_control_item_selected_get().

## Function Documentation

Evas_Object* elm_segment_control_add | ( | Evas_Object * | parent | ) |

Add a new segment control widget to the given parent Elementary (container) object.

Parameters

  parent | The parent object.

Returns
  a new segment control widget handle or `NULL`, on errors.

This function inserts a new segment control widget on the canvas.

Elm_Object_Item* elm_segment_control_item_add | ( | Evas_Object * | obj,
|  | Evas_Object * | icon,
|  | const char * | label
| ) |  |

Append a new item to the segment control object.

Parameters

  obj | The segment control object.
  icon | The icon object to use for the left side of the item. An icon can be any Evas object, but usually it is an icon created with elm_icon_add().
  label | The label of the item. Note that, NULL is different from empty string "".

Returns
  The created item or `NULL` upon failure.

A new item will be created and appended to the segment control, i.e., will be set as last item.

If it should be inserted at another position, elm_segment_control_item_insert_at() should be used instead.

Items created with this function can be deleted with function elm_object_item_del() or elm_object_item_del_at().

Note
  `label` set to `NULL` is different from empty string "". If an item only has icon, it will be displayed bigger and centered. If it has icon and label, even that an empty string, icon will be smaller and positioned at left.

Simple example:

sc = elm_segment_control_add(win);
ic = elm_icon_add(win);
elm_image_file_set(ic, "path/to/image", NULL);
elm_icon_resizable_set(ic, EINA_TRUE, EINA_TRUE);
elm_segment_control_item_add(sc, ic, "label");
evas_object_show(sc);

See Also
  elm_segment_control_item_insert_at()
  elm_object_item_del()

References elm_obj_segment_control_item_add.

int elm_segment_control_item_count_get | ( | const Evas_Object * | obj | ) |

Get the Segment items count from segment control.

Parameters

  obj | The segment control object.

Returns
  Segment items count.

It will just return the number of items added to segment control `obj`.

References elm_obj_segment_control_item_count_get.

void elm_segment_control_item_del_at | ( | Evas_Object * | obj,
|  | int | index
| ) |  |

Remove a segment control item at given index from its parent, deleting it.

Parameters

  obj | The segment control object.
  index | The position of the segment control item to be deleted.

Items can be added with elm_segment_control_item_add() or elm_segment_control_item_insert_at().

References elm_obj_segment_control_item_del_at.

Elm_Object_Item* elm_segment_control_item_get | ( | const Evas_Object * | obj,
|  | int | index
| ) |  |

Get the item placed at specified index.

Parameters

  obj | The segment control object.
  index | The index of the segment item.

Returns
  The segment control item or `NULL` on failure.

Index is the position of an item in segment control widget. Its range is from `0` to `count - 1` . Count is the number of items, that can be get with elm_segment_control_item_count_get().

References elm_obj_segment_control_item_get.

Evas_Object* elm_segment_control_item_icon_get | ( | const Evas_Object * | obj,
|  | int | index
| ) |  |

Get the icon associated to the item.

Parameters

  obj | The segment control object.
  index | The index of the segment item.

Returns
  The left side icon associated to the item at `index`.

The return value is a pointer to the icon associated to the item when it was created, with function elm_segment_control_item_add(), or later with function elm_object_item_part_content_set(). If no icon was passed as argument, it will return `NULL`.

See Also
  elm_segment_control_item_add()
  elm_object_item_part_content_set()

References elm_obj_segment_control_item_icon_get.

int elm_segment_control_item_index_get | ( | const Elm_Object_Item * | it | ) |

Get the index of an item.

Parameters

  it | The segment control item.

Returns
  The position of item in segment control widget.

Index is the position of an item in segment control widget. Its range is from `0` to `count - 1` . Count is the number of items, that can be get with elm_segment_control_item_count_get().

Elm_Object_Item* elm_segment_control_item_insert_at | ( | Evas_Object * | obj,
|  | Evas_Object * | icon,
|  | const char * | label,
|  | int | index
| ) |  |

Insert a new item to the segment control object at specified position.

Parameters

  obj | The segment control object.
  icon | The icon object to use for the left side of the item. An icon can be any Evas object, but usually it is an icon created with elm_icon_add().
  label | The label of the item.
  index | Item position. Value should be between 0 and items count.

Returns
  The created item or `NULL` upon failure.

Index values must be between `0`, when item will be prepended to segment control, and items count, that can be get with elm_segment_control_item_count_get(), case when item will be appended to segment control, just like elm_segment_control_item_add().

Items created with this function can be deleted with function elm_object_item_del() or elm_segment_control_item_del_at().

Note
  `label` set to `NULL` is different from empty string "". If an item only has icon, it will be displayed bigger and centered. If it has icon and label, even that an empty string, icon will be smaller and positioned at left.

See Also
  elm_segment_control_item_add()
  elm_segment_control_item_count_get()
  elm_object_item_del()

References elm_obj_segment_control_item_insert_at.

const char* elm_segment_control_item_label_get | ( | const Evas_Object * | obj,
|  | int | index
| ) |  |

Get the label of item.

Parameters

  obj | The segment control object.
  index | The index of the segment item.

Returns
  The label of the item at `index`.

The return value is a pointer to the label associated to the item when it was created, with function elm_segment_control_item_add(), or later with function elm_object_item_text_set. If no label was passed as argument, it will return `NULL`.

See Also
  elm_object_item_text_set() for more details.
  elm_segment_control_item_add()

References elm_obj_segment_control_item_label_get.

Evas_Object* elm_segment_control_item_object_get | ( | const Elm_Object_Item * | it | ) |

Get the real Evas(Edje) object created to implement the view of a given segment_control `item`.

Parameters

  it | The segment control item.

Returns
  The base Edje object associated with `it`.

Base object is the `Evas_Object` that represents that item.

Elm_Object_Item* elm_segment_control_item_selected_get | ( | const Evas_Object * | obj | ) |

Get the selected item.

Parameters

  obj | The segment control object.

Returns
  The selected item or `NULL` if none of segment items is selected.

The selected item can be unselected with function elm_segment_control_item_selected_set().

The selected item always will be highlighted on segment control.

References elm_obj_segment_control_item_selected_get.

void elm_segment_control_item_selected_set | ( | Elm_Object_Item * | it,
|  | Eina_Bool | select
| ) |  |

Set the selected state of an item.

Parameters

  it | The segment control item
  select | The selected state

This sets the selected state of the given item `it`. `EINA_TRUE` for selected, `EINA_FALSE` for not selected.

If a new item is selected the previously selected will be unselected. Selected item can be got with function elm_segment_control_item_selected_get().

The selected item always will be highlighted on segment control.

See Also
  elm_segment_control_item_selected_get()

Copyright ©2000-2014 Enlightenment.org - Samsung Electronics supports the EFL Documentation Project - Generated Wed Jan 8 2014 20:51:14