3 /* PROTOTYPES - same all the time */
5 static void *_create_data(E_Config_Dialog *cfd);
6 static void _free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata);
7 static int _basic_apply(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata);
8 static Evas_Object *_basic_create(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata);
10 /* Actual config data we will be playing with whil the dialog is active */
11 struct _E_Config_Dialog_Data
17 int exe_always_single_instance;
20 /* a nice easy setup function that does the dirty work */
22 e_int_config_deskenv(E_Container *con, const char *params __UNUSED__)
25 E_Config_Dialog_View *v;
27 if (e_config_dialog_find("E", "windows/desktop_environments"))
29 v = E_NEW(E_Config_Dialog_View, 1);
32 v->create_cfdata = _create_data;
33 v->free_cfdata = _free_data;
34 v->basic.apply_cfdata = _basic_apply;
35 v->basic.create_widgets = _basic_create;
37 /* create config diaolg for NULL object/data */
38 cfd = e_config_dialog_new(con, _("Desktop Environments"), "E",
39 "windows/desktop_environments",
40 "preferences-desktop-environments", 0, v, NULL);
46 _fill_data(E_Config_Dialog_Data *cfdata)
48 cfdata->load_xrdb = e_config->deskenv.load_xrdb;
49 cfdata->load_xmodmap = e_config->deskenv.load_xmodmap;
50 cfdata->load_gnome = e_config->deskenv.load_gnome;
51 cfdata->load_kde = e_config->deskenv.load_kde;
52 cfdata->exe_always_single_instance = e_config->exe_always_single_instance;
56 _create_data(E_Config_Dialog *cfd __UNUSED__)
58 E_Config_Dialog_Data *cfdata;
60 cfdata = E_NEW(E_Config_Dialog_Data, 1);
66 _free_data(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata)
73 _basic_apply(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata)
75 e_config->deskenv.load_xrdb = cfdata->load_xrdb;
76 e_config->deskenv.load_xmodmap = cfdata->load_xmodmap;
77 e_config->deskenv.load_gnome = cfdata->load_gnome;
78 e_config->deskenv.load_kde = cfdata->load_kde;
79 e_config->exe_always_single_instance = cfdata->exe_always_single_instance;
80 e_config_save_queue();
81 return 1; /* Apply was OK */
86 _basic_create(E_Config_Dialog *cfd __UNUSED__, Evas *evas, E_Config_Dialog_Data *cfdata)
88 /* generate the core widget layout for a basic dialog */
89 Evas_Object *o, *fr, *ob;
91 o = e_widget_list_add(evas, 0, 0);
93 fr = e_widget_framelist_add(evas, _("Execution"), 0);
94 ob = e_widget_check_add(evas, _("Only launch single instances"),
95 &(cfdata->exe_always_single_instance));
96 e_widget_framelist_object_append(fr, ob);
97 e_widget_list_object_append(o, fr, 1, 0, 0.0);
99 fr = e_widget_framelist_add(evas, _("X11 Basics"), 0);
100 ob = e_widget_check_add(evas, _("Load X Resources"),
101 &(cfdata->load_xrdb));
102 e_widget_framelist_object_append(fr, ob);
103 ob = e_widget_check_add(evas, _("Load X Modifier Map"),
104 &(cfdata->load_xmodmap));
105 e_widget_framelist_object_append(fr, ob);
106 e_widget_list_object_append(o, fr, 1, 0, 0.0);
108 fr = e_widget_framelist_add(evas, _("Major Desktops"), 0);
109 ob = e_widget_check_add(evas, _("Start GNOME services on login"),
110 &(cfdata->load_gnome));
111 e_widget_framelist_object_append(fr, ob);
112 ob = e_widget_check_add(evas, _("Start KDE services on login"),
113 &(cfdata->load_kde));
114 e_widget_framelist_object_append(fr, ob);
115 e_widget_list_object_append(o, fr, 1, 0, 0.0);