1 #include "e_mod_main.h"
2 #include "e_fm_device.h"
3 
4 struct _E_Config_Dialog_Data
5 {
6    /* general view mode */
7     struct
8     {
9        int mode;
10        int open_dirs_in_place;
11        int selector;
12        int single_click;
13        int no_subdir_jump;
14        int no_subdir_drop;
15        int always_order;
16        int link_drop;
17        int fit_custom_pos;
18        int show_full_path;
19        int show_desktop_icons;
20        int show_toolbar;
21        int show_sidebar;
22        int desktop_navigation;
23        int menu_shows_files;
24        int spring_delay;
25     } view;
26    struct
27    {
28       double delay;
29       double size;
30       int enable;
31       int clamp_size;
32       Evas_Object *check_clamp_size;
33       Evas_Object *delay_slider_text;
34       Evas_Object *delay_slider;
35       Evas_Object *size_slider_text;
36       Evas_Object *size_slider;
37    } tooltip;
38     /* display of icons */
39     struct
40     {
41        struct
42        {
43           int w, h;
44        } icon, list, fixed;
45        struct
46        {
47           int show;
48        } extension;
49        const char *key_hint;
50        int max_thumb_size;
51     } icon;
52     /* how to sort files */
53     struct
54     {
55        struct
56        {
57           int case_sen;
58           int extension;
59           int mtime;
60           int size;
61           struct
62           {
63              int first, last;
64           } dirs;
65        } sort;
66     } list;
67     /* control how you can select files */
68     struct
69     {
70        int single;
71        int windows_modifiers;
72     } selection;
73     /* the background - if any, and how to handle it */
74     /* FIXME: not implemented yet */
75     struct
76     {
77        const char *background;
78        const char *frame, *icons;
79        int         fixed;
80     } theme;
81 
82     struct
83     {
84        int desktop;
85        int auto_mount;
86        int auto_open;
87     } dbus;
88 
89    int copy;
90    int secure_rm;
91 
92    Evas_Object *dir_sort_first;
93    Evas_Object *dir_sort_last;
94     E_Config_Dialog *cfd;
95 };
96 
97 static void        *_create_data(E_Config_Dialog *cfd);
98 static void         _fill_data(E_Config_Dialog_Data *cfdata);
99 static void         _free_data(E_Config_Dialog      *cfd,
100                                E_Config_Dialog_Data *cfdata);
101 static int          _basic_apply(E_Config_Dialog      *cfd,
102                                  E_Config_Dialog_Data *cfdata);
103 static int          _basic_check_changed(E_Config_Dialog      *cfd,
104                                          E_Config_Dialog_Data *cfdata);
105 static Evas_Object *_basic_create(E_Config_Dialog      *cfd,
106                                   Evas                 *evas,
107                                   E_Config_Dialog_Data *cfdata);
108 
109 E_Config_Dialog *
e_int_config_fileman(Evas_Object * parent EINA_UNUSED,const char * params EINA_UNUSED)110 e_int_config_fileman(Evas_Object *parent EINA_UNUSED, const char *params EINA_UNUSED)
111 {
112    E_Config_Dialog *cfd;
113    E_Config_Dialog_View *v;
114 
115    if (e_config_dialog_find("E", "fileman/fileman")) return NULL;
116    v = E_NEW(E_Config_Dialog_View, 1);
117    v->create_cfdata = _create_data;
118    v->free_cfdata = _free_data;
119    v->basic.apply_cfdata = _basic_apply;
120    v->basic.create_widgets = _basic_create;
121    v->basic.check_changed = _basic_check_changed;
122 
123    cfd = e_config_dialog_new(NULL, _("File Manager Settings"), "E",
124                              "fileman/fileman",
125                              "system-file-manager", 0, v, NULL);
126    return cfd;
127 }
128 
129 static void *
_create_data(E_Config_Dialog * cfd)130 _create_data(E_Config_Dialog *cfd)
131 {
132    E_Config_Dialog_Data *cfdata;
133 
134    cfdata = E_NEW(E_Config_Dialog_Data, 1);
135    cfd->cfdata = cfdata;
136    cfdata->cfd = cfd;
137    _fill_data(cfdata);
138    return cfdata;
139 }
140 
141 static void
_fill_data(E_Config_Dialog_Data * cfdata)142 _fill_data(E_Config_Dialog_Data *cfdata)
143 {
144    cfdata->view.mode = fileman_config->view.mode;
145    cfdata->view.open_dirs_in_place = fileman_config->view.open_dirs_in_place;
146    cfdata->view.single_click = fileman_config->view.single_click;
147    cfdata->copy = e_config->filemanager_copy;
148    cfdata->secure_rm = e_config->filemanager_secure_rm;
149    cfdata->view.show_full_path = fileman_config->view.show_full_path;
150    cfdata->view.show_desktop_icons = e_config->show_desktop_icons;
151    cfdata->view.show_toolbar = fileman_config->view.show_toolbar;
152    cfdata->view.show_sidebar = fileman_config->view.show_sidebar;
153    cfdata->view.desktop_navigation = fileman_config->view.desktop_navigation;
154    cfdata->view.menu_shows_files = fileman_config->view.menu_shows_files;
155    cfdata->view.spring_delay = fileman_config->view.spring_delay;
156    cfdata->icon.max_thumb_size = fileman_config->icon.max_thumb_size;
157    cfdata->icon.icon.w = fileman_config->icon.icon.w;
158    cfdata->icon.icon.h = fileman_config->icon.icon.h;
159    cfdata->icon.extension.show = fileman_config->icon.extension.show;
160    cfdata->tooltip.delay = fileman_config->tooltip.delay;
161    cfdata->tooltip.size = fileman_config->tooltip.size;
162    cfdata->tooltip.enable = fileman_config->tooltip.enable;
163    cfdata->tooltip.clamp_size = fileman_config->tooltip.clamp_size;
164    cfdata->selection.windows_modifiers = fileman_config->selection.windows_modifiers;
165    cfdata->list.sort.dirs.first = fileman_config->list.sort.dirs.first;
166    cfdata->list.sort.dirs.last = fileman_config->list.sort.dirs.last;
167    cfdata->list.sort.extension = fileman_config->list.sort.extension;
168    cfdata->list.sort.mtime = fileman_config->list.sort.mtime;
169    cfdata->list.sort.size = fileman_config->list.sort.size;
170    cfdata->list.sort.case_sen = !(fileman_config->list.sort.no_case);
171    cfdata->dbus.desktop = e_config->device_desktop;
172    cfdata->dbus.auto_mount = e_config->device_auto_mount;
173    cfdata->dbus.auto_open = e_config->device_auto_open;
174 }
175 
176 static void
_free_data(E_Config_Dialog * cfd,E_Config_Dialog_Data * cfdata)177 _free_data(E_Config_Dialog      *cfd,
178            E_Config_Dialog_Data *cfdata)
179 {
180    E_FREE(cfd->data);
181    E_FREE(cfdata);
182 }
183 
184 static int
_basic_apply(E_Config_Dialog * cfd EINA_UNUSED,E_Config_Dialog_Data * cfdata)185 _basic_apply(E_Config_Dialog *cfd  EINA_UNUSED,
186              E_Config_Dialog_Data *cfdata)
187 {
188    fileman_config->view.mode = cfdata->view.mode;
189    fileman_config->view.open_dirs_in_place = cfdata->view.open_dirs_in_place;
190    e_config->filemanager_single_click = fileman_config->view.single_click = cfdata->view.single_click;
191    e_config->filemanager_copy = cfdata->copy;
192    e_config->filemanager_secure_rm = cfdata->secure_rm;
193    fileman_config->view.show_full_path = cfdata->view.show_full_path;
194    e_config->show_desktop_icons = cfdata->view.show_desktop_icons;
195    fileman_config->view.show_toolbar = cfdata->view.show_toolbar;
196    fileman_config->view.show_sidebar = cfdata->view.show_sidebar;
197    fileman_config->view.desktop_navigation = cfdata->view.desktop_navigation;
198    fileman_config->view.menu_shows_files = cfdata->view.menu_shows_files;
199    fileman_config->view.spring_delay = cfdata->view.spring_delay;
200    fileman_config->icon.max_thumb_size = cfdata->icon.max_thumb_size;
201    /* Make these two equal so that icons are proportioned correctly */
202    fileman_config->icon.icon.w = cfdata->icon.icon.w;
203    fileman_config->icon.icon.h = cfdata->icon.icon.w;
204    fileman_config->icon.extension.show = cfdata->icon.extension.show;
205    fileman_config->tooltip.delay = cfdata->tooltip.delay;
206    fileman_config->tooltip.size = cfdata->tooltip.size;
207    fileman_config->tooltip.enable = cfdata->tooltip.enable;
208    fileman_config->tooltip.clamp_size = cfdata->tooltip.clamp_size;
209    fileman_config->selection.windows_modifiers = cfdata->selection.windows_modifiers;
210    fileman_config->list.sort.dirs.first = cfdata->list.sort.dirs.first;
211    fileman_config->list.sort.dirs.last = cfdata->list.sort.dirs.last;
212    fileman_config->list.sort.extension = cfdata->list.sort.extension;
213    fileman_config->list.sort.mtime = cfdata->list.sort.mtime;
214    fileman_config->list.sort.size = cfdata->list.sort.size;
215    fileman_config->list.sort.no_case = !(cfdata->list.sort.case_sen);
216 
217    e_config->device_desktop = cfdata->dbus.desktop;
218    if(e_config->device_desktop)
219      e_fm2_device_show_desktop_icons();
220    else
221      e_fm2_device_hide_desktop_icons();
222 
223    e_config->device_auto_mount = cfdata->dbus.auto_mount;
224    e_config->device_auto_open = cfdata->dbus.auto_open;
225 
226    e_config_save_queue();
227 
228    e_fwin_reload_all();
229    return 1;
230 }
231 
232 static int
_basic_check_changed(E_Config_Dialog * cfd EINA_UNUSED,E_Config_Dialog_Data * cfdata)233 _basic_check_changed(E_Config_Dialog *cfd  EINA_UNUSED,
234                      E_Config_Dialog_Data *cfdata)
235 {
236    return
237      ((int)fileman_config->view.mode != cfdata->view.mode) ||
238      (fileman_config->view.open_dirs_in_place != cfdata->view.open_dirs_in_place) ||
239      (fileman_config->view.single_click != cfdata->view.single_click) ||
240      (e_config->filemanager_copy != cfdata->copy) ||
241      (e_config->filemanager_secure_rm != cfdata->secure_rm) ||
242      (fileman_config->view.show_full_path != cfdata->view.show_full_path) ||
243      (e_config->show_desktop_icons != cfdata->view.show_desktop_icons) ||
244      (fileman_config->view.show_toolbar != cfdata->view.show_toolbar) ||
245      (fileman_config->view.show_sidebar != cfdata->view.show_sidebar) ||
246      (fileman_config->view.desktop_navigation != cfdata->view.desktop_navigation) ||
247      (fileman_config->view.menu_shows_files != cfdata->view.menu_shows_files) ||
248      (fileman_config->view.spring_delay != cfdata->view.spring_delay) ||
249      ((int)fileman_config->icon.max_thumb_size != cfdata->icon.max_thumb_size) ||
250      (fileman_config->icon.icon.w != cfdata->icon.icon.w) ||
251      (fileman_config->icon.icon.h != cfdata->icon.icon.w) ||
252      (fileman_config->icon.extension.show != cfdata->icon.extension.show) ||
253      (!EINA_DBL_EQ(fileman_config->tooltip.delay, cfdata->tooltip.delay)) ||
254      (!EINA_DBL_EQ(fileman_config->tooltip.size, cfdata->tooltip.size)) ||
255      (fileman_config->tooltip.enable != cfdata->tooltip.enable) ||
256      (fileman_config->tooltip.clamp_size != cfdata->tooltip.clamp_size) ||
257      (fileman_config->selection.windows_modifiers != cfdata->selection.windows_modifiers) ||
258      (fileman_config->list.sort.dirs.first != cfdata->list.sort.dirs.first) ||
259      (fileman_config->list.sort.dirs.last != cfdata->list.sort.dirs.last) ||
260      (fileman_config->list.sort.extension != cfdata->list.sort.extension) ||
261      (fileman_config->list.sort.mtime != cfdata->list.sort.mtime) ||
262      (fileman_config->list.sort.size != cfdata->list.sort.size) ||
263      (fileman_config->list.sort.no_case != !(cfdata->list.sort.case_sen)) ||
264      (e_config->device_desktop != cfdata->dbus.desktop) ||
265      (e_config->device_auto_mount != cfdata->dbus.auto_mount) ||
266      (e_config->device_auto_open != cfdata->dbus.auto_open);
267 }
268 
269 static void
_dir_sort_first_changed(void * data,Evas_Object * obj EINA_UNUSED)270 _dir_sort_first_changed(void *data, Evas_Object *obj EINA_UNUSED)
271 {
272    E_Config_Dialog_Data *cfdata = data;
273 
274    if (cfdata->list.sort.dirs.first)
275      e_widget_check_checked_set(cfdata->dir_sort_last, 0);
276 }
277 
278 static void
_dir_sort_last_changed(void * data,Evas_Object * obj EINA_UNUSED)279 _dir_sort_last_changed(void *data, Evas_Object *obj EINA_UNUSED)
280 {
281    E_Config_Dialog_Data *cfdata = data;
282 
283    if (cfdata->list.sort.dirs.last)
284      e_widget_check_checked_set(cfdata->dir_sort_first, 0);
285 }
286 
287 static void
_tooltip_changed(void * data,Evas_Object * obj EINA_UNUSED)288 _tooltip_changed(void *data, Evas_Object *obj EINA_UNUSED)
289 {
290    E_Config_Dialog_Data *cfdata = data;
291 
292    e_widget_disabled_set(cfdata->tooltip.check_clamp_size, !cfdata->tooltip.enable);
293    e_widget_disabled_set(cfdata->tooltip.delay_slider_text, !cfdata->tooltip.enable);
294    e_widget_disabled_set(cfdata->tooltip.delay_slider, !cfdata->tooltip.enable);
295    e_widget_disabled_set(cfdata->tooltip.size_slider_text, !cfdata->tooltip.enable);
296    e_widget_disabled_set(cfdata->tooltip.size_slider, !cfdata->tooltip.enable);
297 }
298 
299 static Evas_Object *
_basic_create(E_Config_Dialog * cfd EINA_UNUSED,Evas * evas,E_Config_Dialog_Data * cfdata)300 _basic_create(E_Config_Dialog *cfd  EINA_UNUSED,
301               Evas                 *evas,
302               E_Config_Dialog_Data *cfdata)
303 {
304    Evas_Object *o, *oi, *ob, *of, *otb;
305    E_Radio_Group *rg;
306    int mw, mh;
307 
308    e_dialog_resizable_set(cfd->dia, 1);
309    otb = e_widget_toolbook_add(evas, 48 * e_scale, 48 * e_scale);
310 
311    o = e_widget_list_add(evas, 0, 0);
312    of = e_widget_framelist_add(evas, _("View Mode"), 0);
313    rg = e_widget_radio_group_new(&cfdata->view.mode);
314 /*    ob = e_widget_radio_add(evas, _("Icons"), 0, rg); */
315 /*    e_widget_disabled_set(ob, 1); */
316 /*    e_widget_framelist_object_append(of, ob); */
317    ob = e_widget_radio_add(evas, _("Grid Icons"), 1, rg);
318    e_widget_framelist_object_append(of, ob);
319    ob = e_widget_radio_add(evas, _("Custom Icons"), 2, rg);
320    e_widget_framelist_object_append(of, ob);
321 /*    ob = e_widget_radio_add(evas, _("Custom Grid Icons"), 3, rg); */
322 /*    e_widget_disabled_set(ob, 1); */
323 /*    e_widget_framelist_object_append(of, ob); */
324 /*    ob = e_widget_radio_add(evas, _("Custom Smart Grid Icons"), 4, rg); */
325 /*    e_widget_disabled_set(ob, 1); */
326 /*    e_widget_framelist_object_append(of, ob); */
327    ob = e_widget_radio_add(evas, _("List"), 5, rg);
328    e_widget_framelist_object_append(of, ob);
329    e_widget_list_object_append(o, of, 1, 1, 0.5);
330 
331    ob = e_widget_label_add(evas, _("Icon Size"));
332    e_widget_list_object_append(o, ob, 1, 1, 0.5);
333    ob = e_widget_slider_add(evas, 1, 0, _("%1.0f"), 16.0, 256.0, 1.0, 0,
334                             NULL, &(cfdata->icon.icon.w), 150);
335    e_widget_list_object_append(o, ob, 1, 1, 0.5);
336 
337    e_widget_toolbook_page_append(otb, NULL, _("View"), o, 1, 1, 1, 0, 0.0, 0.0);
338 
339    /////////////////////////////////////////////////////////////
340    o = e_widget_list_add(evas, 1, 0);
341 
342    ob = e_widget_check_add(evas, _("File Extensions"),
343                            &(cfdata->icon.extension.show));
344    e_widget_list_object_append(o, ob, 1, 1, 0.5);
345    ob = e_widget_check_add(evas, _("Full Path In Title"),
346                            &(cfdata->view.show_full_path));
347    e_widget_list_object_append(o, ob, 1, 1, 0.5);
348    ob = e_widget_check_add(evas, _("Icons On Desktop"),
349                            &(cfdata->view.show_desktop_icons));
350    e_widget_list_object_append(o, ob, 1, 1, 0.5);
351    ob = e_widget_check_add(evas, _("Toolbar"),
352                            &(cfdata->view.show_toolbar));
353    e_widget_list_object_append(o, ob, 1, 1, 0.5);
354    ob = e_widget_check_add(evas, _("Sidebar"),
355                            &(cfdata->view.show_sidebar));
356    e_widget_list_object_append(o, ob, 1, 1, 0.5);
357 /* FIXME: this sucks
358    ob = e_widget_check_add(evas, _("Regular Files In Menu (SLOW)"),
359                            &(cfdata->view.menu_shows_files));
360    e_widget_list_object_append(o, ob, 1, 1, 0.5);
361 */
362    e_widget_toolbook_page_append(otb, NULL, _("Display"), o, 1, 1, 1, 0, 0.0, 0.0);
363 
364    /////////////////////////////////////////////////////////////
365    o = e_widget_list_add(evas, 0, 0);
366 
367    ob = e_widget_check_add(evas, _("Case Sensitive"),
368                            &(cfdata->list.sort.case_sen));
369    e_widget_list_object_append(o, ob, 1, 1, 0.5);
370    ob = e_widget_check_add(evas, _("Sort By Extension"),
371                            &(cfdata->list.sort.extension));
372    e_widget_list_object_append(o, ob, 1, 1, 0.5);
373    ob = e_widget_check_add(evas, _("Sort By Modification Time"),
374                            &(cfdata->list.sort.mtime));
375    e_widget_list_object_append(o, ob, 1, 1, 0.5);
376    ob = e_widget_check_add(evas, _("Sort By Size"),
377                            &(cfdata->list.sort.size));
378    e_widget_list_object_append(o, ob, 1, 1, 0.5);
379    oi = edje_object_add(evas);
380    e_theme_edje_object_set(oi, "base/theme/menus", "e/widgets/menu/default/separator");
381    edje_object_size_min_calc(oi, &mw, &mh);
382    ob = e_widget_image_add_from_object(evas, oi, mw, mh);
383    e_widget_list_object_append(o, ob, 1, 1, 0.5);
384    cfdata->dir_sort_first = ob = e_widget_check_add(evas, _("Directories First"),
385                            &(cfdata->list.sort.dirs.first));
386    e_widget_on_change_hook_set(ob, _dir_sort_first_changed, cfdata);
387    e_widget_list_object_append(o, ob, 1, 1, 0.5);
388    cfdata->dir_sort_last = ob = e_widget_check_add(evas, _("Directories Last"),
389                            &(cfdata->list.sort.dirs.last));
390    e_widget_on_change_hook_set(ob, _dir_sort_last_changed, cfdata);
391    e_widget_list_object_append(o, ob, 1, 1, 0.5);
392    e_widget_toolbook_page_append(otb, NULL, _("Sorting"), o, 1, 1, 1, 0, 0.0, 0.0);
393    /////////////////////////////////////////////////////////////
394    o = e_widget_list_add(evas, 1, 0);
395    ob = e_widget_check_add(evas, _("Open Dirs In Place"),
396                            &(cfdata->view.open_dirs_in_place));
397    e_widget_list_object_append(o, ob, 1, 1, 0.5);
398    ob = e_widget_check_add(evas, _("Use Single Click"),
399                            &(cfdata->view.single_click));
400    e_widget_list_object_append(o, ob, 1, 1, 0.5);
401    ob = e_widget_check_add(evas, _("'cp+rm' instead of 'mv'"),
402                            &(cfdata->copy));
403    e_widget_list_object_append(o, ob, 1, 1, 0.5);
404    ob = e_widget_check_add(evas, _("Secure Deletion"),
405                            &(cfdata->secure_rm));
406    e_widget_list_object_append(o, ob, 1, 1, 0.5);
407    ob = e_widget_check_add(evas, _("Use Alternate Selection Modifiers"),
408                            &(cfdata->selection.windows_modifiers));
409    e_widget_list_object_append(o, ob, 1, 1, 0.5);
410    ob = e_widget_check_add(evas, _("Allow Navigation On Desktop"),
411                            &(cfdata->view.desktop_navigation));
412    e_widget_list_object_append(o, ob, 1, 1, 0.5);
413 
414    ob = e_widget_label_add(evas, _("Max File Size For Thumbnailing"));
415    e_widget_list_object_append(o, ob, 1, 1, 0.5);
416    ob = e_widget_slider_add(evas, 1, 0, _("%1.0f MiB"), 0, 512, 1, 0,
417                             NULL, &(cfdata->icon.max_thumb_size), 150);
418    e_widget_list_object_append(o, ob, 1, 1, 0.5);
419 
420    ob = e_widget_label_add(evas, _("Spring Delay"));
421    e_widget_list_object_append(o, ob, 1, 1, 0.5);
422    ob = e_widget_slider_add(evas, 1, 0, _("%1.0f seconds"), 1.0, 10.0, 1, 0,
423                             NULL, &(cfdata->view.spring_delay), 150);
424    e_widget_list_object_append(o, ob, 1, 1, 0.5);
425    e_widget_toolbook_page_append(otb, NULL, _("Behavior"), o, 1, 1, 1, 0, 0.0, 0.0);
426    /////////////////////////////////////////////////////////////
427 
428    o = e_widget_list_add(evas, 2, 0);
429    {
430       char buf[32];
431       switch (e_config->device_detect_mode)
432         {
433          case EFM_MODE_USING_HAL_MOUNT:
434            snprintf(buf, sizeof(buf), "%s: HAL", _("Mode"));
435            break;
436          case EFM_MODE_USING_UDISKS_MOUNT:
437            snprintf(buf, sizeof(buf), "%s: UDISKS", _("Mode"));
438            break;
439          case EFM_MODE_USING_UDISKS2_MOUNT:
440            snprintf(buf, sizeof(buf), "%s: UDISKS2", _("Mode"));
441            break;
442          case EFM_MODE_USING_EEZE_MOUNT:
443            snprintf(buf, sizeof(buf), "%s: EEZE", _("Mode"));
444            break;
445          default:
446            snprintf(buf, sizeof(buf), "%s: RASTER", _("Mode"));
447            break;
448         }
449       ob = e_widget_label_add(evas, buf);
450       e_widget_list_object_append(o, ob, 0, 1, 0.5);
451    }
452    ob = e_widget_check_add(evas, _("Show device icons on desktop"),
453                            &(cfdata->dbus.desktop));
454    e_widget_list_object_append(o, ob, 1, 1, 0.5);
455    ob = e_widget_check_add(evas, _("Mount volumes on insert"),
456                            &(cfdata->dbus.auto_mount));
457    e_widget_list_object_append(o, ob, 1, 1, 0.5);
458    ob = e_widget_check_add(evas, _("Open filemanager on mount"),
459                            &(cfdata->dbus.auto_open));
460    e_widget_list_object_append(o, ob, 1, 1, 0.5);
461 
462    e_widget_toolbook_page_append(otb, NULL, _("Device"), o, 1, 1, 1, 0, 0.0, 0.0);
463 
464    /////////////////////////////////////////////////////////////
465    o = e_widget_list_add(evas, 1, 0);
466    ob = e_widget_check_add(evas, _("Show tooltip"),
467                            &cfdata->tooltip.enable);
468    e_widget_on_change_hook_set(ob, _tooltip_changed, cfdata);
469    e_widget_list_object_append(o, ob, 1, 1, 0.5);
470    cfdata->tooltip.check_clamp_size = ob = e_widget_check_add(evas, _("Clamp video size"),
471                            &cfdata->tooltip.clamp_size);
472    e_widget_list_object_append(o, ob, 1, 1, 0.5);
473    cfdata->tooltip.delay_slider_text = ob = e_widget_label_add(evas, _("Tooltip delay"));
474    e_widget_list_object_append(o, ob, 1, 1, 0.5);
475    cfdata->tooltip.delay_slider = ob = e_widget_slider_add(evas, 1, 0, _("%1.1f"), 0.0, 5.0, 0.5, 0,
476                             &cfdata->tooltip.delay, NULL, 150);
477    e_widget_list_object_append(o, ob, 1, 1, 0.5);
478 
479    cfdata->tooltip.size_slider_text = ob = e_widget_label_add(evas, _("Tooltip size (Screen percentage)"));
480    e_widget_list_object_append(o, ob, 1, 1, 0.5);
481    cfdata->tooltip.size_slider = ob = e_widget_slider_add(evas, 1, 0, _("%2.0f"), 10.0, 75.0, 5.0, 0,
482                             &cfdata->tooltip.size, NULL, 150);
483    e_widget_list_object_append(o, ob, 1, 1, 0.5);
484    _tooltip_changed(cfdata, NULL);
485    e_widget_toolbook_page_append(otb, NULL, _("Tooltips"), o, 1, 1, 1, 0, 0.0, 0.0);
486    e_widget_toolbook_page_show(otb, 0);
487                                return otb;
488 }
489 
490