ilist patches from Laurent Ghigonis <ooookiwi@gmail.com>

SVN revision: 29958
This commit is contained in:
Carsten Haitzler 2007-05-12 02:43:13 +00:00
parent 438b6943d0
commit cb12aef97c
4 changed files with 20 additions and 40 deletions

View File

@ -332,35 +332,6 @@ e_ilist_remove_num(Evas_Object *obj, int n)
E_FREE(si);
}
EAPI void
e_ilist_remove_label(Evas_Object *obj, const char *label)
{
Evas_List *l;
API_ENTRY return;
if (!sd->items) return;
if (!label) return;
for (l = sd->items; l; l = l->next)
{
E_Ilist_Item *si;
char *t;
si = l->data;
if (!si) continue;
t = strdup(edje_object_part_text_get(si->o_base, "e.text.label"));
if (!strcmp(t, label))
{
if (si->o_icon) evas_object_del(si->o_icon);
evas_object_del(si->o_base);
sd->items = evas_list_remove(sd->items, si);
E_FREE(si);
free(t);
break;
}
free(t);
}
}
EAPI const char *
e_ilist_nth_label_get(Evas_Object *obj, int n)
{

View File

@ -39,7 +39,6 @@ EAPI void *e_ilist_selected_data2_get (Evas_Object *obj);
EAPI Evas_Object *e_ilist_selected_icon_get (Evas_Object *obj);
EAPI void e_ilist_selected_geometry_get (Evas_Object *obj, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h);
EAPI void e_ilist_remove_num (Evas_Object *obj, int n);
EAPI void e_ilist_remove_label (Evas_Object *obj, const char *label);
EAPI const char *e_ilist_nth_label_get (Evas_Object *obj, int n);
EAPI void e_ilist_nth_label_set (Evas_Object *obj, int n, const char *label);
EAPI Evas_Object *e_ilist_nth_icon_get (Evas_Object *obj, int n);

View File

@ -103,8 +103,12 @@ EAPI void
e_widget_ilist_header_append(Evas_Object *obj, Evas_Object *icon, const char *label)
{
E_Widget_Data *wd;
E_Widget_Callback *wcb;
wd = e_widget_data_get(obj);
wcb = E_NEW(E_Widget_Callback, 1);
if (!wcb) return;
wd->callbacks = evas_list_append(wd->callbacks, wcb);
e_ilist_append(wd->o_ilist, icon, label, 1, NULL, NULL, NULL, NULL);
if (icon) evas_object_show(icon);
}
@ -145,8 +149,18 @@ EAPI void
e_widget_ilist_clear(Evas_Object *obj)
{
E_Widget_Data *wd;
wd = e_widget_data_get(obj);
e_ilist_clear(wd->o_ilist);
while (wd->callbacks)
{
E_Widget_Callback *wcb;
wcb = wd->callbacks->data;
if (wcb->value) free(wcb->value);
free(wcb);
wd->callbacks = evas_list_remove_list(wd->callbacks, wd->callbacks);
}
}
EAPI int
@ -281,18 +295,15 @@ EAPI void
e_widget_ilist_remove_num(Evas_Object *obj, int n)
{
E_Widget_Data *wd;
E_Widget_Callback *wcb;
wd = e_widget_data_get(obj);
e_ilist_remove_num(wd->o_ilist, n);
}
EAPI void
e_widget_ilist_remove_label(Evas_Object *obj, const char *label)
{
E_Widget_Data *wd;
wd = e_widget_data_get(obj);
e_ilist_remove_label(wd->o_ilist, label);
wcb = evas_list_nth(wd->callbacks, n);
if (!wcb) return;
if (wcb->value) free(wcb->value);
free(wcb);
wd->callbacks = evas_list_remove(wd->callbacks, wcb);
}
EAPI void

View File

@ -28,7 +28,6 @@ EAPI const char *e_widget_ilist_selected_label_get(Evas_Object *obj);
EAPI Evas_Object *e_widget_ilist_selected_icon_get(Evas_Object *obj);
EAPI void e_widget_ilist_unselect(Evas_Object *obj);
EAPI void e_widget_ilist_remove_num(Evas_Object *obj, int n);
EAPI void e_widget_ilist_remove_label(Evas_Object *obj, const char *label);
EAPI void e_widget_ilist_multi_select_set(Evas_Object *obj, int multi);
EAPI int e_widget_ilist_multi_select_get(Evas_Object *obj);
EAPI void e_widget_ilist_multi_select(Evas_Object *obj, int n);