ibar confirm dialog on source delete is now destroyed when config dialog is closed.

SVN revision: 29783
This commit is contained in:
kiwi 2007-04-30 23:08:06 +00:00 committed by kiwi
parent 629fcbbc65
commit 4d32378f8b
1 changed files with 22 additions and 5 deletions

View File

@ -15,6 +15,7 @@ struct _E_Config_Dialog_Data
Evas_Object *radio_name; Evas_Object *radio_name;
Evas_Object *radio_comment; Evas_Object *radio_comment;
Evas_Object *radio_generic; Evas_Object *radio_generic;
E_Confirm_Dialog *dialog_delete;
}; };
/* Protos */ /* Protos */
@ -27,6 +28,7 @@ static void _cb_del(void *data, void *data2);
static void _cb_config(void *data, void *data2); static void _cb_config(void *data, void *data2);
static void _cb_entry_ok(char *text, void *data); static void _cb_entry_ok(char *text, void *data);
static void _cb_confirm_dialog_yes(void *data); static void _cb_confirm_dialog_yes(void *data);
static void _cb_confirm_dialog_destroy(void *data);
static void _load_tlist(E_Config_Dialog_Data *cfdata); static void _load_tlist(E_Config_Dialog_Data *cfdata);
static void _show_label_cb_change(void *data, Evas_Object *obj); static void _show_label_cb_change(void *data, Evas_Object *obj);
@ -83,6 +85,7 @@ static void
_free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata) _free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
{ {
if (cfdata->dir) free(cfdata->dir); if (cfdata->dir) free(cfdata->dir);
if (cfdata->dialog_delete) e_object_del(cfdata->dialog_delete);
ibar_config->config_dialog = NULL; ibar_config->config_dialog = NULL;
E_FREE(cfdata); E_FREE(cfdata);
} }
@ -168,15 +171,20 @@ _cb_del(void *data, void *data2)
{ {
char buf[4096]; char buf[4096];
E_Config_Dialog_Data *cfdata; E_Config_Dialog_Data *cfdata;
E_Confirm_Dialog *dialog;
cfdata = data;
cfdata = data;
if (cfdata->dialog_delete)
return;
snprintf(buf, sizeof(buf), _("You requested to delete \"%s\".<br><br>" snprintf(buf, sizeof(buf), _("You requested to delete \"%s\".<br><br>"
"Are you sure you want to delete this bar source?"), "Are you sure you want to delete this bar source?"),
cfdata->dir); cfdata->dir);
e_confirm_dialog_show(_("Are you sure you want to delete this bar source?"), dialog = e_confirm_dialog_show(_("Are you sure you want to delete this bar source?"),
"enlightenment/exit", buf, NULL, NULL, "enlightenment/exit", buf, NULL, NULL,
_cb_confirm_dialog_yes, NULL, cfdata, NULL, NULL, NULL); _cb_confirm_dialog_yes, NULL, cfdata, NULL, _cb_confirm_dialog_destroy, cfdata);
cfdata->dialog_delete = dialog;
} }
static void static void
@ -235,6 +243,15 @@ _cb_confirm_dialog_yes(void *data)
_load_tlist(cfdata); _load_tlist(cfdata);
} }
static void
_cb_confirm_dialog_destroy(void *data)
{
E_Config_Dialog_Data *cfdata;
cfdata = data;
cfdata->dialog_delete = NULL;
}
static void static void
_load_tlist(E_Config_Dialog_Data *cfdata) _load_tlist(E_Config_Dialog_Data *cfdata)
{ {