diff --git a/src/modules/fileman/e_fwin.c b/src/modules/fileman/e_fwin.c index 51a20165f..fe4f32468 100644 --- a/src/modules/fileman/e_fwin.c +++ b/src/modules/fileman/e_fwin.c @@ -581,7 +581,9 @@ _e_fwin_icon_popup(void *data) edje = edje_object_add(fwin->popup->evas); e_theme_edje_object_set(edje, "base/theme/borders", "e/widgets/border/pixel/border"); edje_object_signal_emit(edje, "e,state,focused", "e"); - o = e_widget_filepreview_add(fwin->popup->evas); + mw = zone->w * fileman_config->tooltip.size / 100.0; + mh = zone->h * fileman_config->tooltip.size / 100.0; + o = e_widget_filepreview_add(fwin->popup->evas, mw, mh); snprintf(buf, sizeof(buf), "%s/%s", e_fm2_real_path_get(fwin->cur_page->fm_obj), fwin->popup_icon->file); e_widget_filepreview_path_set(o, buf); e_widget_size_min_get(o, &mw, &mh); @@ -634,7 +636,7 @@ _e_fwin_icon_mouse_in(void *data, Evas_Object *obj __UNUSED__, void *event_info) E_Fm2_Icon_Info *ici = event_info; if (fwin->popup_timer) ecore_timer_del(fwin->popup_timer); - fwin->popup_timer = ecore_timer_add(1.0, _e_fwin_icon_popup, fwin); + fwin->popup_timer = ecore_timer_add(fileman_config->tooltip.delay, _e_fwin_icon_popup, fwin); fwin->popup_icon = ici; } diff --git a/src/modules/fileman/e_mod_config.c b/src/modules/fileman/e_mod_config.c index 08befd421..9cb7b5123 100644 --- a/src/modules/fileman/e_mod_config.c +++ b/src/modules/fileman/e_mod_config.c @@ -21,6 +21,11 @@ struct _E_Config_Dialog_Data int show_desktop_icons; int show_toolbar; } view; + struct + { + double delay; + double size; + } tooltip; /* display of icons */ struct { @@ -127,6 +132,8 @@ _fill_data(E_Config_Dialog_Data *cfdata) cfdata->view.show_toolbar = fileman_config->view.show_toolbar; cfdata->icon.icon.w = fileman_config->icon.icon.w; cfdata->icon.icon.h = fileman_config->icon.icon.h; + cfdata->tooltip.delay = fileman_config->tooltip.delay; + cfdata->tooltip.size = fileman_config->tooltip.size; cfdata->icon.extension.show = fileman_config->icon.extension.show; cfdata->selection.windows_modifiers = fileman_config->selection.windows_modifiers; cfdata->list.sort.dirs.first = fileman_config->list.sort.dirs.first; @@ -162,6 +169,9 @@ _basic_apply(E_Config_Dialog *cfd __UNUSED__, fileman_config->icon.icon.w = cfdata->icon.icon.w; fileman_config->icon.icon.h = cfdata->icon.icon.w; + fileman_config->tooltip.delay = cfdata->tooltip.delay; + fileman_config->tooltip.size = cfdata->tooltip.size; + fileman_config->list.sort.dirs.first = cfdata->list.sort.dirs.first; fileman_config->list.sort.dirs.last = !(cfdata->list.sort.dirs.first); fileman_config->list.sort.no_case = !(cfdata->list.sort.case_sen); @@ -200,6 +210,8 @@ _basic_check_changed(E_Config_Dialog *cfd __UNUSED__, (fileman_config->list.sort.dirs.first != cfdata->list.sort.dirs.first) || (fileman_config->list.sort.dirs.last != !(cfdata->list.sort.dirs.first)) || (fileman_config->list.sort.no_case != !(cfdata->list.sort.case_sen)) || + (fileman_config->tooltip.delay != !(cfdata->tooltip.delay)) || + (fileman_config->tooltip.size != !(cfdata->tooltip.size)) || (e_config->device_desktop != cfdata->dbus.desktop) || (e_config->device_auto_mount != cfdata->dbus.auto_mount) || (e_config->device_auto_open != cfdata->dbus.auto_open); @@ -235,6 +247,18 @@ _basic_create(E_Config_Dialog *cfd __UNUSED__, e_widget_framelist_object_append(of, ob); e_widget_list_object_append(o, of, 1, 1, 0.5); + ob = e_widget_label_add(evas, _("Tooltip delay")); + e_widget_list_object_append(o, ob, 1, 1, 0.5); + ob = e_widget_slider_add(evas, 1, 0, _("%1.1f"), 0.0, 3.0, 0.5, 0, + &cfdata->tooltip.delay, NULL, 150); + e_widget_list_object_append(o, ob, 1, 1, 0.5); + + ob = e_widget_label_add(evas, _("Tooltip size (Screen percentage)")); + e_widget_list_object_append(o, ob, 1, 1, 0.5); + ob = e_widget_slider_add(evas, 1, 0, _("%2.0f"), 10.0, 75.0, 5.0, 0, + &cfdata->tooltip.size, NULL, 150); + e_widget_list_object_append(o, ob, 1, 1, 0.5); + ob = e_widget_label_add(evas, _("Icon Size")); e_widget_list_object_append(o, ob, 1, 1, 0.5); ob = e_widget_slider_add(evas, 1, 0, _("%1.0f"), 16.0, 256.0, 1.0, 0, diff --git a/src/modules/fileman/e_mod_main.c b/src/modules/fileman/e_mod_main.c index 4bf37e7e0..2eb46cb02 100644 --- a/src/modules/fileman/e_mod_main.c +++ b/src/modules/fileman/e_mod_main.c @@ -464,6 +464,8 @@ _e_mod_fileman_config_load(void) E_CONFIG_VAL(D, T, theme.frame, STR); E_CONFIG_VAL(D, T, theme.icons, STR); E_CONFIG_VAL(D, T, theme.fixed, UCHAR); + E_CONFIG_VAL(D, T, tooltip.delay, DOUBLE); + E_CONFIG_VAL(D, T, tooltip.size, DOUBLE); fileman_config = e_config_domain_load("module.fileman", conf_edd); if (fileman_config) @@ -523,11 +525,16 @@ _e_mod_fileman_config_load(void) fileman_config->selection.windows_modifiers = 0; IFMODCFGEND; - IFMODCFG(0x0103); + IFMODCFG(0x0101); fileman_config->view.show_toolbar = 1; fileman_config->view.open_dirs_in_place = 1; IFMODCFGEND; + IFMODCFG(0x0104); + fileman_config->tooltip.delay = 1.0; + fileman_config->tooltip.size = 50.0; + IFMODCFGEND; + fileman_config->config_version = MOD_CONFIG_FILE_VERSION; /* UCHAR's give nasty compile warnings about comparisons so not gonna limit those */ @@ -537,6 +544,9 @@ _e_mod_fileman_config_load(void) E_CONFIG_LIMIT(fileman_config->icon.list.w, 16, 256); E_CONFIG_LIMIT(fileman_config->icon.list.h, 16, 256); + E_CONFIG_LIMIT(fileman_config->tooltip.delay, 0.0, 5.0); + E_CONFIG_LIMIT(fileman_config->tooltip.size, 10.0, 75.0); + e_config_save_queue(); } diff --git a/src/modules/fileman/e_mod_main.h b/src/modules/fileman/e_mod_main.h index a36d43f97..ff4b53ae4 100644 --- a/src/modules/fileman/e_mod_main.h +++ b/src/modules/fileman/e_mod_main.h @@ -4,7 +4,7 @@ /* Increment for Major Changes */ #define MOD_CONFIG_FILE_EPOCH 0x0001 /* Increment for Minor Changes (ie: user doesn't need a new config) */ -#define MOD_CONFIG_FILE_GENERATION 0x0101 +#define MOD_CONFIG_FILE_GENERATION 0x0104 #define MOD_CONFIG_FILE_VERSION ((MOD_CONFIG_FILE_EPOCH << 16) | MOD_CONFIG_FILE_GENERATION) typedef struct _Config Config; @@ -38,6 +38,11 @@ struct _Config unsigned char show_desktop_icons; unsigned char show_toolbar; } view; + struct + { + double delay; + double size; + } tooltip; /* display of icons */ struct {