|
From: <enl...@li...> - 2006-02-15 20:29:41
|
Enlightenment CVS committal
Author : devilhorns
Project : e17
Module : apps/e
Dir : e17/apps/e/src/bin
Modified Files:
e_config_dialog.h e_config_dialog.c
Log Message:
Allow Auto-Apply Settings and Default Mode for Config Dialogues
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_config_dialog.h,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -3 -r1.9 -r1.10
--- e_config_dialog.h 13 Feb 2006 15:36:56 -0000 1.9
+++ e_config_dialog.h 15 Feb 2006 20:29:33 -0000 1.10
@@ -21,13 +21,15 @@
struct _E_Config_Dialog_View
{
+ int override_auto_apply;
+
void *(*create_cfdata) (E_Config_Dialog *cfd);
void (*free_cfdata) (E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata);
int (*close_cfdata) (E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata);
struct {
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);
- } basic, advanced;
+ } basic, advanced;
};
struct _E_Config_Dialog
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_config_dialog.c,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -3 -r1.21 -r1.22
--- e_config_dialog.c 13 Feb 2006 15:36:56 -0000 1.21
+++ e_config_dialog.c 15 Feb 2006 20:29:33 -0000 1.22
@@ -35,11 +35,38 @@
cfd->data = data;
cfd->hide_buttons = 1;
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;
}
@@ -207,7 +234,7 @@
{
if (cfd->view->advanced.apply_cfdata)
ok = cfd->view->advanced.apply_cfdata(cfd, cfd->cfdata);
- }
+ }
if ((ok) && (!cfd->hide_buttons))
{
cfd->cfg_changed = 0;
@@ -238,6 +265,7 @@
_e_config_dialog_cb_changed(void *data, Evas_Object *obj)
{
E_Config_Dialog *cfd;
+ int ok = 0;
cfd = data;
if (!cfd->hide_buttons)
@@ -246,6 +274,19 @@
e_dialog_button_disable_num_set(cfd->dia, 0, 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
|