Elementary segment control widget

This code snippet demonstrates how to create and use elementary segment control widget.
// called when segment control item is selected
static void segment_control_cb(void *data, Evas_Object *obj, void *event_info) {
	Elm_Object_Item* item = event_info;
	dlog_print(DLOG_DEBUG, LOG_TAG, "Selected: %s", elm_object_item_text_get(item));
}

static void segment_control_test(appdata_s *ad) {

	// create a segment control object
	Evas_Object *segment_control = elm_segment_control_add(ad->win);
	evas_object_size_hint_weight_set(segment_control, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
	elm_win_resize_object_add(ad->win, segment_control);
	evas_object_show(segment_control);

	// add an item with text
	elm_segment_control_item_add(segment_control, NULL, "Item 1");

	// add an item with icon
	Evas_Object *icon = elm_icon_add(ad->win);
	elm_icon_standard_set(icon, "home");
	elm_segment_control_item_add(segment_control, icon, "Item 2");

	// insert an item on the front
	elm_segment_control_item_insert_at(segment_control, NULL, "Item 3", 0);

	// callback for segment control changes
	evas_object_smart_callback_add(segment_control, "changed", segment_control_cb, NULL);
}

Responses

0 Replies