1 #include <Elementary.h>
5 * @defgroup SegmentControl SegmentControl
8 * SegmentControl Widget is a horizontal control made of multiple segments, each segment item
9 * functioning similar to discrete two state button. A segmented control affords a compact means to group together a number of controls.
10 * Only one Segment item can be at selected state. A segmented control item can display combination of Text and any Evas_Object like layout or other widget.
12 typedef struct _Widget_Data Widget_Data;
20 Elm_Segment_Item *selected_item;
24 struct _Elm_Segment_Item
32 static const char *widtype = NULL;
33 static void _sizing_eval(Evas_Object *obj);
34 static void _del_hook(Evas_Object *obj);
35 static void _theme_hook(Evas_Object *obj);
36 static void _disable_hook(Evas_Object *obj);
37 static void _item_free(Elm_Segment_Item *it);
38 static void _segment_off(Elm_Segment_Item *it);
39 static void _segment_on(Elm_Segment_Item *it);
40 static void _position_items(Widget_Data *wd);
41 static void _on_move_resize(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__,
42 void *event_info __UNUSED__);
43 static void _mouse_up(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__,
44 void *event_info __UNUSED__);
45 static void _mouse_down(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__,
46 void *event_info __UNUSED__);
47 static void _swallow_item_objects(Elm_Segment_Item *it);
48 static void _update_list(Widget_Data *wd);
49 static Elm_Segment_Item * _item_find(const Evas_Object *obj, int index);
50 static Elm_Segment_Item* _item_new(Evas_Object *obj, Evas_Object *icon, const char *label );
53 _sizing_eval(Evas_Object *obj)
56 Evas_Coord minw = -1, minh = -1;
59 wd = elm_widget_data_get(obj);
62 elm_coords_finger_size_adjust(1, &minw, 1, &minh);
63 edje_object_size_min_restricted_calc(wd->base, &minw, &minh, minw, minh);
64 elm_coords_finger_size_adjust(1, &minw, 1, &minh);
66 evas_object_size_hint_min_get(obj, &w, &h);
67 if (w > minw) minw = w;
68 if (h > minh) minh = h;
69 evas_object_size_hint_min_set(obj, minw, minh);
73 _del_hook(Evas_Object *obj)
78 wd = elm_widget_data_get(obj);
81 EINA_LIST_FREE(wd->seg_items, it) _item_free(it);
87 _theme_hook(Evas_Object *obj)
93 wd = elm_widget_data_get(obj);
96 _elm_theme_object_set(obj, wd->base, "segment_control", "base", elm_widget_style_get(obj));
97 edje_object_scale_set(wd->base, elm_widget_scale_get(wd->base) *_elm_config->scale);
99 EINA_LIST_FOREACH(wd->seg_items, l, it)
101 _elm_theme_object_set(obj, it->base.view, "segment_control", "item", elm_widget_style_get(obj));
102 edje_object_scale_set(it->base.view, elm_widget_scale_get(it->base.view) *_elm_config->scale);
110 _disable_hook(Evas_Object *obj)
114 wd = elm_widget_data_get(obj);
121 _elm_list_data_get(const Eina_List *list)
123 Elm_Segment_Item *it = eina_list_data_get(list);
127 edje_object_signal_emit(it->base.view, "elm,state,segment,selected", "elm");
128 return it->base.view;
131 /* TODO Can focus stay on Evas_Object which is not a elm_widget ?? */
133 _focus_next_hook(const Evas_Object *obj, Elm_Focus_Direction dir, Evas_Object **next)
137 const Eina_List *items;
138 void *(*list_data_get) (const Eina_List *list);
140 wd = elm_widget_data_get(obj)
141 if ((!wd)) return EINA_FALSE;
144 /* TODO: Change this to use other chain */
145 if ((items = elm_widget_focus_custom_chain_get(obj)))
146 list_data_get = eina_list_data_get;
149 items = wd->seg_items;
150 list_data_get = _elm_list_data_get;
151 if (!items) return EINA_FALSE;
153 return elm_widget_focus_list_next_get(obj, items, list_data_get, dir, next);
158 _item_free(Elm_Segment_Item *it)
164 wd = elm_widget_item_data_get(it);
167 if(wd->selected_item == it) wd->selected_item = NULL;
168 if(wd->seg_items) wd->seg_items = eina_list_remove(wd->seg_items, it);
170 elm_widget_item_pre_notify_del(it);
172 if (it->icon) evas_object_del(it->icon);
173 if (it->label) evas_object_del(it->label);
175 elm_widget_item_del(it);
179 _segment_off(Elm_Segment_Item *it)
186 wd = elm_widget_item_data_get(it);
189 edje_object_signal_emit(it->base.view, "elm,state,segment,normal", "elm");
192 snprintf(buf, sizeof(buf), "%s/segment_normal", elm_widget_style_get(wd->obj));
193 elm_object_style_set(it->label, buf);
196 if (wd->selected_item == it) wd->selected_item = NULL;
200 _segment_on(Elm_Segment_Item *it)
207 wd = elm_widget_item_data_get(it);
209 if (it == wd->selected_item) return;
211 if (wd->selected_item) _segment_off(wd->selected_item);
213 edje_object_signal_emit(it->base.view, "elm,state,segment,selected", "elm");
216 snprintf(buf, sizeof(buf), "%s/segment_selected", elm_widget_style_get(wd->obj));
217 elm_object_style_set(it->label, buf);
220 wd->selected_item = it;
221 evas_object_smart_callback_call(wd->obj, "changed", (void*) it->seg_index);
225 _position_items(Widget_Data *wd)
228 Elm_Segment_Item *it;
229 int bx, by, bw, bh, position;
231 wd->item_count = eina_list_count(wd->seg_items);
232 if (wd->item_count <= 0) return;
234 evas_object_geometry_get(wd->base, &bx, &by, &bw, &bh);
235 wd->item_width = bw / wd->item_count;
238 EINA_LIST_FOREACH(wd->seg_items, l, it)
240 evas_object_move(it->base.view, bx, by );
241 evas_object_resize(it->base.view, wd->item_width, bh );
242 bx += wd->item_width;
247 _on_move_resize(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__,
248 void *event_info __UNUSED__)
251 Evas_Coord law = 0, lah = 0;
253 Elm_Segment_Item *it = NULL;
254 const char *lbl_area;
256 wd = elm_widget_data_get(data);
261 EINA_LIST_FOREACH(wd->seg_items, l, it)
263 lbl_area = edje_object_data_get(it->base.view, "label.wrap.part");
264 if (it->label && lbl_area)
266 edje_object_part_geometry_get(it->base.view, lbl_area, NULL, NULL, &law, &lah);
267 elm_label_wrap_width_set(it->label, law);
268 elm_label_wrap_height_set(it->label, lah);
274 _mouse_up(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__,
278 Elm_Segment_Item *it;
279 Evas_Event_Mouse_Up *ev;
280 Evas_Coord x, y, w, h;
286 wd = elm_widget_item_data_get(it);
289 if (elm_widget_disabled_get(wd->obj)) return;
291 if (it == wd->selected_item) return;
294 evas_object_geometry_get(it->base.view, &x, &y, &w, &h);
296 if((ev->output.x > x) && (ev->output.x < (x+w)) && (ev->output.y > y) && (ev->output.y < (y+h)))
300 edje_object_signal_emit(it->base.view, "elm,state,segment,normal", "elm");
303 snprintf(buf, sizeof(buf), "%s/segment_normal", elm_widget_style_get(obj));
304 elm_object_style_set(it->label, buf);
310 _mouse_down(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__,
311 void *event_info __UNUSED__)
314 Elm_Segment_Item *it;
320 wd = elm_widget_item_data_get(it);
323 if (elm_widget_disabled_get(wd->obj)) return;
325 if (it == wd->selected_item) return;
327 edje_object_signal_emit(it->base.view, "elm,state,segment,pressed", "elm");
330 snprintf(buf, sizeof(buf), "%s/segment_pressed", elm_widget_style_get(wd->obj));
331 elm_object_style_set(it->label, buf);
336 _swallow_item_objects(Elm_Segment_Item *it)
338 Evas_Coord law = 0, lah = 0;
339 const char *lbl_area;
345 edje_object_part_swallow(it->base.view, "elm.swallow.icon", it->icon);
346 edje_object_signal_emit(it->base.view, "elm,state,icon,visible", "elm");
349 edje_object_signal_emit(it->base.view, "elm,state,icon,hidden", "elm");
353 edje_object_part_swallow(it->base.view, "elm.swallow.label", it->label);
354 edje_object_signal_emit(it->base.view, "elm,state,text,visible", "elm");
356 lbl_area = edje_object_data_get(it->base.view, "label.wrap.part");
359 edje_object_part_geometry_get(it->base.view, lbl_area, NULL, NULL, &law, &lah );
360 elm_label_wrap_width_set(it->label, law);
361 elm_label_wrap_height_set(it->label, lah);
365 edje_object_signal_emit(it->base.view, "elm,state,text,hidden", "elm");
369 _update_list(Widget_Data *wd)
372 Elm_Segment_Item *it = NULL;
378 if (wd->item_count == 1)
380 it = eina_list_nth(wd->seg_items, 0);
383 //Set the segment type
384 edje_object_signal_emit(it->base.view, "elm,type,segment,single", "elm");
386 //Set the segment state
387 if (wd->selected_item == it)
389 edje_object_signal_emit(it->base.view, "elm,state,segment,selected", "elm");
392 snprintf(buf, sizeof(buf), "%s/segment_selected", elm_widget_style_get(wd->obj));
393 elm_object_style_set(it->label, buf);
397 edje_object_signal_emit(it->base.view, "elm,state,segment,normal", "elm");
399 if (elm_widget_disabled_get(wd->obj))
401 edje_object_signal_emit(it->base.view, "elm,state,disabled", "elm");
404 snprintf(buf, sizeof(buf), "%s/segment_disabled", elm_widget_style_get(wd->obj));
405 elm_object_style_set(it->label, buf);
409 _swallow_item_objects(it);
414 EINA_LIST_FOREACH(wd->seg_items, l, it)
416 it->seg_index = index;
418 //Set the segment type
420 edje_object_signal_emit(it->base.view, "elm,type,segment,left", "elm");
421 else if(index == wd->item_count-1)
422 edje_object_signal_emit(it->base.view, "elm,type,segment,right", "elm");
424 edje_object_signal_emit(it->base.view, "elm,type,segment,middle", "elm");
426 //Set the segment state
427 if (wd->selected_item == it)
429 edje_object_signal_emit(it->base.view, "elm,state,segment,selected", "elm");
432 snprintf(buf, sizeof(buf), "%s/segment_selected", elm_widget_style_get(wd->obj));
433 elm_object_style_set(it->label, buf);
437 edje_object_signal_emit(it->base.view, "elm,state,segment,normal", "elm");
439 if (elm_widget_disabled_get(wd->obj))
441 edje_object_signal_emit(it->base.view, "elm,state,disabled", "elm");
444 snprintf(buf, sizeof(buf), "%s/segment_disabled", elm_widget_style_get(wd->obj));
445 elm_object_style_set(it->label, buf);
449 _swallow_item_objects(it);
455 static Elm_Segment_Item *
456 _item_find(const Evas_Object *obj, int index)
459 Elm_Segment_Item *it;
461 wd = elm_widget_data_get(obj);
462 if (!wd) return NULL;
464 it = eina_list_nth(wd->seg_items, index);
468 static Elm_Segment_Item*
469 _item_new(Evas_Object *obj, Evas_Object *icon, const char *label )
471 Elm_Segment_Item *it;
475 wd = elm_widget_data_get(obj);
476 if (!wd) return NULL;
478 it = elm_widget_item_new(obj, Elm_Segment_Item);
479 if (!it) return NULL;
480 elm_widget_item_data_set(it, wd);
482 it->base.view = edje_object_add(evas_object_evas_get(obj));
483 edje_object_scale_set(it->base.view, elm_widget_scale_get(it->base.view) *_elm_config->scale);
484 evas_object_smart_member_add(it->base.view, obj);
485 elm_widget_sub_object_add(obj, it->base.view);
486 _elm_theme_object_set(obj, it->base.view, "segment_control", "item", elm_object_style_get(obj));
490 it->label = elm_label_add(obj);
491 elm_widget_sub_object_add(it->base.view, it->label);
492 snprintf(buf, sizeof(buf), "%s/segment_normal", elm_widget_style_get(obj));
493 elm_object_style_set(it->label, buf);
494 elm_label_label_set(it->label, label);
495 elm_label_ellipsis_set(it->label, EINA_TRUE);
496 evas_object_show(it->label);
500 if (it->icon) elm_widget_sub_object_add(it->base.view, it->icon);
501 evas_object_event_callback_add(it->base.view, EVAS_CALLBACK_MOUSE_DOWN, _mouse_down, it);
502 evas_object_event_callback_add(it->base.view, EVAS_CALLBACK_MOUSE_UP, _mouse_up, it);
503 evas_object_show(it->base.view);
509 * Create new SegmentControl.
510 * @param [in] parent The parent object
511 * @return The new object or NULL if it cannot be created
513 * @ingroup SegmentControl SegmentControl
516 elm_segment_control_add(Evas_Object *parent)
522 EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
524 wd = ELM_NEW(Widget_Data);
525 e = evas_object_evas_get(parent);
527 obj = elm_widget_add(e);
528 ELM_SET_WIDTYPE(widtype, "segment_control");
529 elm_widget_type_set(obj, "segment_control");
530 elm_widget_sub_object_add(parent, obj);
531 elm_widget_data_set(obj, wd);
532 elm_widget_del_hook_set(obj, _del_hook);
533 elm_widget_theme_hook_set(obj, _theme_hook);
534 elm_widget_disable_hook_set(obj, _disable_hook);
537 /* TODO Can focus stay on Evas_Object which is not a elm_widget ?? */
538 elm_widget_focus_next_hook_set(obj, _focus_next_hook);
543 wd->base = edje_object_add(e);
544 edje_object_scale_set(wd->base, elm_widget_scale_get(wd->base) *_elm_config->scale);
545 _elm_theme_object_set(obj, wd->base, "segment_control", "base", "default");
546 elm_widget_resize_object_set(obj, wd->base);
548 evas_object_event_callback_add(obj, EVAS_CALLBACK_RESIZE, _on_move_resize, obj);
549 evas_object_event_callback_add(obj, EVAS_CALLBACK_MOVE, _on_move_resize, obj);
556 * Add new segment item to SegmentControl.
557 * @param [in] obj The SegmentControl object
558 * @param [in] icon Any Objects like icon, Label, layout etc
559 * @param [in] label The label for added segment item. Note that, NULL is different from empty string "".
560 * @return The new segment item or NULL if it cannot be created
562 * @ingroup SegmentControl SegmentControl
564 EAPI Elm_Segment_Item *
565 elm_segment_control_item_add(Evas_Object *obj, Evas_Object *icon,
568 ELM_CHECK_WIDTYPE(obj, widtype) NULL;
569 Elm_Segment_Item *it;
572 wd = elm_widget_data_get(obj);
573 if (!wd) return NULL;
575 it = _item_new(obj, icon, label);
576 if (!it) return NULL;
578 wd->seg_items = eina_list_append(wd->seg_items, it);
585 * Insert a new segment item to SegmentControl.
586 * @param [in] obj The SegmentControl object
587 * @param [in] icon Any Objects like icon, Label, layout etc
588 * @param [in] label The label for added segment item. Note that, NULL is different from empty string "".
589 * @param [in] index Segment item location. Value should be between 0 and
590 * Existing total item count( @see elm_segment_control_item_count_get() )
591 * @return The new segment item or NULL if it cannot be created
593 * @ingroup SegmentControl SegmentControl
595 EAPI Elm_Segment_Item *
596 elm_segment_control_item_insert_at(Evas_Object *obj, Evas_Object *icon,
597 const char *label, int index)
599 ELM_CHECK_WIDTYPE(obj, widtype) NULL;
600 Elm_Segment_Item *it, *it_rel;
603 wd = elm_widget_data_get(obj);
604 if (!wd) return NULL;
605 if (index < 0) index = 0;
607 it = _item_new(obj, icon, label);
608 if (!it) return NULL;
610 it_rel = _item_find(obj, index);
612 wd->seg_items = eina_list_prepend_relative(wd->seg_items, it, it_rel);
614 wd->seg_items = eina_list_append(wd->seg_items, it);
621 * Delete a segment item from SegmentControl
622 * @param [in] obj The SegmentControl object
623 * @param [in] it The segment item to be deleted
625 * @ingroup SegmentControl SegmentControl
628 elm_segment_control_item_del(Elm_Segment_Item *it)
630 ELM_WIDGET_ITEM_WIDTYPE_CHECK_OR_RETURN(it);
633 wd = elm_widget_item_data_get(it);
641 * Delete a segment item of given index from SegmentControl
642 * @param [in] obj The SegmentControl object
643 * @param [in] index The position at which segment item to be deleted
645 * @ingroup SegmentControl SegmentControl
648 elm_segment_control_item_del_at(Evas_Object *obj, int index)
650 ELM_CHECK_WIDTYPE(obj, widtype);
651 Elm_Segment_Item *it;
654 wd = elm_widget_data_get(obj);
657 it = _item_find(obj, index);
664 * Get the label of a segment item.
665 * @param [in] obj The SegmentControl object
666 * @param [in] index The index of the segment item
667 * @return The label of the segment item
669 * @ingroup SegmentControl SegmentControl
672 elm_segment_control_item_label_get(Evas_Object *obj, int index)
674 ELM_CHECK_WIDTYPE(obj, widtype) NULL;
675 Elm_Segment_Item *it;
677 it = _item_find(obj, index);
678 if (it && it->label) return elm_label_label_get(it->label);
684 * Set the label of a segment item.
685 * @param [in] it The SegmentControl Item
686 * @param [in] label New label text.
688 * @ingroup SegmentControl SegmentControl
691 elm_segment_control_item_label_set(Elm_Segment_Item* it, const char* label)
693 ELM_WIDGET_ITEM_WIDTYPE_CHECK_OR_RETURN(it);
697 wd = elm_widget_item_data_get(it);
700 if (!label && !it->label) return; //No label, return
701 if (label && !it->label) // Create Label Object
703 it->label = elm_label_add(it->base.view);
704 elm_widget_sub_object_add(it->base.view, it->label);
705 elm_label_label_set(it->label, label);
706 elm_label_ellipsis_set(it->label, EINA_TRUE);
707 evas_object_show(it->label);
709 if(wd->selected_item == it )
711 snprintf(buf, sizeof(buf), "%s/segment_selected", elm_widget_style_get(wd->obj));
712 elm_object_style_set(it->label, buf);
716 snprintf(buf, sizeof(buf), "%s/segment_normal", elm_widget_style_get(wd->obj));
717 elm_object_style_set(it->label, buf);
720 else if (!label && it->label) // Delete Label Object
722 evas_object_del(it->label);
725 else // Update the text
726 elm_label_label_set(it->label, label);
728 _swallow_item_objects( it );
732 * Get the icon of a segment item of SegmentControl
733 * @param [in] obj The SegmentControl object
734 * @param [in] index The index of the segment item
735 * @return The icon object.
737 * @ingroup SegmentControl SegmentControl
740 elm_segment_control_item_icon_get(const Evas_Object *obj, int index)
742 ELM_CHECK_WIDTYPE(obj, widtype) NULL;
743 Elm_Segment_Item *it;
745 it = _item_find(obj, index);
746 if (it) return it->icon;
752 * Set the Icon to the segment item
753 * @param [in] it The SegmentControl Item
754 * @param [in] icon Objects like Layout, Icon, Label etc...
756 * @ingroup SegmentControl SegmentControl
759 elm_segment_control_item_icon_set(Elm_Segment_Item *it, Evas_Object *icon)
761 ELM_WIDGET_ITEM_WIDTYPE_CHECK_OR_RETURN(it);
763 //Remove the existing icon
766 edje_object_part_unswallow(it->base.view, it->icon);
767 evas_object_del(it->icon);
772 if (it->icon) elm_widget_sub_object_add(it->base.view, it->icon);
773 _swallow_item_objects( it );
777 * Get the Segment items count from SegmentControl
778 * @param [in] obj The SegmentControl object
779 * @return Segment items count.
781 * @ingroup SegmentControl SegmentControl
784 elm_segment_control_item_count_get(const Evas_Object *obj)
786 ELM_CHECK_WIDTYPE(obj, widtype) 0;
789 wd = elm_widget_data_get(obj);
792 return eina_list_count(wd->seg_items);
796 * Get the base object of segment item.
797 * @param [in] it The Segment item
798 * @return obj The base object of the segment item.
800 * @ingroup SegmentControl SegmentControl
803 elm_segment_control_item_object_get(const Elm_Segment_Item *it)
805 ELM_WIDGET_ITEM_WIDTYPE_CHECK_OR_RETURN(it, NULL);
807 return it->base.view;
811 * Get the selected segment item in the SegmentControl
812 * @param [in] obj The SegmentControl object
813 * @return Selected Segment Item. NULL if none of segment item is selected.
815 * @ingroup SegmentControl SegmentControl
817 EAPI Elm_Segment_Item*
818 elm_segment_control_item_selected_get(const Evas_Object *obj)
820 ELM_CHECK_WIDTYPE(obj, widtype) NULL;
823 wd = elm_widget_data_get(obj);
824 if (!wd) return NULL;
826 return wd->selected_item;
830 * Select/unselect a particular segment item of SegmentControl
831 * @param [in] it The Segment item that is to be selected or unselected.
832 * @param [in] select Passing EINA_TRUE will select the segment item and EINA_FALSE will unselect.
834 * @ingroup SegmentControl SegmentControl
837 elm_segment_control_item_selected_set(Elm_Segment_Item *it, Eina_Bool select)
839 ELM_WIDGET_ITEM_WIDTYPE_CHECK_OR_RETURN(it);
842 wd = elm_widget_item_data_get(it);
845 if (it == wd->selected_item)
847 if (select) return; //already in selected selected state.
859 * Get the Segment Item from the specified Index.
860 * @param [in] obj The Segment Control object.
861 * @param [in] index The index of the segment item.
862 * @return The Segment item.
864 * @ingroup SegmentControl SegmentControl
866 EAPI Elm_Segment_Item *
867 elm_segment_control_item_get(const Evas_Object *obj, int index)
869 ELM_CHECK_WIDTYPE(obj, widtype) NULL;
870 Elm_Segment_Item *it;
872 it = _item_find(obj, index);
878 * Get the index of a Segment item in the SegmentControl
879 * @param [in] it The Segment Item.
880 * @return Segment Item index.
882 * @ingroup SegmentControl SegmentControl
885 elm_segment_control_item_index_get(const Elm_Segment_Item *it)
887 ELM_WIDGET_ITEM_WIDTYPE_CHECK_OR_RETURN(it, -1);
889 return it->seg_index;
892 ////////////////////////////////// BEGIN //////////////////////////////////////////////
893 /////////////////////////// OLD SLP APIs - TO BE DEPRECATED /////////////////////////////
894 /////////////////////////////////////////////////////////////////////////////////////////
897 elm_segment_control_get_segment_count(Evas_Object *obj)
899 fprintf(stderr, "=============================> Warning!!! <========================\n");
900 fprintf(stderr, "==> elm_segment_control_get_segment_count() is deprecated. <=======\n");
901 fprintf(stderr, "===> Please use elm_segment_control_item_count_get() instead. <====\n");
902 fprintf(stderr, "===================================================================\n");
903 return elm_segment_control_item_count_get(obj);
906 EAPI Elm_Segment_Item *
907 elm_segment_control_selected_segment_get(const Evas_Object *obj, int *value)
909 Elm_Segment_Item *it;
910 it = elm_segment_control_item_selected_get(obj);
911 if (!it) return NULL;
912 *value = it->seg_index;
914 fprintf(stderr, "=============================> Warning!!! <===========================\n");
915 fprintf(stderr, "==> elm_segment_control_selected_segment_get() is deprecated. <=======\n");
916 fprintf(stderr, "===> Please use elm_segment_control_item_selected_get() instead. <====\n");
917 fprintf(stderr, "======================================================================\n");
922 elm_segment_control_get_segment_icon_at(Evas_Object *obj, unsigned int index)
924 fprintf(stderr, "=============================> Warning!!! <==========================\n");
925 fprintf(stderr, "==> elm_segment_control_get_segment_icon_at() is deprecated. <=======\n");
926 fprintf(stderr, "=====> Please use elm_segment_control_item_icon_get() instead. <=====\n");
927 fprintf(stderr, "=====================================================================\n");
928 return elm_segment_control_item_icon_get(obj, index);
932 elm_segment_control_get_segment_label_at(Evas_Object *obj, unsigned int index)
934 fprintf(stderr, "=============================> Warning!!! <===========================\n");
935 fprintf(stderr, "==> elm_segment_control_get_segment_label_at() is deprecated. <=======\n");
936 fprintf(stderr, "=====> Please use elm_segment_control_item_label_get() instead. <=====\n");
937 fprintf(stderr, "======================================================================\n");
938 return elm_segment_control_item_label_get(obj, index);
942 elm_segment_control_delete_segment_at(Evas_Object *obj, unsigned int index,
945 fprintf(stderr, "=============================> Warning!!! <========================\n");
946 fprintf(stderr, "==> elm_segment_control_delete_segment_at() is deprecated. <=======\n");
947 fprintf(stderr, "=====> Please use elm_segment_control_item_del_at() instead. <=====\n");
948 fprintf(stderr, "===================================================================\n");
949 elm_segment_control_item_del_at(obj, index);
953 elm_segment_control_delete_segment(Evas_Object *obj, Elm_Segment_Item *item,
956 fprintf(stderr, "=============================> Warning!!! <=====================\n");
957 fprintf(stderr, "==> elm_segment_control_delete_segment() is deprecated. <=======\n");
958 fprintf(stderr, "=====> Please use elm_segment_control_item_del() instead. <=====\n");
959 fprintf(stderr, "================================================================\n");
960 elm_segment_control_item_del(item);
964 elm_segment_control_insert_segment_at(Evas_Object *obj, Evas_Object *icon,
965 const char *label, unsigned int index,
968 fprintf(stderr, "=============================> Warning!!! <===========================\n");
969 fprintf(stderr, "==> elm_segment_control_insert_segment_at() is deprecated. <==========\n");
970 fprintf(stderr, "=====> Please use elm_segment_control_item_insert_at() instead. <=====\n");
971 fprintf(stderr, "======================================================================\n");
972 elm_segment_control_item_insert_at(obj, icon, label, index);
975 EAPI Elm_Segment_Item *
976 elm_segment_control_add_segment(Evas_Object *obj, Evas_Object *icon,
977 const char *label, Eina_Bool animate)
979 fprintf(stderr, "=============================> Warning!!! <=====================\n");
980 fprintf(stderr, "==> elm_segment_control_add_segment() is deprecated. <==========\n");
981 fprintf(stderr, "=====> Please use elm_segment_control_item_add() instead. <=====\n");
982 fprintf(stderr, "================================================================\n");
983 return elm_segment_control_item_add(obj, icon, label);
987 elm_segment_control_item_label_object_set(Elm_Segment_Item *item, char *label)
989 fprintf(stderr, "=============================> Warning!!! <===============================\n");
990 fprintf(stderr, "==> elm_segment_control_item_label_object_set() is deprecated. <==========\n");
991 fprintf(stderr, "=====> Please use elm_segment_control_item_label_set() instead. <=========\n");
992 fprintf(stderr, "==========================================================================\n");
993 elm_segment_control_item_label_set(item, label);
994 if (item) return item->label;
997 /////////////////////////////////////////////////////////////////////////////////////////
998 /////////////////////////// OLD SLP APIs - TO BE DEPRECATED /////////////////////////////
999 /////////////////////////////////// END ////////////////////////////////////////////////