forked from enlightenment/efl
Object Items: remove data variable from widget item.
Now, data is stored in Eo layer via eo_key_data_set/get. Two macros have been added to facilitate access.
This commit is contained in:
parent
9d50d391a0
commit
05225b162e
|
@ -1089,7 +1089,7 @@ _on_text_activated(void *data,
|
|||
Elm_Object_Item *item = elm_genlist_first_item_get(sd->files_view);
|
||||
while (item)
|
||||
{
|
||||
const char *item_path = eo_do(item, elm_wdg_item_data_get());
|
||||
const char *item_path = WIDGET_ITEM_DATA_GET(item);
|
||||
if (!strcmp(item_path, path))
|
||||
{
|
||||
elm_genlist_item_selected_set(item, EINA_TRUE);
|
||||
|
|
|
@ -105,7 +105,7 @@ _on_item_clicked(void *data,
|
|||
Elm_Hoversel_Item_Data *item = data;
|
||||
Evas_Object *obj2 = WIDGET(item);
|
||||
|
||||
if (item->func) item->func((void *)item->base->data, obj2, EO_OBJ(item));
|
||||
if (item->func) item->func((void *)WIDGET_ITEM_DATA_GET(EO_OBJ(item)), obj2, EO_OBJ(item));
|
||||
evas_object_smart_callback_call(obj2, SIG_SELECTED, EO_OBJ(item));
|
||||
elm_hoversel_hover_end(obj2);
|
||||
}
|
||||
|
@ -470,7 +470,7 @@ _elm_hoversel_item_add(Eo *obj, Elm_Hoversel_Data *sd, const char *label, const
|
|||
item->icon_file = eina_stringshare_add(icon_file);
|
||||
item->icon_type = icon_type;
|
||||
item->func = func;
|
||||
item->base->data = data;
|
||||
WIDGET_ITEM_DATA_SET(EO_OBJ(item), data);
|
||||
|
||||
sd->items = eina_list_append(sd->items, eo_item);
|
||||
|
||||
|
|
|
@ -701,8 +701,9 @@ _button_item_add(Elm_Multibuttonentry_Data *sd,
|
|||
evas_object_show(btn);
|
||||
|
||||
// append item list
|
||||
eo_item = eo_add(ELM_MULTIBUTTONENTRY_ITEM_CLASS, obj, elm_wdg_item_data_set(data));
|
||||
eo_item = eo_add(ELM_MULTIBUTTONENTRY_ITEM_CLASS, obj);
|
||||
if (!eo_item) return NULL;
|
||||
WIDGET_ITEM_DATA_SET(eo_item, data);
|
||||
|
||||
ELM_MULTIBUTTONENTRY_ITEM_DATA_GET(eo_item, item);
|
||||
|
||||
|
@ -1829,14 +1830,14 @@ _elm_multibuttonentry_item_next_get(Eo *eo_it,
|
|||
EINA_DEPRECATED EAPI void *
|
||||
elm_multibuttonentry_item_data_get(const Elm_Object_Item *it)
|
||||
{
|
||||
return eo_do(it, elm_wdg_item_data_get());
|
||||
return (void *)WIDGET_ITEM_DATA_GET(it);
|
||||
}
|
||||
|
||||
EINA_DEPRECATED EAPI void
|
||||
elm_multibuttonentry_item_data_set(Elm_Object_Item *it,
|
||||
void *data)
|
||||
{
|
||||
eo_do(it, elm_wdg_item_data_set(data));
|
||||
WIDGET_ITEM_DATA_SET(it, data);
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
|
|
|
@ -625,7 +625,7 @@ _item_select_cb(void *data,
|
|||
|
||||
if (!it || it->disabled) return;
|
||||
if (it->func)
|
||||
it->func((void *)it->base->data, WIDGET(it), EO_OBJ(it));
|
||||
it->func((void *)WIDGET_ITEM_DATA_GET(EO_OBJ(it)), WIDGET(it), EO_OBJ(it));
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -1658,7 +1658,7 @@ _elm_popup_item_append(Eo *obj, Elm_Popup_Data *sd, const char *label, Evas_Obje
|
|||
_list_add(obj);
|
||||
|
||||
it->func = func;
|
||||
it->base->data = data;
|
||||
WIDGET_ITEM_DATA_SET(EO_OBJ(it), data);
|
||||
|
||||
_item_new(it);
|
||||
_item_icon_set(it, icon);
|
||||
|
|
|
@ -87,7 +87,7 @@ _item_select(Elm_Diskselector_Item_Data *it)
|
|||
sd->selected_item = it;
|
||||
_selected_item_indicate(sd->selected_item);
|
||||
|
||||
if (it->func) it->func((void *)it->base->data, WIDGET(it), EO_OBJ(it));
|
||||
if (it->func) it->func((void *)WIDGET_ITEM_DATA_GET(EO_OBJ(it)), WIDGET(it), EO_OBJ(it));
|
||||
evas_object_smart_callback_call(WIDGET(it), SIG_SELECTED, EO_OBJ(it));
|
||||
}
|
||||
|
||||
|
@ -585,7 +585,7 @@ _item_click_cb(void *data,
|
|||
_selected_item_indicate(sd->selected_item);
|
||||
}
|
||||
|
||||
if (it->func) it->func((void *)it->base->data, WIDGET(it), EO_OBJ(it));
|
||||
if (it->func) it->func((void *)WIDGET_ITEM_DATA_GET(EO_OBJ(it)), WIDGET(it), EO_OBJ(it));
|
||||
evas_object_smart_callback_call(WIDGET(it), SIG_CLICKED, EO_OBJ(it));
|
||||
}
|
||||
|
||||
|
@ -643,7 +643,7 @@ _item_new(Evas_Object *obj,
|
|||
|
||||
it->label = eina_stringshare_add(label);
|
||||
it->func = func;
|
||||
it->base->data = data;
|
||||
WIDGET_ITEM_DATA_SET(EO_OBJ(it), data);
|
||||
VIEW(it) = edje_object_add(evas_object_evas_get(obj));
|
||||
elm_widget_theme_object_set(obj, VIEW(it), "diskselector", "item",
|
||||
elm_widget_style_get(obj));
|
||||
|
@ -1169,7 +1169,7 @@ _round_items_add(Elm_Diskselector_Data *sd)
|
|||
{
|
||||
sd->first = _item_new
|
||||
(WIDGET(it), _icon_duplicate(it->icon), it->label, it->func,
|
||||
it->base->data);
|
||||
WIDGET_ITEM_DATA_GET(EO_OBJ(it)));
|
||||
sd->first->node = it->node;
|
||||
sd->r_items = eina_list_append(sd->r_items, sd->first);
|
||||
}
|
||||
|
@ -1182,7 +1182,7 @@ _round_items_add(Elm_Diskselector_Data *sd)
|
|||
{
|
||||
sd->second = _item_new
|
||||
(WIDGET(it), _icon_duplicate(it->icon), it->label, it->func,
|
||||
it->base->data);
|
||||
WIDGET_ITEM_DATA_GET(EO_OBJ(it)));
|
||||
sd->second->node = it->node;
|
||||
sd->r_items = eina_list_append(sd->r_items, sd->second);
|
||||
}
|
||||
|
@ -1195,7 +1195,7 @@ _round_items_add(Elm_Diskselector_Data *sd)
|
|||
if (!it) it = dit;
|
||||
temp_it = _item_new
|
||||
(WIDGET(it), _icon_duplicate
|
||||
(it->icon), it->label, it->func, it->base->data);
|
||||
(it->icon), it->label, it->func, WIDGET_ITEM_DATA_GET(EO_OBJ(it)));
|
||||
sd->over_items = eina_list_append(sd->over_items, temp_it);
|
||||
sd->r_items = eina_list_append(sd->r_items, temp_it);
|
||||
}
|
||||
|
@ -1207,7 +1207,7 @@ _round_items_add(Elm_Diskselector_Data *sd)
|
|||
{
|
||||
sd->last = _item_new
|
||||
(WIDGET(it), _icon_duplicate(it->icon), it->label, it->func,
|
||||
it->base->data);
|
||||
WIDGET_ITEM_DATA_GET(EO_OBJ(it)));
|
||||
sd->last->node = it->node;
|
||||
sd->r_items = eina_list_prepend(sd->r_items, sd->last);
|
||||
}
|
||||
|
@ -1219,7 +1219,7 @@ _round_items_add(Elm_Diskselector_Data *sd)
|
|||
{
|
||||
sd->s_last = _item_new
|
||||
(WIDGET(it), _icon_duplicate(it->icon), it->label, it->func,
|
||||
it->base->data);
|
||||
WIDGET_ITEM_DATA_GET(EO_OBJ(it)));
|
||||
sd->s_last->node = it->node;
|
||||
sd->r_items = eina_list_prepend(sd->r_items, sd->s_last);
|
||||
}
|
||||
|
@ -1231,7 +1231,7 @@ _round_items_add(Elm_Diskselector_Data *sd)
|
|||
if (!it) it = dit;
|
||||
temp_it = _item_new
|
||||
(WIDGET(it), _icon_duplicate
|
||||
(it->icon), it->label, it->func, it->base->data);
|
||||
(it->icon), it->label, it->func, WIDGET_ITEM_DATA_GET(EO_OBJ(it)));
|
||||
sd->under_items = eina_list_append(sd->under_items, temp_it);
|
||||
sd->r_items = eina_list_prepend(sd->r_items, temp_it);
|
||||
}
|
||||
|
|
|
@ -274,7 +274,7 @@ _on_item_changed(Elm_Flipselector_Data *sd)
|
|||
if (sd->deleting) return;
|
||||
|
||||
if (item->func)
|
||||
item->func((void *)item->base->data, WIDGET(item), eo_item);
|
||||
item->func((void *)WIDGET_ITEM_DATA_GET(EO_OBJ(item)), WIDGET(item), eo_item);
|
||||
if (!item->deleted)
|
||||
evas_object_smart_callback_call
|
||||
(sd->obj, SIG_SELECTED, eo_item);
|
||||
|
@ -368,7 +368,7 @@ _item_new(Evas_Object *obj,
|
|||
|
||||
it->label = eina_stringshare_add_length(label, len);
|
||||
it->func = func;
|
||||
it->base->data = data;
|
||||
WIDGET_ITEM_DATA_SET(EO_OBJ(it), data);
|
||||
|
||||
/* TODO: no view here, but if one desires general contents in the
|
||||
* future... */
|
||||
|
|
|
@ -143,7 +143,7 @@ _elm_gengrid_search_by_text_item_get(Eo *obj EINA_UNUSED,
|
|||
EINA_INLIST_FOREACH(start, it)
|
||||
{
|
||||
if (!it->itc->func.text_get) continue;
|
||||
str = it->itc->func.text_get((void *)it->base->data,
|
||||
str = it->itc->func.text_get((void *)WIDGET_ITEM_DATA_GET(EO_OBJ(it)),
|
||||
WIDGET(it), part_name);
|
||||
if (!str) continue;
|
||||
if (!fnmatch(pattern, str, fnflags))
|
||||
|
@ -764,7 +764,7 @@ _access_info_cb(void *data, Evas_Object *obj EINA_UNUSED)
|
|||
EINA_LIST_FOREACH(it->texts, l, key)
|
||||
{
|
||||
char *s = it->itc->func.text_get
|
||||
((void *)it->base->data, WIDGET(it), key);
|
||||
((void *)WIDGET_ITEM_DATA_GET(EO_OBJ(it)), WIDGET(it), key);
|
||||
return s;
|
||||
}
|
||||
}
|
||||
|
@ -868,7 +868,7 @@ _item_realize(Elm_Gen_Item *it)
|
|||
EINA_LIST_FOREACH(it->texts, l, key)
|
||||
{
|
||||
char *s = it->itc->func.text_get
|
||||
((void *)it->base->data, WIDGET(it), key);
|
||||
((void *)WIDGET_ITEM_DATA_GET(EO_OBJ(it)), WIDGET(it), key);
|
||||
if (s)
|
||||
{
|
||||
edje_object_part_text_escaped_set(VIEW(it), key, s);
|
||||
|
@ -887,7 +887,7 @@ _item_realize(Elm_Gen_Item *it)
|
|||
(edje_object_data_get(VIEW(it), "contents"));
|
||||
EINA_LIST_FOREACH(it->contents, l, key)
|
||||
{
|
||||
ic = it->itc->func.content_get((void *)it->base->data, WIDGET(it), key);
|
||||
ic = it->itc->func.content_get((void *)WIDGET_ITEM_DATA_GET(EO_OBJ(it)), WIDGET(it), key);
|
||||
if (ic)
|
||||
{
|
||||
it->content_objs = eina_list_append(it->content_objs, ic);
|
||||
|
@ -908,7 +908,7 @@ _item_realize(Elm_Gen_Item *it)
|
|||
EINA_LIST_FOREACH(it->states, l, key)
|
||||
{
|
||||
Eina_Bool on = it->itc->func.state_get
|
||||
((void *)it->base->data, WIDGET(it), l->data);
|
||||
((void *)WIDGET_ITEM_DATA_GET(EO_OBJ(it)), WIDGET(it), l->data);
|
||||
if (on)
|
||||
{
|
||||
snprintf(buf, sizeof(buf), "elm,state,%s,active", key);
|
||||
|
@ -3163,7 +3163,7 @@ _elm_gengrid_item_del_not_serious(Elm_Gen_Item *it)
|
|||
sd->last_focused_item = NULL;
|
||||
|
||||
if (it->itc->func.del)
|
||||
it->itc->func.del((void *)it->base->data, WIDGET(it));
|
||||
it->itc->func.del((void *)WIDGET_ITEM_DATA_GET(EO_OBJ(it)), WIDGET(it));
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -3509,7 +3509,7 @@ _elm_gengrid_item_new(Elm_Gengrid_Data *sd,
|
|||
it->itc = itc;
|
||||
elm_gengrid_item_class_ref((Elm_Gengrid_Item_Class *)itc);
|
||||
|
||||
it->base->data = data;
|
||||
WIDGET_ITEM_DATA_SET(EO_OBJ(it), data);
|
||||
it->parent = NULL;
|
||||
it->func.func = func;
|
||||
it->func.data = func_data;
|
||||
|
|
|
@ -281,7 +281,7 @@ _item_text_realize(Elm_Gen_Item *it,
|
|||
continue;
|
||||
|
||||
char *s = it->itc->func.text_get
|
||||
((void *)it->base->data, WIDGET(it), key);
|
||||
((void *)WIDGET_ITEM_DATA_GET(EO_OBJ(it)), WIDGET(it), key);
|
||||
|
||||
if (s)
|
||||
{
|
||||
|
@ -322,7 +322,7 @@ _item_content_realize(Elm_Gen_Item *it,
|
|||
|
||||
if (it->itc->func.content_get)
|
||||
ic = it->itc->func.content_get
|
||||
((void *)it->base->data, WIDGET(it), key);
|
||||
((void *)WIDGET_ITEM_DATA_GET(EO_OBJ(it)), WIDGET(it), key);
|
||||
if (ic)
|
||||
{
|
||||
res = eina_list_append(res, ic);
|
||||
|
@ -359,7 +359,7 @@ _item_state_realize(Elm_Gen_Item *it,
|
|||
continue;
|
||||
|
||||
Eina_Bool on = it->itc->func.state_get
|
||||
((void *)it->base->data, WIDGET(it), key);
|
||||
((void *)WIDGET_ITEM_DATA_GET(EO_OBJ(it)), WIDGET(it), key);
|
||||
|
||||
if (on)
|
||||
{
|
||||
|
@ -1492,7 +1492,7 @@ _access_info_cb(void *data, Evas_Object *obj EINA_UNUSED)
|
|||
EINA_LIST_FOREACH(it->texts, l, key)
|
||||
{
|
||||
char *s = it->itc->func.text_get
|
||||
((void *)it->base->data, WIDGET(it), key);
|
||||
((void *)WIDGET_ITEM_DATA_GET(EO_OBJ(it)), WIDGET(it), key);
|
||||
|
||||
if (s)
|
||||
{
|
||||
|
@ -3386,7 +3386,7 @@ _elm_genlist_item_del_not_serious(Elm_Gen_Item *it)
|
|||
sd->last_selected_item = NULL;
|
||||
|
||||
if (it->itc->func.del)
|
||||
it->itc->func.del((void *)it->base->data, WIDGET(it));
|
||||
it->itc->func.del((void *)WIDGET_ITEM_DATA_GET(EO_OBJ(it)), WIDGET(it));
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -5805,7 +5805,7 @@ _elm_genlist_item_new(Elm_Genlist_Data *sd,
|
|||
elm_genlist_item_class_ref((Elm_Genlist_Item_Class *)itc);
|
||||
|
||||
ELM_GENLIST_ITEM_DATA_GET(eo_parent, parent);
|
||||
it->base->data = data;
|
||||
WIDGET_ITEM_DATA_SET(EO_OBJ(it), data);
|
||||
it->parent = parent;
|
||||
it->func.func = func;
|
||||
it->func.data = func_data;
|
||||
|
@ -7623,7 +7623,7 @@ _elm_genlist_search_by_text_item_get(Eo *obj EINA_UNUSED,
|
|||
EINA_INLIST_FOREACH(start, it)
|
||||
{
|
||||
if (!it->itc->func.text_get) continue;
|
||||
str = it->itc->func.text_get((void *)it->base->data, WIDGET(it), part_name);
|
||||
str = it->itc->func.text_get((void *)WIDGET_ITEM_DATA_GET(EO_OBJ(it)), WIDGET(it), part_name);
|
||||
if (!str) continue;
|
||||
if (!fnmatch(pattern, str, fnflags))
|
||||
{
|
||||
|
|
|
@ -459,7 +459,7 @@ _item_new(Evas_Object *obj,
|
|||
|
||||
if (letter) it->letter = eina_stringshare_add(letter);
|
||||
it->func = func;
|
||||
it->base->data = data;
|
||||
WIDGET_ITEM_DATA_SET(EO_OBJ(it), data);
|
||||
it->level = sd->level;
|
||||
|
||||
return eo_item;
|
||||
|
@ -477,7 +477,7 @@ _item_find(Evas_Object *obj,
|
|||
EINA_LIST_FOREACH(sd->items, l, eo_item)
|
||||
{
|
||||
ELM_INDEX_ITEM_DATA_GET(eo_item, it);
|
||||
if (it->base->data == data) return it;
|
||||
if (WIDGET_ITEM_DATA_GET(EO_OBJ(it)) == data) return it;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
@ -749,7 +749,7 @@ _on_mouse_up(void *data,
|
|||
eo_id_item = eo_item;
|
||||
ELM_INDEX_ITEM_DATA_GET(eo_id_item, id_item);
|
||||
if (id_item->func)
|
||||
id_item->func((void *)id_item->base->data, WIDGET(id_item), eo_id_item);
|
||||
id_item->func((void *)WIDGET_ITEM_DATA_GET(eo_id_item), WIDGET(id_item), eo_id_item);
|
||||
}
|
||||
if (!sd->autohide_disabled)
|
||||
elm_layout_signal_emit(data, "elm,state,inactive", "elm");
|
||||
|
@ -1334,10 +1334,9 @@ _elm_index_item_sorted_insert(Eo *obj, Elm_Index_Data *sd, const char *letter, E
|
|||
else
|
||||
{
|
||||
Elm_Object_Item *eo_p_it = eina_list_data_get(lnear);
|
||||
ELM_INDEX_ITEM_DATA_GET(eo_p_it, p_it);
|
||||
ELM_INDEX_ITEM_DATA_GET(eo_item, it);
|
||||
if (cmp_data_func(p_it->base->data, it->base->data) >= 0)
|
||||
p_it->base->data = it->base->data;
|
||||
const void *item_data = WIDGET_ITEM_DATA_GET(eo_item);
|
||||
if (cmp_data_func(WIDGET_ITEM_DATA_GET(eo_p_it), item_data) >= 0)
|
||||
WIDGET_ITEM_DATA_SET(eo_p_it, item_data);
|
||||
eo_do(eo_item, elm_wdg_item_del());
|
||||
eo_item = NULL;
|
||||
}
|
||||
|
|
|
@ -1398,7 +1398,7 @@ call:
|
|||
evas_object_ref(obj);
|
||||
_elm_list_walk(sd);
|
||||
|
||||
if (it->func) it->func((void *)it->base->data, WIDGET(it), EO_OBJ(it));
|
||||
if (it->func) it->func((void *)WIDGET_ITEM_DATA_GET(EO_OBJ(it)), WIDGET(it), EO_OBJ(it));
|
||||
evas_object_smart_callback_call(obj, SIG_SELECTED, EO_OBJ(it));
|
||||
sd->last_selected_item = EO_OBJ(it);
|
||||
|
||||
|
@ -2181,7 +2181,7 @@ _item_new(Evas_Object *obj,
|
|||
it->icon = icon;
|
||||
it->end = end;
|
||||
it->func = func;
|
||||
it->base->data = data;
|
||||
WIDGET_ITEM_DATA_SET(EO_OBJ(it), data);
|
||||
|
||||
VIEW(it) = edje_object_add(evas_object_evas_get(obj));
|
||||
|
||||
|
|
|
@ -451,7 +451,7 @@ void
|
|||
_elm_dbus_menu_item_select_cb(Elm_Object_Item *obj_item)
|
||||
{
|
||||
ELM_MENU_ITEM_DATA_GET(obj_item, item);
|
||||
if (item->func) item->func((void *)(item->base->data), WIDGET(item), obj_item);
|
||||
if (item->func) item->func((void *)(WIDGET_ITEM_DATA_GET(EO_OBJ(item))), WIDGET(item), obj_item);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -469,7 +469,7 @@ _menu_item_select_cb(void *data,
|
|||
}
|
||||
else _menu_hide(WIDGET(item), NULL, NULL);
|
||||
|
||||
if (item->func) item->func((void *)(item->base->data), WIDGET(item), EO_OBJ(item));
|
||||
if (item->func) item->func((void *)(WIDGET_ITEM_DATA_GET(EO_OBJ(item))), WIDGET(item), EO_OBJ(item));
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -911,7 +911,7 @@ _item_clone(Evas_Object *obj,
|
|||
item->icon_str,
|
||||
item->label,
|
||||
item->func,
|
||||
item->base->data);
|
||||
WIDGET_ITEM_DATA_GET(EO_OBJ(item)));
|
||||
|
||||
Eina_Bool disabled = eo_do(eo_item, elm_wdg_item_disabled_get());
|
||||
eo_do(new_item, elm_wdg_item_disabled_set(disabled));
|
||||
|
@ -1009,7 +1009,7 @@ _elm_menu_item_add(Eo *obj, Elm_Menu_Data *sd, Elm_Object_Item *parent, const ch
|
|||
|
||||
ELM_MENU_ITEM_DATA_GET(eo_item, it);
|
||||
|
||||
it->base->data = data;
|
||||
WIDGET_ITEM_DATA_SET(EO_OBJ(it), data);
|
||||
it->func = func;
|
||||
it->parent = eo_data_scope_get(parent, ELM_MENU_ITEM_CLASS);
|
||||
it->content = icon_obj;
|
||||
|
|
|
@ -57,3 +57,23 @@ typedef void (*Elm_Object_Item_Signal_Cb)(void *data, Elm_Objec
|
|||
#define elm_object_item_domain_text_translatable_set(it, domain, translatable) elm_object_item_domain_part_text_translatable_set((it), NULL, (domain), (translatable))
|
||||
|
||||
#define elm_object_item_text_translatable_set(it, translatable) elm_object_item_domain_part_text_translatable_set((it), NULL, NULL, (translatable))
|
||||
|
||||
/**
|
||||
* Get the data associated with an object item
|
||||
* @param it The Elementary object item
|
||||
* @return The data associated with @p it
|
||||
*
|
||||
* @note Every elm_object_item supports this API
|
||||
* @ingroup General
|
||||
*/
|
||||
EAPI void *elm_object_item_data_get(const Elm_Object_Item *it);
|
||||
|
||||
/**
|
||||
* Set the data associated with an object item
|
||||
* @param it The Elementary object item
|
||||
* @param data The data to be associated with @p it
|
||||
*
|
||||
* @note Every elm_object_item supports this API
|
||||
* @ingroup General
|
||||
*/
|
||||
EAPI void elm_object_item_data_set(Elm_Object_Item *it, void *data);
|
||||
|
|
|
@ -411,7 +411,7 @@ _elm_slideshow_item_add(Eo *obj, Elm_Slideshow_Data *sd, const Elm_Slideshow_Ite
|
|||
|
||||
item->itc = itc;
|
||||
item->l = eina_list_append(item->l, eo_item);
|
||||
eo_do(eo_item, elm_wdg_item_data_set(data));
|
||||
WIDGET_ITEM_DATA_SET(eo_item, data);
|
||||
|
||||
sd->items = eina_list_merge(sd->items, item->l);
|
||||
|
||||
|
@ -432,7 +432,7 @@ _elm_slideshow_item_sorted_insert(Eo *obj, Elm_Slideshow_Data *sd, const Elm_Sli
|
|||
|
||||
item->itc = itc;
|
||||
item->l = eina_list_append(item->l, eo_item);
|
||||
eo_do(eo_item, elm_wdg_item_data_set(data));
|
||||
WIDGET_ITEM_DATA_SET(eo_item, data);
|
||||
|
||||
sd->items = eina_list_sorted_merge(sd->items, item->l, func);
|
||||
|
||||
|
|
|
@ -208,7 +208,7 @@ _elm_toolbar_item_menu_cb(void *data,
|
|||
{
|
||||
Elm_Toolbar_Item_Data *it = data;
|
||||
|
||||
if (it->func) it->func((void *)(it->base->data), WIDGET(it), EO_OBJ(it));
|
||||
if (it->func) it->func((void *)(WIDGET_ITEM_DATA_GET(EO_OBJ(it))), WIDGET(it), EO_OBJ(it));
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -1111,7 +1111,7 @@ _item_select(Elm_Toolbar_Item_Data *it)
|
|||
|
||||
if ((!sel) || (sd->select_mode == ELM_OBJECT_SELECT_MODE_ALWAYS))
|
||||
{
|
||||
if (it->func) it->func((void *)(it->base->data), WIDGET(it), EO_OBJ(it));
|
||||
if (it->func) it->func((void *)(WIDGET_ITEM_DATA_GET(EO_OBJ(it))), WIDGET(it), EO_OBJ(it));
|
||||
}
|
||||
evas_object_smart_callback_call(obj, SIG_CLICKED, EO_OBJ(it));
|
||||
evas_object_smart_callback_call(obj, SIG_SELECTED, EO_OBJ(it));
|
||||
|
@ -2323,7 +2323,7 @@ _item_new(Evas_Object *obj,
|
|||
it->func = func;
|
||||
it->separator = EINA_FALSE;
|
||||
it->object = NULL;
|
||||
it->base->data = data;
|
||||
WIDGET_ITEM_DATA_SET(EO_OBJ(it), data);
|
||||
|
||||
VIEW(it) = edje_object_add(evas_object_evas_get(obj));
|
||||
evas_object_data_set(VIEW(it), "item", it);
|
||||
|
@ -3491,7 +3491,7 @@ _elm_toolbar_item_menu_get(Eo *eo_item EINA_UNUSED, Elm_Toolbar_Item_Data *item)
|
|||
}
|
||||
|
||||
EOLIAN static Elm_Toolbar_Item_State *
|
||||
_elm_toolbar_item_state_add(Eo *eo_item EINA_UNUSED, Elm_Toolbar_Item_Data *item,
|
||||
_elm_toolbar_item_state_add(Eo *eo_item, Elm_Toolbar_Item_Data *item,
|
||||
const char *icon,
|
||||
const char *label,
|
||||
Evas_Smart_Cb func,
|
||||
|
@ -3510,7 +3510,7 @@ _elm_toolbar_item_state_add(Eo *eo_item EINA_UNUSED, Elm_Toolbar_Item_Data *item
|
|||
{
|
||||
it_state = _item_state_new
|
||||
(item->label, item->icon_str, item->icon, item->func,
|
||||
item->base->data);
|
||||
WIDGET_ITEM_DATA_GET(EO_OBJ(item)));
|
||||
item->states = eina_list_append(item->states, it_state);
|
||||
item->current_state = item->states;
|
||||
}
|
||||
|
@ -3528,7 +3528,7 @@ _elm_toolbar_item_state_add(Eo *eo_item EINA_UNUSED, Elm_Toolbar_Item_Data *item
|
|||
it_state = _item_state_new(label, icon, icon_obj, func, data);
|
||||
item->states = eina_list_append(item->states, it_state);
|
||||
item->func = _elm_toolbar_item_state_cb;
|
||||
item->base->data = NULL;
|
||||
WIDGET_ITEM_DATA_SET(eo_item, NULL);
|
||||
|
||||
return it_state;
|
||||
|
||||
|
@ -3544,7 +3544,7 @@ error_state_add:
|
|||
}
|
||||
|
||||
EOLIAN static Eina_Bool
|
||||
_elm_toolbar_item_state_del(Eo *eo_item EINA_UNUSED, Elm_Toolbar_Item_Data *item,
|
||||
_elm_toolbar_item_state_del(Eo *eo_item, Elm_Toolbar_Item_Data *item,
|
||||
Elm_Toolbar_Item_State *state)
|
||||
{
|
||||
Elm_Toolbar_Item_State *it_state;
|
||||
|
@ -3570,7 +3570,7 @@ _elm_toolbar_item_state_del(Eo *eo_item EINA_UNUSED, Elm_Toolbar_Item_Data *item
|
|||
if (item->states && !eina_list_next(item->states))
|
||||
{
|
||||
it_state = eina_list_data_get(item->states);
|
||||
item->base->data = it_state->data;
|
||||
WIDGET_ITEM_DATA_SET(eo_item, it_state->data);
|
||||
item->func = it_state->func;
|
||||
eina_stringshare_del(it_state->label);
|
||||
eina_stringshare_del(it_state->icon_str);
|
||||
|
|
|
@ -4292,47 +4292,17 @@ _elm_widget_item_widget_get(Eo *eo_item EINA_UNUSED, Elm_Widget_Item_Data *item)
|
|||
return item->widget;
|
||||
}
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*
|
||||
* Set user-data in this item.
|
||||
*
|
||||
* User data may be used to identify this item or just store any
|
||||
* application data. It is automatically given as the first parameter
|
||||
* of the deletion notify callback.
|
||||
*
|
||||
* @param item a valid #Elm_Widget_Item to store data in.
|
||||
* @param data user data to store.
|
||||
* @see elm_widget_item_del_cb_set() convenience macro.
|
||||
* @ingroup Widget
|
||||
*/
|
||||
EOLIAN static void
|
||||
_elm_widget_item_data_set(Eo *eo_item EINA_UNUSED,
|
||||
Elm_Widget_Item_Data *item,
|
||||
const void *data)
|
||||
{
|
||||
ELM_WIDGET_ITEM_CHECK_OR_RETURN(item);
|
||||
ELM_WIDGET_ITEM_RETURN_IF_ONDEL(item);
|
||||
|
||||
if ((item->data) && (item->data != data))
|
||||
DBG("Replacing item %p data %p with %p", item, item->data, data);
|
||||
item->data = data;
|
||||
EAPI void
|
||||
elm_object_item_data_set(Elm_Object_Item *it, void *data)
|
||||
{
|
||||
WIDGET_ITEM_DATA_SET(it, data);
|
||||
}
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*
|
||||
* Retrieves user-data of this item.
|
||||
*
|
||||
* @param item a valid #Elm_Widget_Item to get data from.
|
||||
* @see elm_widget_item_data_set()
|
||||
* @ingroup Widget
|
||||
*/
|
||||
EOLIAN static void *
|
||||
_elm_widget_item_data_get(Eo *eo_item EINA_UNUSED, Elm_Widget_Item_Data *item)
|
||||
EAPI void *
|
||||
elm_object_item_data_get(const Elm_Object_Item *it)
|
||||
{
|
||||
ELM_WIDGET_ITEM_CHECK_OR_RETURN(item, NULL);
|
||||
return (void *)item->data;
|
||||
return (void *) WIDGET_ITEM_DATA_GET(it);
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
|
|
|
@ -574,6 +574,16 @@ struct _Elm_Widget_Item_Signal_Data
|
|||
void *data;
|
||||
};
|
||||
|
||||
#define WIDGET_ITEM_DATA_GET(eo_obj) \
|
||||
({ \
|
||||
eo_do(eo_obj, eo_key_data_get("__elm_widget_item_data")); \
|
||||
})
|
||||
|
||||
#define WIDGET_ITEM_DATA_SET(eo_obj, data) \
|
||||
{ \
|
||||
eo_do(eo_obj, eo_key_data_set("__elm_widget_item_data", data, NULL)); \
|
||||
}
|
||||
|
||||
struct _Elm_Widget_Item_Data
|
||||
{
|
||||
/* ef1 ~~ efl, el3 ~~ elm */
|
||||
|
|
|
@ -3,27 +3,6 @@ class Elm_Widget_Item(Eo.Base)
|
|||
eo_prefix: elm_wdg_item;
|
||||
legacy_prefix: elm_object_item;
|
||||
properties {
|
||||
data {
|
||||
get {
|
||||
/**
|
||||
Get the data associated with an object item
|
||||
|
||||
@note Every elm_object_item supports this API
|
||||
@ingroup General
|
||||
*/
|
||||
}
|
||||
set {
|
||||
/**
|
||||
Set the data associated with an object item
|
||||
|
||||
@note Every elm_object_item supports this API
|
||||
@ingroup General
|
||||
*/
|
||||
}
|
||||
values {
|
||||
void *data @const_set; /*@ The data associated with the item */
|
||||
}
|
||||
}
|
||||
tooltip_window_mode {
|
||||
get {
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue