allow you to remove transitions too...

SVN revision: 25444
This commit is contained in:
Carsten Haitzler 2006-09-04 14:15:34 +00:00
parent cd5937a70e
commit 338fc58a33
1 changed files with 34 additions and 20 deletions

View File

@ -69,27 +69,29 @@ _free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
static int static int
_basic_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata) _basic_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
{ {
if (e_config->transition_start)
evas_stringshare_del(e_config->transition_start);
e_config->transition_start = NULL;
if (cfdata->transition_start) if (cfdata->transition_start)
{ {
if (e_config->transition_start)
evas_stringshare_del(e_config->transition_start);
if (e_theme_transition_find(cfdata->transition_start)) if (e_theme_transition_find(cfdata->transition_start))
e_config->transition_start = evas_stringshare_add(cfdata->transition_start); e_config->transition_start = evas_stringshare_add(cfdata->transition_start);
} }
if (e_config->transition_desk)
evas_stringshare_del(e_config->transition_desk);
e_config->transition_desk = NULL;
if (cfdata->transition_desk) if (cfdata->transition_desk)
{ {
if (e_config->transition_desk)
evas_stringshare_del(e_config->transition_desk);
if (e_theme_transition_find(cfdata->transition_desk)) if (e_theme_transition_find(cfdata->transition_desk))
e_config->transition_desk = evas_stringshare_add(cfdata->transition_desk); e_config->transition_desk = evas_stringshare_add(cfdata->transition_desk);
} }
if (e_config->transition_change)
evas_stringshare_del(e_config->transition_change);
e_config->transition_change = NULL;
if (cfdata->transition_change) if (cfdata->transition_change)
{ {
if (e_config->transition_change)
evas_stringshare_del(e_config->transition_change);
if (e_theme_transition_find(cfdata->transition_change)) if (e_theme_transition_find(cfdata->transition_change))
e_config->transition_change = evas_stringshare_add(cfdata->transition_change); e_config->transition_change = evas_stringshare_add(cfdata->transition_change);
} }
@ -124,6 +126,7 @@ _basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cf
cfdata->trans_list = il; cfdata->trans_list = il;
e_widget_min_size_set(il, 160, 200); e_widget_min_size_set(il, 160, 200);
e_widget_ilist_append(il, NULL, _("None"), _trans_cb_changed, cfdata, NULL);
l = e_theme_transition_list(); l = e_theme_transition_list();
for (l = e_theme_transition_list(); l; l = l->next) for (l = e_theme_transition_list(); l; l = l->next)
{ {
@ -163,20 +166,25 @@ _event_cb_changed(void *data)
break; break;
} }
if (!trans)
{
e_widget_ilist_unselect(cfdata->trans_list);
return;
}
for (i = 0; i < e_widget_ilist_count(cfdata->trans_list); i++) for (i = 0; i < e_widget_ilist_count(cfdata->trans_list); i++)
{ {
list = e_widget_ilist_nth_label_get(cfdata->trans_list, i); list = e_widget_ilist_nth_label_get(cfdata->trans_list, i);
if (!list) continue; if (!list) continue;
if (!strcmp(trans, list)) if (!trans)
{ {
e_widget_ilist_selected_set(cfdata->trans_list, i); if (!strcmp(_("None"), list))
return; {
e_widget_ilist_selected_set(cfdata->trans_list, i);
return;
}
}
else
{
if (!strcmp(trans, list))
{
e_widget_ilist_selected_set(cfdata->trans_list, i);
return;
}
} }
} }
@ -196,17 +204,23 @@ _trans_cb_changed(void *data)
t = e_widget_ilist_selected_label_get(cfdata->trans_list); t = e_widget_ilist_selected_label_get(cfdata->trans_list);
if (!t) return; if (!t) return;
if (!strcmp(t, _("None"))) t = NULL;
switch (sel) switch (sel)
{ {
case 0: case 0:
cfdata->transition_start = strdup(t); E_FREE(cfdata->transition_start);
if (t) cfdata->transition_start = strdup(t);
break; break;
case 1: case 1:
cfdata->transition_desk = strdup(t); E_FREE(cfdata->transition_desk);
if (t) cfdata->transition_desk = strdup(t);
break; break;
case 2: case 2:
cfdata->transition_change = strdup(t); E_FREE(cfdata->transition_change);
if (t) cfdata->transition_change = strdup(t);
break;
default:
break; break;
} }
} }