From 4e697fefca49fe8063fa896bfd30057dcb8a02fb Mon Sep 17 00:00:00 2001 From: Carsten Haitzler Date: Mon, 17 Jul 2006 19:51:37 +0000 Subject: [PATCH] 'mo fm work! :) SVN revision: 23999 --- data/themes/default_fileman.edc | 219 ++++++++++++++++++++++++++++++++ src/bin/e_fm.c | 21 +-- src/bin/e_icon.c | 2 + 3 files changed, 234 insertions(+), 8 deletions(-) diff --git a/data/themes/default_fileman.edc b/data/themes/default_fileman.edc index ddcc312e3..f1c1fe727 100644 --- a/data/themes/default_fileman.edc +++ b/data/themes/default_fileman.edc @@ -1871,6 +1871,225 @@ group { } } +group { + name: "fileman/icon/fixed"; + parts { + part { + name: "icon_overlay"; + mouse_events: 0; + description { + state: "default" 0.0; + rel1 { + relative: 0.0 0.0; + offset: 0 0; + } + rel2 { + relative: 1.0 1.0; + offset: -1 -1; + } + image { + normal: "e17_button.png"; + border: 8 8 8 8; + } + color: 255 255 255 0; + } + description { + state: "active" 0.0; + inherit: "default" 0.0; + color: 255 255 255 255; + } + } + part { + name: "icon_swallow"; + type: SWALLOW; + mouse_events: 0; + description { + state: "default" 0.0; + aspect: 1.0 1.0; + rel1 { + relative: 0.0 0.0; + offset: 4 4; + } + rel2 { + to_y: "label"; + relative: 1.0 0.0; + offset: -5 -2; + } + } + } + part { + name: "label"; + type: TEXT; + effect: SHADOW; + mouse_events: 0; + description { + state: "default" 0.0; + align: 0.5 1.0; + fixed: 0 1; + rel1 { + relative: 0.0 1.0; + offset: 4 -5; + } + rel2 { + relative: 1.0 1.0; + offset: -5 -5; + } + color: 0 0 0 255; + color3: 255 255 255 128; + text { + text: "No Title"; + size: 10; + font: "Edje-Vera"; + min: 0 1; + align: 0.5 1.0; + elipsis: 0.0; + text_class: "fileman_icon"; + } + } + } + part { + name: "icon_event"; + type: RECT; + mouse_events: 1; + description { + state: "default" 0.0; + color: 0 0 0 0; + } + } + } + programs { + program { + name: "active"; + signal: "active"; + source: ""; + action: STATE_SET "active" 0.0; + target: "label"; + target: "icon_overlay"; + } + program { + name: "passive"; + signal: "passive"; + source: ""; + action: STATE_SET "default" 0.0; + transition: LINEAR 0.2; + target: "label"; + target: "icon_overlay"; + } + } +} + +group { + name: "fileman/icon/variable"; + parts { + part { + name: "icon_overlay"; + mouse_events: 0; + description { + state: "default" 0.0; + rel1 { + relative: 0.0 0.0; + offset: 0 0; + } + rel2 { + relative: 1.0 1.0; + offset: -1 -1; + } + image { + normal: "e17_button.png"; + border: 8 8 8 8; + } + color: 255 255 255 0; + } + description { + state: "active" 0.0; + inherit: "default" 0.0; + color: 255 255 255 255; + } + } + part { + name: "icon_swallow"; + type: SWALLOW; + mouse_events: 0; + description { + state: "default" 0.0; + aspect: 1.0 1.0; + rel1 { + relative: 0.0 0.0; + offset: 4 4; + } + rel2 { + to_y: "label"; + relative: 1.0 0.0; + offset: -5 -2; + } + } + } + part { + name: "label"; + type: TEXT; + effect: SHADOW; + mouse_events: 0; + description { + state: "default" 0.0; + align: 0.5 1.0; + fixed: 0 1; + rel1 { + relative: 0.0 1.0; + offset: 4 -5; + } + rel2 { + relative: 1.0 1.0; + offset: -5 -5; + } + color: 0 0 0 255; + color3: 255 255 255 128; + text { + text: "No Title"; + size: 10; + font: "Edje-Vera"; + min: 1 1; + align: 0.5 1.0; + elipsis: 0.0; + text_class: "fileman_icon"; + } + } + } + part { + name: "icon_event"; + type: RECT; + mouse_events: 1; + description { + state: "default" 0.0; + color: 0 0 0 0; + } + } + } + programs { + program { + name: "active"; + signal: "active"; + source: ""; + action: STATE_SET "active" 0.0; + target: "label"; + target: "icon_overlay"; + } + program { + name: "passive"; + signal: "passive"; + source: ""; + action: STATE_SET "default" 0.0; + transition: LINEAR 0.2; + target: "label"; + target: "icon_overlay"; + } + } +} + + + + + + #define FULL_SIZE_FILEMAN_BUTTON(TYPE) \ group { \ name: "fileman/button/"TYPE; \ diff --git a/src/bin/e_fm.c b/src/bin/e_fm.c index d7b285c85..d2233dcdb 100644 --- a/src/bin/e_fm.c +++ b/src/bin/e_fm.c @@ -185,13 +185,13 @@ e_fm2_path_set(Evas_Object *obj, char *dev, char *path) if (sd->config) _e_fm2_config_free(sd->config); sd->config = E_NEW(E_Fm2_Config, 1); if (!sd->config) return; -// sd->config->view.mode = E_FM2_VIEW_MODE_ICONS; - sd->config->view.mode = E_FM2_VIEW_MODE_LIST; + sd->config->view.mode = E_FM2_VIEW_MODE_ICONS; +// sd->config->view.mode = E_FM2_VIEW_MODE_LIST; sd->config->icon.icon.w = 64; sd->config->icon.icon.h = 64; sd->config->icon.list.w = 24; sd->config->icon.list.h = 24; - sd->config->icon.fixed.w = 1; + sd->config->icon.fixed.w = 0; sd->config->icon.fixed.h = 1; sd->config->list.sort.no_case = 1; sd->config->icon.extension.show = 0; @@ -881,10 +881,12 @@ _e_fm2_icon_new(E_Fm2_Smart_Data *sd, char *file) obj = edje_object_add(evas_object_evas_get(sd->obj)); e_theme_edje_object_set(obj, "base/theme/fileman", "fileman/icon/variable"); - edje_object_part_text_set(obj, "label", ic->file); + _e_fm2_icon_label_set(ic, obj); edje_object_size_min_calc(obj, &mw, &mh); evas_object_del(obj); } + ic->w = mw; + ic->h = mh; if (sd->config->icon.fixed.w) ic->w = sd->config->icon.icon.w; if (sd->config->icon.fixed.h) ic->h = sd->config->icon.icon.h; ic->min_w = mw; @@ -961,14 +963,17 @@ _e_fm2_icon_realize(E_Fm2_Icon *ic) e_theme_edje_object_set(ic->obj, "base/theme/widgets", "fileman/list/variable"); } - _e_fm2_icon_label_set(ic, ic->obj); } else { - e_theme_edje_object_set(ic->obj, "base/theme/fileman", - "fileman/icon_normal"); - edje_object_part_text_set(ic->obj, "icon_title", ic->file); + if (ic->sd->config->icon.fixed.w) + e_theme_edje_object_set(ic->obj, "base/theme/fileman", + "fileman/icon/fixed"); + else + e_theme_edje_object_set(ic->obj, "base/theme/fileman", + "fileman/icon/variable"); } + _e_fm2_icon_label_set(ic, ic->obj); evas_object_clip_set(ic->obj, ic->sd->clip); evas_object_move(ic->obj, ic->sd->x + ic->x - ic->sd->pos.x, diff --git a/src/bin/e_icon.c b/src/bin/e_icon.c index b64dcc45a..8b213dae9 100644 --- a/src/bin/e_icon.c +++ b/src/bin/e_icon.c @@ -318,6 +318,7 @@ _e_icon_smart_move(Evas_Object *obj, Evas_Coord x, Evas_Coord y) sd = evas_object_smart_data_get(obj); if (!sd) return; + if ((sd->x == x) && (sd->y == y)) return; sd->x = x; sd->y = y; _e_icon_smart_reconfigure(sd); @@ -330,6 +331,7 @@ _e_icon_smart_resize(Evas_Object *obj, Evas_Coord w, Evas_Coord h) sd = evas_object_smart_data_get(obj); if (!sd) return; + if ((sd->w == w) && (sd->h == h)) return; sd->w = w; sd->h = h; _e_icon_smart_reconfigure(sd);