forked from enlightenment/enlightenment
Allow Auto-Apply Settings and Default Mode for Config Dialogues
SVN revision: 20492
This commit is contained in:
parent
fa5e3f722c
commit
d82db82448
|
@ -35,11 +35,38 @@ e_config_dialog_new(E_Container *con, char *title, char *icon, int icon_size, E_
|
||||||
cfd->data = data;
|
cfd->data = data;
|
||||||
cfd->hide_buttons = 1;
|
cfd->hide_buttons = 1;
|
||||||
cfd->cfg_changed = 0;
|
cfd->cfg_changed = 0;
|
||||||
|
|
||||||
if ((cfd->view->basic.apply_cfdata) || (cfd->view->advanced.apply_cfdata))
|
|
||||||
cfd->hide_buttons = 0;
|
|
||||||
|
|
||||||
_e_config_dialog_go(cfd, E_CONFIG_DIALOG_CFDATA_TYPE_BASIC);
|
if (cfd->view->override_auto_apply)
|
||||||
|
{
|
||||||
|
/* Dialog Requested To Not Auto-Apply */
|
||||||
|
if ((cfd->view->basic.apply_cfdata) || (cfd->view->advanced.apply_cfdata))
|
||||||
|
cfd->hide_buttons = 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
/* Ok To Override, Or Not Specified. Use Config Value */
|
||||||
|
if (e_config->cfgdlg_auto_apply)
|
||||||
|
cfd->hide_buttons = 1;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if ((cfd->view->basic.apply_cfdata) || (cfd->view->advanced.apply_cfdata))
|
||||||
|
cfd->hide_buttons = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (e_config->cfgdlg_default_mode)
|
||||||
|
{
|
||||||
|
case E_CONFIG_DIALOG_CFDATA_TYPE_BASIC:
|
||||||
|
if (cfd->view->basic.create_widgets)
|
||||||
|
_e_config_dialog_go(cfd, E_CONFIG_DIALOG_CFDATA_TYPE_BASIC);
|
||||||
|
break;
|
||||||
|
case E_CONFIG_DIALOG_CFDATA_TYPE_ADVANCED:
|
||||||
|
if (cfd->view->advanced.create_widgets)
|
||||||
|
_e_config_dialog_go(cfd, E_CONFIG_DIALOG_CFDATA_TYPE_ADVANCED);
|
||||||
|
else if (cfd->view->basic.create_widgets)
|
||||||
|
_e_config_dialog_go(cfd, E_CONFIG_DIALOG_CFDATA_TYPE_BASIC);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
return cfd;
|
return cfd;
|
||||||
}
|
}
|
||||||
|
@ -207,7 +234,7 @@ _e_config_dialog_cb_apply(void *data, E_Dialog *dia)
|
||||||
{
|
{
|
||||||
if (cfd->view->advanced.apply_cfdata)
|
if (cfd->view->advanced.apply_cfdata)
|
||||||
ok = cfd->view->advanced.apply_cfdata(cfd, cfd->cfdata);
|
ok = cfd->view->advanced.apply_cfdata(cfd, cfd->cfdata);
|
||||||
}
|
}
|
||||||
if ((ok) && (!cfd->hide_buttons))
|
if ((ok) && (!cfd->hide_buttons))
|
||||||
{
|
{
|
||||||
cfd->cfg_changed = 0;
|
cfd->cfg_changed = 0;
|
||||||
|
@ -238,6 +265,7 @@ static void
|
||||||
_e_config_dialog_cb_changed(void *data, Evas_Object *obj)
|
_e_config_dialog_cb_changed(void *data, Evas_Object *obj)
|
||||||
{
|
{
|
||||||
E_Config_Dialog *cfd;
|
E_Config_Dialog *cfd;
|
||||||
|
int ok = 0;
|
||||||
|
|
||||||
cfd = data;
|
cfd = data;
|
||||||
if (!cfd->hide_buttons)
|
if (!cfd->hide_buttons)
|
||||||
|
@ -246,6 +274,19 @@ _e_config_dialog_cb_changed(void *data, Evas_Object *obj)
|
||||||
e_dialog_button_disable_num_set(cfd->dia, 0, 0);
|
e_dialog_button_disable_num_set(cfd->dia, 0, 0);
|
||||||
e_dialog_button_disable_num_set(cfd->dia, 1, 0);
|
e_dialog_button_disable_num_set(cfd->dia, 1, 0);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (cfd->view_type == E_CONFIG_DIALOG_CFDATA_TYPE_BASIC)
|
||||||
|
{
|
||||||
|
if (cfd->view->basic.apply_cfdata)
|
||||||
|
ok = cfd->view->basic.apply_cfdata(cfd, cfd->cfdata);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (cfd->view->advanced.apply_cfdata)
|
||||||
|
ok = cfd->view->advanced.apply_cfdata(cfd, cfd->cfdata);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
|
|
@ -21,13 +21,15 @@ typedef struct _E_Config_Dialog_Data E_Config_Dialog_Data;
|
||||||
|
|
||||||
struct _E_Config_Dialog_View
|
struct _E_Config_Dialog_View
|
||||||
{
|
{
|
||||||
|
int override_auto_apply;
|
||||||
|
|
||||||
void *(*create_cfdata) (E_Config_Dialog *cfd);
|
void *(*create_cfdata) (E_Config_Dialog *cfd);
|
||||||
void (*free_cfdata) (E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata);
|
void (*free_cfdata) (E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata);
|
||||||
int (*close_cfdata) (E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata);
|
int (*close_cfdata) (E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata);
|
||||||
struct {
|
struct {
|
||||||
int (*apply_cfdata) (E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata);
|
int (*apply_cfdata) (E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata);
|
||||||
Evas_Object *(*create_widgets) (E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata);
|
Evas_Object *(*create_widgets) (E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata);
|
||||||
} basic, advanced;
|
} basic, advanced;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct _E_Config_Dialog
|
struct _E_Config_Dialog
|
||||||
|
|
Loading…
Reference in New Issue