From 8714162645d4b8047db6ac170d070802059221fa Mon Sep 17 00:00:00 2001 From: jlzapata Date: Fri, 17 Feb 2006 13:36:31 +0000 Subject: [PATCH] efm: - thumbnails are back in, still a few mime types to be added. SVN revision: 20544 --- src/bin/e_fileman_icon.c | 6 ++---- src/bin/e_fileman_mime.c | 28 ++++++++++++++++++++++++++-- src/bin/e_fileman_mime.h | 5 ++--- 3 files changed, 30 insertions(+), 9 deletions(-) diff --git a/src/bin/e_fileman_icon.c b/src/bin/e_fileman_icon.c index 354dd2910..0f64a2a31 100644 --- a/src/bin/e_fileman_icon.c +++ b/src/bin/e_fileman_icon.c @@ -143,8 +143,7 @@ e_fm_icon_file_set(Evas_Object *obj, E_Fm_File *file) file->icon_object = obj; /* FIXME fix this */ -#if 0 - if (e_fm_file_can_preview(sd->file)) + if (sd->file->mime->thumbnail) { sd->thumb_path = e_thumb_file_get(sd->file->path); if (e_thumb_exists(sd->file->path)) @@ -174,7 +173,7 @@ e_fm_icon_file_set(Evas_Object *obj, E_Fm_File *file) } else { - sd->thumb_object = e_thumb_generate_begin(sd->file->path, sd->iw, + sd->thumb_object = sd->file->mime->thumbnail(sd->file->path, sd->iw, sd->ih, sd->evas, &sd->thumb_object, _e_fm_icon_thumb_generate_cb, @@ -184,7 +183,6 @@ e_fm_icon_file_set(Evas_Object *obj, E_Fm_File *file) } } else -#endif { _e_fm_icon_icon_mime_get(sd); } diff --git a/src/bin/e_fileman_mime.c b/src/bin/e_fileman_mime.c index 1f02ea790..cbdcaa458 100644 --- a/src/bin/e_fileman_mime.c +++ b/src/bin/e_fileman_mime.c @@ -66,7 +66,14 @@ * %h => hover file (might be the current directory, other file, whatever) * * - * + * FUTURE + * ====== + * a new approach can be made, but is too expensive for what e17 currently needs. + * the mime subsystem can be in fact independent from e_fileman_smart (the function calls + * are very simple to change, just pass always an Evas_List of files, and the E_Fm_File hover, + * instead of the E_Fileman_Smart). What is complicated is how to pass the data to the internal + * actions, and if we should define the internal actions here or in the component that will + * use the mime subsytem. * */ @@ -82,6 +89,8 @@ static void _e_fm_mime_action_internal_folder_open(E_Fm_Smart_Data static void _e_fm_mime_action_internal_folder_open_other(E_Fm_Smart_Data *data); static void _e_fm_mime_action_internal_copy_to(E_Fm_Smart_Data *data); static void _e_fm_mime_action_internal_move_to(E_Fm_Smart_Data *data); +/* definitions of thumbnail functions */ +Evas_Object * _e_fm_mime_thumbnail_evas(char *path, Evas_Coord w, Evas_Coord h, Evas *evas, Evas_Object **tmp, void (*cb)(Evas_Object *obj, void *data), void *data); static int init_count = 0; @@ -198,6 +207,7 @@ e_fm_mime_init(void) entry->parent = l2; entry->level = 3; entry->suffix = strdup("jpg"); + entry->thumbnail = &_e_fm_mime_thumbnail_evas; entries = evas_list_append(entries,entry); /* png */ @@ -207,6 +217,7 @@ e_fm_mime_init(void) entry->parent = l2; entry->level = 3; entry->suffix = strdup("png"); + entry->thumbnail = &_e_fm_mime_thumbnail_evas; entries = evas_list_append(entries,entry); } @@ -322,7 +333,7 @@ e_fm_mime_set(E_Fm_File *file) continue; if(!strcmp(suffix,entry->suffix)) { - printf("found by suffix %s\n", suffix); + //printf("found by suffix %s\n", suffix); file->mime = entry; } free(suffix); @@ -625,3 +636,16 @@ _e_fm_mime_action_internal_move_to(E_Fm_Smart_Data *sd) printf("going to move to %s\n", sd->operation.hover->path); } +/* thumbnail functions */ +/***********************/ +Evas_Object * _e_fm_mime_thumbnail_evas(char *path, Evas_Coord w, Evas_Coord h, Evas *evas, Evas_Object **tmp, void (*cb)(Evas_Object *obj, void *data), void *data) +{ + Evas_Object *r; + + r = e_thumb_generate_begin(path, w, + h, evas, tmp, cb, + data); + + return r; +} + diff --git a/src/bin/e_fileman_mime.h b/src/bin/e_fileman_mime.h index f525a9d33..cbf9de47e 100644 --- a/src/bin/e_fileman_mime.h +++ b/src/bin/e_fileman_mime.h @@ -6,7 +6,6 @@ typedef struct _E_Fm_Mime_Entry E_Fm_Mime_Entry; typedef struct _E_Fm_Mime_Action E_Fm_Mime_Action; -typedef int (*E_Fm_Mime_Thumbnail_Function) (E_Fm_File*); typedef int (*E_Fm_Mime_Preview_Function) (E_Fm_File*); #if 0 @@ -36,9 +35,9 @@ struct _E_Fm_Mime_Entry char *suffix; int type; /* to thumbnail this file type */ - E_Fm_Mime_Thumbnail_Function preview; + Evas_Object * (*thumbnail) (char *path, Evas_Coord w, Evas_Coord h, Evas *evas, Evas_Object **tmp, void (*cb)(Evas_Object *obj, void *data), void *data); /* to preview this file type */ - E_Fm_Mime_Preview_Function thumbnail; + E_Fm_Mime_Preview_Function preview; };