Enlightenment CVS committal Author : raster Project : e17 Module : apps/e
Dir : e17/apps/e/src/bin Modified Files: e_fileman_icon.c e_fileman_smart.c e_thumb.c Log Message: kind of bring fileman icons into some semblance of working =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_fileman_icon.c,v retrieving revision 1.16 retrieving revision 1.17 diff -u -3 -r1.16 -r1.17 --- e_fileman_icon.c 4 Nov 2005 14:58:03 -0000 1.16 +++ e_fileman_icon.c 4 Nov 2005 17:02:42 -0000 1.17 @@ -19,7 +19,6 @@ Evas_Object *icon_object; Evas_Object *image_object; Evas_Object *entry_object; - Evas_Object *title_object; Evas_Object *thumb_object; E_Fm_File *file; @@ -34,6 +33,8 @@ static void _e_fm_icon_smart_del (Evas_Object *obj); static void _e_fm_icon_smart_move (Evas_Object *obj, Evas_Coord x, Evas_Coord y); static void _e_fm_icon_smart_resize (Evas_Object *obj, Evas_Coord w, Evas_Coord h); +static void _e_fm_icon_smart_show (Evas_Object *obj); +static void _e_fm_icon_smart_hide (Evas_Object *obj); static void _e_fm_icon_smart_clip_set (Evas_Object *obj, Evas_Object *clip); static void _e_fm_icon_smart_clip_unset (Evas_Object *obj); @@ -91,8 +92,8 @@ NULL, NULL, NULL, NULL, NULL, _e_fm_icon_smart_move, _e_fm_icon_smart_resize, - NULL, - NULL, + _e_fm_icon_smart_show, + _e_fm_icon_smart_hide, NULL, _e_fm_icon_smart_clip_set, _e_fm_icon_smart_clip_unset, @@ -138,12 +139,23 @@ sd->iw, sd->ih, 1); - evas_object_smart_member_add(sd->thumb_object, sd->obj); +// evas_object_geometry_get(sd->thumb_object, NULL, NULL, &icon_w, &icon_h); +// sd->iw = icon_w; +// sd->ih = icon_h; sd->image_object = edje_object_add(sd->evas); e_theme_edje_object_set(sd->image_object, "base/theme/fileman", "fileman/icon_thumb"); + edje_extern_object_min_size_set(sd->thumb_object, sd->iw, sd->ih); + edje_extern_object_max_size_set(sd->thumb_object, sd->iw, sd->ih); edje_object_part_swallow(sd->image_object, "icon_swallow", sd->thumb_object); + edje_object_size_min_calc(sd->image_object, &icon_w, &icon_h); + sd->iw = icon_w; + sd->ih = icon_h; + edje_extern_object_min_size_set(sd->image_object, icon_w, icon_h); + edje_extern_object_max_size_set(sd->image_object, icon_w, icon_h); + edje_object_part_swallow(sd->icon_object, "icon_swallow", + sd->image_object); } else { @@ -156,11 +168,10 @@ { _e_fm_icon_icon_mime_get(sd); } - _e_fm_icon_type_set(sd); - evas_object_resize(sd->icon_object, 64, 64); - evas_object_resize(sd->event_object, 64, 64); - evas_object_resize(sd->obj, 64, 64); + edje_object_size_min_calc(sd->icon_object, &icon_w, &icon_h); + evas_object_resize(sd->obj, 0, 0); // because it still thinks its the same size + evas_object_resize(sd->obj, 64, icon_h); } void @@ -242,28 +253,6 @@ return 0; } -void -e_fm_icon_image_resize(Evas_Object *obj, Evas_Coord w, Evas_Coord h) -{ - E_Smart_Data *sd; - - sd = evas_object_smart_data_get(obj); - if (!sd) return; - sd->iw = w; - sd->ih = h; - evas_object_resize(sd->image_object, w, h); -} - -void -e_fm_icon_size_min_calc(Evas_Object *obj, Evas_Coord *w, Evas_Coord *h) -{ - E_Smart_Data *sd; - - sd = evas_object_smart_data_get(obj); - if (!sd) return; - edje_object_size_min_calc(sd->icon_object, w, h); -} - /* local subsystem functions */ static void _e_fm_icon_smart_add(Evas_Object *obj) @@ -281,24 +270,19 @@ sd->h = 64; sd->iw = 48; sd->ih = 48; + + sd->icon_object = edje_object_add(sd->evas); + evas_object_smart_member_add(sd->icon_object, obj); + sd->event_object = evas_object_rectangle_add(sd->evas); evas_object_color_set(sd->event_object, 0, 0, 0, 0); evas_object_smart_member_add(sd->event_object, obj); - evas_object_show(sd->event_object); evas_object_smart_data_set(obj, sd); - sd->title_object = evas_object_textblock_add(sd->evas); - evas_object_smart_member_add(sd->title_object, obj); - sd->visible = 1; - sd->icon_object = edje_object_add(sd->evas); - evas_object_smart_member_add(sd->icon_object, obj); - evas_object_show(sd->icon_object); - evas_object_show(sd->event_object); } - static void _e_fm_icon_smart_del(Evas_Object *obj) { @@ -306,32 +290,10 @@ sd = evas_object_smart_data_get(obj); if (!sd) return; - if (sd->entry_object) edje_object_part_unswallow(sd->icon_object, sd->entry_object); - if (sd->event_object) - { - evas_object_smart_member_del(sd->event_object); - evas_object_del(sd->event_object); - } - if (sd->icon_object) - { - evas_object_smart_member_del(sd->icon_object); - evas_object_del(sd->icon_object); - } - if (sd->image_object) - { - evas_object_smart_member_del(sd->image_object); - evas_object_del(sd->image_object); - } - if (sd->title_object) - { - evas_object_smart_member_del(sd->title_object); - evas_object_del(sd->title_object); - } - if (sd->thumb_object) - { - evas_object_smart_member_del(sd->thumb_object); - evas_object_del(sd->thumb_object); - } + if (sd->event_object) evas_object_del(sd->event_object); + if (sd->icon_object) evas_object_del(sd->icon_object); + if (sd->image_object) evas_object_del(sd->image_object); + if (sd->thumb_object) evas_object_del(sd->thumb_object); E_FREE(sd->saved_title); if (sd->file) e_object_unref(E_OBJECT(sd->file)); free(sd); @@ -344,14 +306,11 @@ sd = evas_object_smart_data_get(obj); if (!sd) return; - - if(sd->x == x && sd->y == y) return; - - evas_object_move(sd->event_object, x, y); - if (sd->icon_object) evas_object_move(sd->icon_object, x, y); - //if (sd->image_object) evas_object_move(sd->image_object, x, y); + if ((sd->x == x) && (sd->y == y)) return; sd->x = x; sd->y = y; + evas_object_move(sd->event_object, x, y); + evas_object_move(sd->icon_object, x, y); } static void @@ -361,27 +320,42 @@ sd = evas_object_smart_data_get(obj); if (!sd) return; - - if(sd->w == w && sd->h == h) return; - + if ((sd->w == w) && (sd->h == h)) return; sd->w = w; - if(sd->h < h) - sd->h = h; - + sd->h = h; evas_object_resize(sd->event_object, sd->w, sd->h); - if (sd->icon_object) evas_object_resize(sd->icon_object, sd->w, sd->h); - printf("resize to %d %d\n", sd->w, sd->h); - //if (sd->image_object) evas_object_resize(sd->image_object, w, h); + evas_object_resize(sd->icon_object, sd->w, sd->h); } static void -_e_fm_icon_smart_clip_set(Evas_Object *obj, Evas_Object *clip) +_e_fm_icon_smart_show(Evas_Object *obj) +{ + E_Smart_Data *sd; + + sd = evas_object_smart_data_get(obj); + if (!sd) return; + evas_object_show(sd->icon_object); + evas_object_show(sd->event_object); +} + +static void +_e_fm_icon_smart_hide(Evas_Object *obj) { E_Smart_Data *sd; sd = evas_object_smart_data_get(obj); if (!sd) return; + evas_object_hide(sd->icon_object); + evas_object_hide(sd->event_object); +} + +static void +_e_fm_icon_smart_clip_set(Evas_Object *obj, Evas_Object *clip) +{ + E_Smart_Data *sd; + sd = evas_object_smart_data_get(obj); + if (!sd) return; evas_object_clip_set(sd->event_object, clip); evas_object_clip_set(sd->icon_object, clip); } @@ -393,20 +367,19 @@ sd = evas_object_smart_data_get(obj); if (!sd) return; - evas_object_clip_unset(sd->event_object); + evas_object_clip_unset(sd->icon_object); } static void _e_fm_icon_icon_mime_get(E_Smart_Data *sd) { - sd->image_object = edje_object_add(sd->evas); + Evas_Coord icon_w, icon_h; + sd->image_object = edje_object_add(sd->evas); if (sd->file->type == E_FM_FILE_TYPE_DIRECTORY) - { - e_theme_edje_object_set(sd->image_object, "base/theme/fileman", - "icons/fileman/folder"); - } + e_theme_edje_object_set(sd->image_object, "base/theme/fileman", + "icons/fileman/folder"); else { char *ext; @@ -419,22 +392,21 @@ ext = strdup(ext); ext2 = ext; - for (; *ext2; ext2++) - *ext2 = tolower(*ext2); + for (; *ext2; ext2++) *ext2 = tolower(*ext2); snprintf(part, PATH_MAX, "icons/fileman/%s", (ext + 1)); - if (!e_theme_edje_object_set(sd->image_object, "base/theme/fileman", part)) e_theme_edje_object_set(sd->image_object, "base/theme/fileman", "icons/fileman/file"); - free(ext); } else e_theme_edje_object_set(sd->image_object, "base/theme/fileman", "icons/fileman/file"); } - evas_object_resize(sd->image_object, sd->iw, sd->ih); + evas_object_show(sd->image_object); edje_extern_object_min_size_set(sd->image_object, sd->iw, sd->ih); edje_extern_object_max_size_set(sd->image_object, sd->iw, sd->ih); + edje_object_part_swallow(sd->icon_object, "icon_swallow", + sd->image_object); } static void @@ -480,6 +452,8 @@ if ((ext) || (ecore_file_exists(sd->thumb_path))) { + Evas_Coord icon_w, icon_h; + if (sd->image_object) evas_object_del(sd->image_object); sd->thumb_object = e_thumb_evas_object_get(sd->file->path, @@ -487,19 +461,25 @@ sd->iw, sd->ih, 1); - evas_object_smart_member_add(sd->thumb_object, sd->obj); - +// evas_object_geometry_get(sd->thumb_object, NULL, NULL, &icon_w, &icon_h); +// sd->iw = icon_w; +// sd->ih = icon_h; sd->image_object = edje_object_add(sd->evas); e_theme_edje_object_set(sd->image_object, "base/theme/fileman", "fileman/icon_thumb"); + evas_object_show(sd->image_object); + evas_object_show(sd->thumb_object); + edje_extern_object_min_size_set(sd->thumb_object, sd->iw, sd->ih); + edje_extern_object_max_size_set(sd->thumb_object, sd->iw, sd->ih); edje_object_part_swallow(sd->image_object, "icon_swallow", sd->thumb_object); - edje_extern_object_min_size_set(sd->image_object, sd->iw, sd->ih); - edje_extern_object_max_size_set(sd->image_object, sd->iw, sd->ih); + edje_object_size_min_calc(sd->image_object, &icon_w, &icon_h); + sd->iw = icon_w; + sd->ih = icon_h; + edje_extern_object_min_size_set(sd->image_object, icon_w, icon_h); + edje_extern_object_max_size_set(sd->image_object, icon_w, icon_h); edje_object_part_swallow(sd->icon_object, "icon_swallow", sd->image_object); -// edje_object_part_swallow(sd->icon_object, "icon_title", -// sd->title_object); } pid = -1; @@ -510,7 +490,7 @@ static void _e_fm_icon_type_set(E_Smart_Data *sd) { - switch(sd->type) + switch (sd->type) { case E_FM_ICON_NORMAL: e_theme_edje_object_set(sd->icon_object, "base/theme/fileman", @@ -531,13 +511,13 @@ if (sd->image_object) { edje_extern_object_min_size_set(sd->image_object, sd->iw, sd->ih); - edje_extern_object_max_size_set(sd->image_object, sd->iw, sd->ih); - edje_object_part_swallow(sd->icon_object, "icon_swallow", sd->image_object); - evas_object_smart_member_add(sd->image_object, sd->obj); + edje_extern_object_max_size_set(sd->image_object, sd->iw, sd->ih); + edje_object_part_swallow(sd->icon_object, "icon_swallow", + sd->image_object); evas_object_show(sd->image_object); } - if(sd->saved_title) + if (sd->saved_title) { #if 0 Evas_Textblock_Style *e_editable_text_style; =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_fileman_smart.c,v retrieving revision 1.79 retrieving revision 1.80 diff -u -3 -r1.79 -r1.80 --- e_fileman_smart.c 4 Nov 2005 14:58:03 -0000 1.79 +++ e_fileman_smart.c 4 Nov 2005 17:02:42 -0000 1.80 @@ -615,6 +615,7 @@ sd->event_handlers = evas_list_remove_list(sd->event_handlers, sd->event_handlers); } + evas_event_freeze(evas_object_evas_get(object)); while (sd->files) { _e_fm_file_free(sd->files->data); @@ -628,6 +629,8 @@ if (sd->entry_object) evas_object_del(sd->entry_object); if (sd->menu) e_object_del(E_OBJECT(sd->menu)); + evas_event_thaw(evas_object_evas_get(object)); + free(sd->dir); free(sd); } =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_thumb.c,v retrieving revision 1.13 retrieving revision 1.14 diff -u -3 -r1.13 -r1.14 --- e_thumb.c 4 Nov 2005 03:33:23 -0000 1.13 +++ e_thumb.c 4 Nov 2005 17:02:42 -0000 1.14 @@ -357,9 +357,10 @@ im = e_icon_add(evas); e_icon_file_key_set(im, thumb, "/thumbnail/data"); - if (shrink) + if (shrink) { Evas_Coord sw, sh; + e_icon_size_get(im, &sw, &sh); evas_object_resize(im, sw, sh); } ------------------------------------------------------- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42" plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs