elementary/segment_control - Elm_Segment_Item -> Elm_Object_Item

SVN revision: 66730
This commit is contained in:
ChunEon Park 2012-01-02 06:01:24 +00:00
parent a2a76e41aa
commit 6b127fc932
4 changed files with 78 additions and 84 deletions

View File

@ -8,7 +8,7 @@ void
test_segment_control(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) test_segment_control(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
{ {
Evas_Object *win, *bg, *ic, *ic1, *ic2, *ic3, *ic4, *ic5; Evas_Object *win, *bg, *ic, *ic1, *ic2, *ic3, *ic4, *ic5;
Elm_Segment_Item *it; Elm_Object_Item *seg_it;
Evas_Object * in_layout; Evas_Object * in_layout;
Evas_Object *segment1, *segment2, *segment3, *segment4; Evas_Object *segment1, *segment2, *segment3, *segment4;
@ -47,16 +47,16 @@ test_segment_control(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *e
segment1 = elm_segment_control_add(win); segment1 = elm_segment_control_add(win);
elm_segment_control_item_add(segment1, NULL, "Only Text"); elm_segment_control_item_add(segment1, NULL, "Only Text");
it = elm_segment_control_item_add(segment1, ic, NULL); seg_it = elm_segment_control_item_add(segment1, ic, NULL);
elm_segment_control_item_selected_set(it, EINA_TRUE); elm_segment_control_item_selected_set(seg_it, EINA_TRUE);
elm_segment_control_item_add(segment1, ic1, "Text_Icon_test"); elm_segment_control_item_add(segment1, ic1, "Text_Icon_test");
elm_segment_control_item_add(segment1, NULL, "Seg4"); elm_segment_control_item_add(segment1, NULL, "Seg4");
elm_segment_control_item_add(segment1, NULL, "Seg5"); elm_segment_control_item_add(segment1, NULL, "Seg5");
segment2 = elm_segment_control_add(win); segment2 = elm_segment_control_add(win);
elm_segment_control_item_add(segment2, NULL, "SegmentItem"); elm_segment_control_item_add(segment2, NULL, "SegmentItem");
it = elm_segment_control_item_add(segment2, NULL, "SegmentItem"); seg_it = elm_segment_control_item_add(segment2, NULL, "SegmentItem");
elm_segment_control_item_selected_set(it, EINA_TRUE); elm_segment_control_item_selected_set(seg_it, EINA_TRUE);
elm_segment_control_item_add(segment2, NULL, "SegmentControlItem"); elm_segment_control_item_add(segment2, NULL, "SegmentControlItem");
elm_segment_control_item_add(segment2, NULL, "SegmentItem"); elm_segment_control_item_add(segment2, NULL, "SegmentItem");
@ -77,8 +77,8 @@ test_segment_control(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *e
segment3 = elm_segment_control_add(win); segment3 = elm_segment_control_add(win);
elm_segment_control_item_add(segment3, ic2, NULL); elm_segment_control_item_add(segment3, ic2, NULL);
it = elm_segment_control_item_add(segment3, ic3, NULL); seg_it = elm_segment_control_item_add(segment3, ic3, NULL);
elm_segment_control_item_selected_set(it, EINA_TRUE); elm_segment_control_item_selected_set(seg_it, EINA_TRUE);
elm_segment_control_item_add(segment3, ic4, NULL); elm_segment_control_item_add(segment3, ic4, NULL);
ic5 = elm_icon_add(in_layout); ic5 = elm_icon_add(in_layout);
@ -88,8 +88,8 @@ test_segment_control(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *e
segment4 = elm_segment_control_add(win); segment4 = elm_segment_control_add(win);
elm_segment_control_item_add(segment4, NULL, "Disabled"); elm_segment_control_item_add(segment4, NULL, "Disabled");
it = elm_segment_control_item_add(segment4, ic5, "Disabled"); seg_it = elm_segment_control_item_add(segment4, ic5, "Disabled");
elm_segment_control_item_selected_set(it, EINA_TRUE); elm_segment_control_item_selected_set(seg_it, EINA_TRUE);
elm_segment_control_item_add(segment4, NULL, "Disabled"); elm_segment_control_item_add(segment4, NULL, "Disabled");
elm_object_disabled_set(segment4, EINA_TRUE); elm_object_disabled_set(segment4, EINA_TRUE);

View File

@ -28,7 +28,7 @@ int
elm_main(int argc __UNUSED__, char **argv __UNUSED__) elm_main(int argc __UNUSED__, char **argv __UNUSED__)
{ {
Evas_Object *win, *bg, *sc, *ic; Evas_Object *win, *bg, *sc, *ic;
Elm_Segment_Item *it; Elm_Object_Item *seg_it;
int count, index; int count, index;
win = elm_win_add(NULL, "segment_control", ELM_WIN_BASIC); win = elm_win_add(NULL, "segment_control", ELM_WIN_BASIC);
@ -62,20 +62,20 @@ elm_main(int argc __UNUSED__, char **argv __UNUSED__)
count = elm_segment_control_item_count_get(sc); count = elm_segment_control_item_count_get(sc);
elm_segment_control_item_insert_at(sc, NULL, "Inserted at", count - 1); elm_segment_control_item_insert_at(sc, NULL, "Inserted at", count - 1);
it = elm_segment_control_item_insert_at(sc, NULL, "To be deleted", 2); seg_it = elm_segment_control_item_insert_at(sc, NULL, "To be deleted", 2);
elm_segment_control_item_del(it); elm_segment_control_item_del(seg_it);
elm_segment_control_item_insert_at(sc, NULL, "To be deleted", 2); elm_segment_control_item_insert_at(sc, NULL, "To be deleted", 2);
elm_segment_control_item_del_at(sc, 2); elm_segment_control_item_del_at(sc, 2);
it = elm_segment_control_item_get(sc, 0); seg_it = elm_segment_control_item_get(sc, 0);
elm_segment_control_item_label_set(it, "Only Text"); elm_segment_control_item_label_set(seg_it, "Only Text");
count = elm_segment_control_item_count_get(sc); count = elm_segment_control_item_count_get(sc);
it = elm_segment_control_item_get(sc, count / 2); seg_it = elm_segment_control_item_get(sc, count / 2);
elm_segment_control_item_selected_set(it, EINA_TRUE); elm_segment_control_item_selected_set(seg_it, EINA_TRUE);
it = elm_segment_control_item_selected_get(sc); seg_it = elm_segment_control_item_selected_get(sc);
index = elm_segment_control_item_index_get(it); index = elm_segment_control_item_index_get(seg_it);
printf("Item selected: %i\n", index); printf("Item selected: %i\n", index);
evas_object_show(win); evas_object_show(win);

View File

@ -2,6 +2,7 @@
#include "elm_priv.h" #include "elm_priv.h"
typedef struct _Widget_Data Widget_Data; typedef struct _Widget_Data Widget_Data;
typedef struct _Elm_Segment_Item Elm_Segment_Item;
struct _Widget_Data struct _Widget_Data
{ {
@ -518,7 +519,7 @@ elm_segment_control_add(Evas_Object *parent)
return obj; return obj;
} }
EAPI Elm_Segment_Item * EAPI Elm_Object_Item *
elm_segment_control_item_add(Evas_Object *obj, Evas_Object *icon, elm_segment_control_item_add(Evas_Object *obj, Evas_Object *icon,
const char *label) const char *label)
{ {
@ -535,10 +536,10 @@ elm_segment_control_item_add(Evas_Object *obj, Evas_Object *icon,
wd->seg_items = eina_list_append(wd->seg_items, it); wd->seg_items = eina_list_append(wd->seg_items, it);
_update_list(wd); _update_list(wd);
return it; return (Elm_Object_Item *) it;
} }
EAPI Elm_Segment_Item * EAPI Elm_Object_Item *
elm_segment_control_item_insert_at(Evas_Object *obj, Evas_Object *icon, elm_segment_control_item_insert_at(Evas_Object *obj, Evas_Object *icon,
const char *label, int idx) const char *label, int idx)
{ {
@ -560,19 +561,20 @@ elm_segment_control_item_insert_at(Evas_Object *obj, Evas_Object *icon,
wd->seg_items = eina_list_append(wd->seg_items, it); wd->seg_items = eina_list_append(wd->seg_items, it);
_update_list(wd); _update_list(wd);
return it; return (Elm_Object_Item *) it;
} }
EAPI void EAPI void
elm_segment_control_item_del(Elm_Segment_Item *it) elm_segment_control_item_del(Elm_Object_Item *it)
{ {
ELM_WIDGET_ITEM_WIDTYPE_CHECK_OR_RETURN(it); ELM_OBJ_ITEM_CHECK_OR_RETURN(it);
Widget_Data *wd; Widget_Data *wd;
Elm_Segment_Item *item = (Elm_Segment_Item *) it;
wd = elm_widget_item_data_get(it); wd = elm_widget_item_data_get(item);
if (!wd) return; if (!wd) return;
_item_free(it); _item_free(item);
_update_list(wd); _update_list(wd);
} }
@ -605,22 +607,23 @@ elm_segment_control_item_label_get(const Evas_Object *obj, int idx)
} }
EAPI void EAPI void
elm_segment_control_item_label_set(Elm_Segment_Item* it, const char* label) elm_segment_control_item_label_set(Elm_Object_Item* it, const char* label)
{ {
ELM_WIDGET_ITEM_WIDTYPE_CHECK_OR_RETURN(it); ELM_OBJ_ITEM_CHECK_OR_RETURN(it);
Widget_Data *wd; Widget_Data *wd;
Elm_Segment_Item *item = (Elm_Segment_Item *) it;
wd = elm_widget_item_data_get(it); wd = elm_widget_item_data_get(item);
if (!wd) return; if (!wd) return;
eina_stringshare_replace(&it->label, label); eina_stringshare_replace(&item->label, label);
if (it->label) if (item->label)
edje_object_signal_emit(VIEW(it), "elm,state,text,visible", "elm"); edje_object_signal_emit(VIEW(item), "elm,state,text,visible", "elm");
else else
edje_object_signal_emit(VIEW(it), "elm,state,text,hidden", "elm"); edje_object_signal_emit(VIEW(item), "elm,state,text,hidden", "elm");
edje_object_message_signal_process(VIEW(it)); edje_object_message_signal_process(VIEW(item));
//label can be NULL also. //label can be NULL also.
edje_object_part_text_set(VIEW(it), "elm.text", it->label); edje_object_part_text_set(VIEW(item), "elm.text", item->label);
} }
EAPI Evas_Object * EAPI Evas_Object *
@ -636,27 +639,28 @@ elm_segment_control_item_icon_get(const Evas_Object *obj, int idx)
} }
EAPI void EAPI void
elm_segment_control_item_icon_set(Elm_Segment_Item *it, Evas_Object *icon) elm_segment_control_item_icon_set(Elm_Object_Item *it, Evas_Object *icon)
{ {
ELM_WIDGET_ITEM_WIDTYPE_CHECK_OR_RETURN(it); ELM_OBJ_ITEM_CHECK_OR_RETURN(it);
Elm_Segment_Item *item = (Elm_Segment_Item *) it;
//Remove the existing icon //Remove the existing icon
if (it->icon) if (item->icon)
{ {
edje_object_part_unswallow(VIEW(it), it->icon); edje_object_part_unswallow(VIEW(item), item->icon);
evas_object_del(it->icon); evas_object_del(item->icon);
it->icon = NULL; item->icon = NULL;
} }
it->icon = icon; item->icon = icon;
if (it->icon) if (item->icon)
{ {
elm_widget_sub_object_add(VIEW(it), it->icon); elm_widget_sub_object_add(VIEW(item), item->icon);
edje_object_part_swallow(VIEW(it), "elm.swallow.icon", it->icon); edje_object_part_swallow(VIEW(item), "elm.swallow.icon", item->icon);
edje_object_signal_emit(VIEW(it), "elm,state,icon,visible", "elm"); edje_object_signal_emit(VIEW(item), "elm,state,icon,visible", "elm");
} }
else else
edje_object_signal_emit(VIEW(it), "elm,state,icon,hidden", "elm"); edje_object_signal_emit(VIEW(item), "elm,state,icon,hidden", "elm");
} }
EAPI int EAPI int
@ -672,63 +676,55 @@ elm_segment_control_item_count_get(const Evas_Object *obj)
} }
EAPI Evas_Object* EAPI Evas_Object*
elm_segment_control_item_object_get(const Elm_Segment_Item *it) elm_segment_control_item_object_get(const Elm_Object_Item *it)
{ {
ELM_WIDGET_ITEM_WIDTYPE_CHECK_OR_RETURN(it, NULL); ELM_OBJ_ITEM_CHECK_OR_RETURN(it, NULL);
return VIEW(it); return VIEW(it);
} }
EAPI Elm_Segment_Item* EAPI Elm_Object_Item*
elm_segment_control_item_selected_get(const Evas_Object *obj) elm_segment_control_item_selected_get(const Evas_Object *obj)
{ {
ELM_CHECK_WIDTYPE(obj, widtype) NULL; ELM_CHECK_WIDTYPE(obj, widtype) NULL;
Widget_Data *wd; Widget_Data *wd = elm_widget_data_get(obj);
wd = elm_widget_data_get(obj);
if (!wd) return NULL; if (!wd) return NULL;
return (Elm_Object_Item *) wd->selected_item;
return wd->selected_item;
} }
EAPI void EAPI void
elm_segment_control_item_selected_set(Elm_Segment_Item *it, Eina_Bool selected) elm_segment_control_item_selected_set(Elm_Object_Item *it, Eina_Bool selected)
{ {
ELM_WIDGET_ITEM_WIDTYPE_CHECK_OR_RETURN(it); ELM_OBJ_ITEM_CHECK_OR_RETURN(it);
Widget_Data *wd; Widget_Data *wd;
Elm_Segment_Item *item = (Elm_Segment_Item *) it;
wd = elm_widget_item_data_get(it); wd = elm_widget_item_data_get(item);
if (!wd) return; if (!wd) return;
if (it == wd->selected_item) if (item == wd->selected_item)
{ {
//already in selected state. //already in selected state.
if (selected) return; if (selected) return;
//unselect case //unselect case
_segment_off(it); _segment_off(item);
} }
else if (selected) else if (selected)
_segment_on(it); _segment_on(item);
return; return;
} }
EAPI Elm_Segment_Item * EAPI Elm_Object_Item *
elm_segment_control_item_get(const Evas_Object *obj, int idx) elm_segment_control_item_get(const Evas_Object *obj, int idx)
{ {
ELM_CHECK_WIDTYPE(obj, widtype) NULL; ELM_CHECK_WIDTYPE(obj, widtype) NULL;
Elm_Segment_Item *it; return (Elm_Object_Item *) _item_find(obj, idx);
it = _item_find(obj, idx);
return it;
} }
EAPI int EAPI int
elm_segment_control_item_index_get(const Elm_Segment_Item *it) elm_segment_control_item_index_get(const Elm_Object_Item *it)
{ {
ELM_WIDGET_ITEM_WIDTYPE_CHECK_OR_RETURN(it, -1); ELM_OBJ_ITEM_CHECK_OR_RETURN(it, -1);
return ((Elm_Segment_Item *) it)->seg_index;
return it->seg_index;
} }

View File

@ -35,8 +35,6 @@
* @{ * @{
*/ */
typedef struct _Elm_Segment_Item Elm_Segment_Item; /**< Item handle for a segment control widget. */
/** /**
* Add a new segment control widget to the given parent Elementary * Add a new segment control widget to the given parent Elementary
* (container) object. * (container) object.
@ -91,7 +89,7 @@ EAPI Evas_Object *elm_segment_control_add(Evas_Object *parent);
* *
* @ingroup SegmentControl * @ingroup SegmentControl
*/ */
EAPI Elm_Segment_Item *elm_segment_control_item_add(Evas_Object *obj, Evas_Object *icon, const char *label); EAPI Elm_Object_Item *elm_segment_control_item_add(Evas_Object *obj, Evas_Object *icon, const char *label);
/** /**
* Insert a new item to the segment control object at specified position. * Insert a new item to the segment control object at specified position.
@ -124,7 +122,7 @@ EAPI Elm_Segment_Item *elm_segment_control_item_add(Evas_Object *obj, Evas_Objec
* *
* @ingroup SegmentControl * @ingroup SegmentControl
*/ */
EAPI Elm_Segment_Item *elm_segment_control_item_insert_at(Evas_Object *obj, Evas_Object *icon, const char *label, int index); EAPI Elm_Object_Item *elm_segment_control_item_insert_at(Evas_Object *obj, Evas_Object *icon, const char *label, int index);
/** /**
* Remove a segment control item from its parent, deleting it. * Remove a segment control item from its parent, deleting it.
@ -136,7 +134,7 @@ EAPI Elm_Segment_Item *elm_segment_control_item_insert_at(Evas_Object *obj, Evas
* *
* @ingroup SegmentControl * @ingroup SegmentControl
*/ */
EAPI void elm_segment_control_item_del(Elm_Segment_Item *it); EAPI void elm_segment_control_item_del(Elm_Object_Item *it);
/** /**
* Remove a segment control item at given index from its parent, * Remove a segment control item at given index from its parent,
@ -178,7 +176,7 @@ EAPI int elm_segment_control_item_count_get(const Evas_Object *obj
* *
* @ingroup SegmentControl * @ingroup SegmentControl
*/ */
EAPI Elm_Segment_Item *elm_segment_control_item_get(const Evas_Object *obj, int index); EAPI Elm_Object_Item *elm_segment_control_item_get(const Evas_Object *obj, int index);
/** /**
* Get the label of item. * Get the label of item.
@ -217,7 +215,7 @@ EAPI const char *elm_segment_control_item_label_get(const Evas_Object *obj
* *
* @ingroup SegmentControl * @ingroup SegmentControl
*/ */
EAPI void elm_segment_control_item_label_set(Elm_Segment_Item *it, const char *label); EAPI void elm_segment_control_item_label_set(Elm_Object_Item *it, const char *label);
/** /**
* Get the icon associated to the item. * Get the icon associated to the item.
@ -261,7 +259,7 @@ EAPI Evas_Object *elm_segment_control_item_icon_get(const Evas_Object *obj,
* *
* @ingroup SegmentControl * @ingroup SegmentControl
*/ */
EAPI void elm_segment_control_item_icon_set(Elm_Segment_Item *it, Evas_Object *icon); EAPI void elm_segment_control_item_icon_set(Elm_Object_Item *it, Evas_Object *icon);
/** /**
* Get the index of an item. * Get the index of an item.
@ -276,7 +274,7 @@ EAPI void elm_segment_control_item_icon_set(Elm_Segment_Item *it, E
* *
* @ingroup SegmentControl * @ingroup SegmentControl
*/ */
EAPI int elm_segment_control_item_index_get(const Elm_Segment_Item *it); EAPI int elm_segment_control_item_index_get(const Elm_Object_Item *it);
/** /**
* Get the base object of the item. * Get the base object of the item.
@ -288,7 +286,7 @@ EAPI int elm_segment_control_item_index_get(const Elm_Segment_Item
* *
* @ingroup SegmentControl * @ingroup SegmentControl
*/ */
EAPI Evas_Object *elm_segment_control_item_object_get(const Elm_Segment_Item *it); EAPI Evas_Object *elm_segment_control_item_object_get(const Elm_Object_Item *it);
/** /**
* Get the selected item. * Get the selected item.
@ -304,7 +302,7 @@ EAPI Evas_Object *elm_segment_control_item_object_get(const Elm_Segment_Ite
* *
* @ingroup SegmentControl * @ingroup SegmentControl
*/ */
EAPI Elm_Segment_Item *elm_segment_control_item_selected_get(const Evas_Object *obj); EAPI Elm_Object_Item *elm_segment_control_item_selected_get(const Evas_Object *obj);
/** /**
* Set the selected state of an item. * Set the selected state of an item.
@ -325,7 +323,7 @@ EAPI Elm_Segment_Item *elm_segment_control_item_selected_get(const Evas_Object *
* *
* @ingroup SegmentControl * @ingroup SegmentControl
*/ */
EAPI void elm_segment_control_item_selected_set(Elm_Segment_Item *it, Eina_Bool select); EAPI void elm_segment_control_item_selected_set(Elm_Object_Item *it, Eina_Bool select);
/** /**
* @} * @}