Fix case where nothing is selected in the list, so disable some controls.

SVN revision: 27878
This commit is contained in:
Christopher Michael 2007-01-09 02:29:51 +00:00
parent 38b83905c0
commit c105660284
3 changed files with 32 additions and 19 deletions

View File

@ -222,9 +222,26 @@ e_ilist_selected_set(Evas_Object *obj, int n)
EAPI int
e_ilist_selected_get(Evas_Object *obj)
{
Evas_List *l;
int i, j;
API_ENTRY return -1;
if (!sd->items) return -1;
return sd->selected;
if (!sd->multi_select)
return sd->selected;
else
{
j = -1;
for (i = 0, l = sd->items; l; l = l->next, i++)
{
E_Ilist_Item *li;
li = l->data;
if (!li) continue;
if (li->selected) j = i;
}
return j;
}
}
EAPI const char *
@ -468,6 +485,9 @@ e_ilist_multi_select(Evas_Object *obj, int n)
{
edje_object_signal_emit(si->o_base, "e,state,unselected", "e");
si->selected = 0;
if (si->func_hilight) si->func_hilight(si->data, si->data2);
if (sd->selector) return;
if (si->func) si->func(si->data, si->data2);
return;
}
si->selected = 1;

View File

@ -573,13 +573,23 @@ _ilist_font_cb_change(void *data, Evas_Object *obj)
}
indx = e_widget_ilist_selected_get(cfdata->gui.class_list);
if (indx < 0)
{
e_widget_disabled_set(cfdata->gui.enabled, 1);
e_widget_disabled_set(cfdata->gui.font, 1);
e_widget_disabled_set(cfdata->gui.size, 1);
e_widget_check_checked_set(cfdata->gui.enabled, 0);
if (cfdata->gui.font_list)
e_widget_ilist_unselect(cfdata->gui.font_list);
return;
}
tc = evas_list_nth(cfdata->text_classes, indx);
cfdata->cur_index = indx;
e_widget_disabled_set(cfdata->gui.enabled, 0);
e_widget_disabled_set(cfdata->gui.font, !tc->enabled);
e_widget_disabled_set(cfdata->gui.size, !tc->enabled);
e_widget_check_checked_set(cfdata->gui.enabled, tc->enabled);
if (cfdata->gui.font_list)
{

View File

@ -235,25 +235,8 @@ EAPI void
e_widget_ilist_clear(Evas_Object *obj)
{
E_Widget_Data *wd;
/*
int mw, mh, vw, vh, w, h;
*/
wd = e_widget_data_get(obj);
e_ilist_clear(wd->o_ilist);
/*
e_ilist_min_size_get(wd->o_ilist, &mw, &mh);
evas_object_resize(wd->o_ilist, mw, mh);
e_scrollframe_child_viewport_size_get(wd->o_scrollframe, &vw, &vh);
evas_object_geometry_get(wd->o_scrollframe, NULL, NULL, &w, &h);
if (mw > vw)
{
Evas_Coord wmw, wmh;
e_widget_min_size_get(obj, &wmw, &wmh);
e_widget_min_size_set(obj, mw + (w - vw), wmh);
}
*/
}
EAPI int