dialog: allow setting of NULL icon

If NULL is passed as icon, icon should be disabled.

CID 1039951
This commit is contained in:
Sebastian Dransfeld 2014-03-24 13:13:53 +01:00 committed by Cedric BAIL
parent 08295d29db
commit 4c594998d1
1 changed files with 24 additions and 12 deletions

View File

@ -163,19 +163,31 @@ e_dialog_text_set(E_Dialog *dia, const char *text)
EAPI void
e_dialog_icon_set(E_Dialog *dia, const char *icon, Evas_Coord size)
{
if (!icon) return;
dia->icon_object = e_icon_add(e_win_evas_get(dia->win));
if (!e_util_icon_theme_set(dia->icon_object, icon))
e_icon_file_edje_set(dia->icon_object, icon, "icon");
edje_extern_object_min_size_set(dia->icon_object, size * e_scale, size * e_scale);
edje_object_part_swallow(dia->bg_object, "e.swallow.icon", dia->icon_object);
edje_object_signal_emit(dia->bg_object, "e,state,icon", "e");
evas_object_show(dia->icon_object);
if (icon)
edje_object_signal_emit(dia->bg_object, "e,icon,enabled", "e");
if (!icon)
{
if (dia->icon_object)
{
edje_object_part_unswallow(dia->bg_object, dia->icon_object);
evas_object_del(dia->icon_object);
dia->icon_object = NULL;
}
edje_object_signal_emit(dia->bg_object, "e,state,icon", "e");
edje_object_signal_emit(dia->bg_object, "e,icon,disabled", "e");
}
else
edje_object_signal_emit(dia->bg_object, "e,icon,disabled", "e");
{
if (!dia->icon_object)
{
dia->icon_object = e_icon_add(e_win_evas_get(dia->win));
edje_object_part_swallow(dia->bg_object, "e.swallow.icon", dia->icon_object);
evas_object_show(dia->icon_object);
}
if (!e_util_icon_theme_set(dia->icon_object, icon))
e_icon_file_edje_set(dia->icon_object, icon, "icon");
edje_extern_object_min_size_set(dia->icon_object, size * e_scale, size * e_scale);
edje_object_signal_emit(dia->bg_object, "e,state,icon", "e");
edje_object_signal_emit(dia->bg_object, "e,icon,enabled", "e");
}
edje_object_message_signal_process(dia->bg_object);
}