From: <enl...@li...> - 2004-01-08 05:03:55
|
Enlightenment CVS committal Author : atmosphere Project : e17 Module : apps/entice Dir : e17/apps/entice/src/bin Modified Files: entice.c entice.h ipc.c ipc.h main.c Log Message: updates so an instance of entice that's piping filenames to an existing instance of entice repositions the head of the list to the first image in the new instance's list. =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/entice/src/bin/entice.c,v retrieving revision 1.26 retrieving revision 1.27 diff -u -3 -r1.26 -r1.27 --- entice.c 1 Jan 2004 21:00:12 -0000 1.26 +++ entice.c 8 Jan 2004 05:03:54 -0000 1.27 @@ -140,6 +140,7 @@ CONTAINER_FILL_POLICY_FILL_X | CONTAINER_FILL_POLICY_KEEP_ASPECT); e_container_direction_set(e->container, 1); + fprintf(stderr, "TAller than high\n"); } edje_object_part_swallow(e->edje, "EnticeThumbnailArea", e->container); @@ -178,6 +179,22 @@ } } +int +entice_current_image_set(const char *file) +{ + if(entice && file) + { + Evas_Object *o = NULL; + if((o = (Evas_Object*)evas_hash_find(entice->thumb.hash, file))) + { + entice_thumb_load_ethumb(edje_object_part_swallow_get(o, + "EnticeThumb")); + return(1); + } + } + return(0); +} + /** * _entice_thumb_load - callback for loading an entice thumb * @_data - The E_Thumb object we're loading from, a param to the cb @@ -199,7 +216,7 @@ Evas_Coord w, h; int should_fit = 0; char buf[PATH_MAX]; - + if ((entice->current) && entice_image_file_get(entice->current) && !strcmp(e_thumb_file_get(o), entice_image_file_get(entice->current))) @@ -295,22 +312,43 @@ { if ((o = e_thumb_new(ecore_evas_get(entice->ee), buf))) { - entice->thumb.list = evas_list_append(entice->thumb.list, o); - evas_object_resize(o, 48, 48); edje = edje_object_add(ecore_evas_get(entice->ee)); - edje_object_file_set(edje, entice_config_theme_get(), - "EnticeThumb"); - hookup_entice_thumb_signals(edje, o); - edje_object_part_swallow(edje, "EnticeThumb", o); - evas_object_show(edje); - evas_object_show(o); - - entice->thumb.hash = evas_hash_add(entice->thumb.hash, buf, edje); - - e_container_element_append(entice->container, edje); - if (evas_list_count(entice->thumb.list) == 1) - _entice_thumb_load(o, NULL, NULL, NULL); + if(edje_object_file_set(edje, entice_config_theme_get(), + "EnticeThumb")) + { + if(edje_object_part_exists(edje, "EnticeThumb")) + { + entice->thumb.list = + evas_list_append(entice->thumb.list, o); + evas_object_resize(o, 48, 48); + hookup_entice_thumb_signals(edje, o); + edje_object_part_swallow(edje, "EnticeThumb", o); + evas_object_show(edje); + evas_object_show(o); + + entice->thumb.hash = + evas_hash_add(entice->thumb.hash, buf, edje); + + e_container_element_append(entice->container, edje); + if (evas_list_count(entice->thumb.list) == 1) + _entice_thumb_load(o, NULL, NULL, NULL); + } + else + { + fprintf(stderr, "Broken Theme!!! You didn't define an" + "EnticeThumb part\n"); + result = 1; + } + } + else + { + fprintf(stderr, "Broken Theme!!! You didn't define an" + "EnticeThumb group\n"); + evas_object_del(edje); + evas_object_del(o); + result = 1; + } } else result = 1; @@ -358,7 +396,7 @@ continue; snprintf(buf, PATH_MAX, "%s/%s", file, dent->d_name); if (!entice_file_is_dir(buf)) - entice_file_add_job_cb(buf); + entice_file_add_job_cb(buf, IPC_FILE_APPEND); } closedir(d); } @@ -370,9 +408,10 @@ * entice_file_add_job_cb - generate the cached thumb and send an ipc * message telling entice to load it * @data - the full or relative path to the file we want to cache + * @add_type - whether to display or show the image */ void -entice_file_add_job_cb(void *data) +entice_file_add_job_cb(void *data, int add_type) { Epsilon *e = NULL; char buf[PATH_MAX], *file = NULL; @@ -411,7 +450,7 @@ } } epsilon_free(e); - entice_ipc_client_request_image_load(buf); + entice_ipc_client_request_image_load(buf, add_type); } } } =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/entice/src/bin/entice.h,v retrieving revision 1.12 retrieving revision 1.13 diff -u -3 -r1.12 -r1.13 --- entice.h 5 Nov 2003 07:33:56 -0000 1.12 +++ entice.h 8 Jan 2004 05:03:54 -0000 1.13 @@ -18,8 +18,8 @@ { struct { - Evas_Hash *hash; /* filename -> E_Thumb Mapping */ - Evas_List *list; /* List of E_Thumbs */ + Evas_Hash *hash; /* filename -> EnticeThumb(edje) Mapping */ + Evas_List *list; /* List of E_Thumb */ Evas_List *current; /* Current Image's list item */ } thumb; @@ -40,7 +40,7 @@ int entice_file_del(const char *file); int entice_file_del_from_fs(const char *file); int entice_current_image_set(const char *file); -void entice_file_add_job_cb(void *data); +void entice_file_add_job_cb(void *data, int add_type); void entice_thumbs_scroll_next_start(void); void entice_thumbs_scroll_prev_start(void); =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/entice/src/bin/ipc.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -3 -r1.5 -r1.6 --- ipc.c 1 Jan 2004 21:00:12 -0000 1.5 +++ ipc.c 8 Jan 2004 05:03:54 -0000 1.6 @@ -1,4 +1,5 @@ #include "entice.h" +#include "ipc.h" #include <Ecore_Ipc.h> #include <limits.h> #include <stdlib.h> @@ -103,7 +104,19 @@ char buf[e->size]; snprintf(buf, e->size, "%s", (char *) e->data); - entice_file_add(buf); + switch(e->major) + { + case IPC_FILE_APPEND: + entice_file_add(buf); + break; + case IPC_FILE_DISPLAY: + entice_current_image_set(buf); + break; + default: + fprintf(stderr, "Unknown major code sent by client(%d)\n", + e->major); + break; + } /* printf("!! Client sent: [%i] [%i] (%i) \"%s\"\n", e->major, e->minor, e->size, buf); @@ -138,7 +151,11 @@ { ecore_ipc_server_del(server); for (i = 1; i < argc; i++) - entice_file_add_job_cb((void *) argv[i]); + { + entice_file_add_job_cb((void*)argv[i], IPC_FILE_APPEND); + } + if(argc > 0) + entice_file_add_job_cb((void*)argv[1], IPC_FILE_DISPLAY); return (1); } /* Otherwise we create it */ @@ -183,7 +200,7 @@ * @file - the absolute path to file */ void -entice_ipc_client_request_image_load(const char *file) +entice_ipc_client_request_image_load(const char *file, int major) { Ecore_Ipc_Server *server = NULL; @@ -203,9 +220,9 @@ NULL); ecore_event_handler_add(ECORE_IPC_EVENT_SERVER_DATA, ipc_server_data, NULL); - + snprintf(buf, PATH_MAX, "%s", file); - ecore_ipc_server_send(server, 5, 6, 0, 0, 0, buf, strlen(buf) + 1); + ecore_ipc_server_send(server, major, 6, 0, 0, 0, buf, strlen(buf) + 1); memset(buf, 0, sizeof(buf)); ecore_ipc_server_del(server); } @@ -215,5 +232,4 @@ fprintf(stderr, "ERROR: Unable to connect to entice IPC Server\n"); } #endif - } =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/entice/src/bin/ipc.h,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- ipc.h 11 Oct 2003 22:54:12 -0000 1.1 +++ ipc.h 8 Jan 2004 05:03:54 -0000 1.2 @@ -1,6 +1,9 @@ #ifndef ENTICE_IPC_H #define ENTICE_IPC_H +#define IPC_FILE_APPEND 1 +#define IPC_FILE_DISPLAY 2 + /** * entice_ipc_init - entialize entice's ipc handlers * @argc - the number or arguments @@ -9,6 +12,6 @@ */ int entice_ipc_init(int argc, const char **argv); void entice_ipc_shutdown(void); -void entice_ipc_client_request_image_load(const char *file); +void entice_ipc_client_request_image_load(const char *file, int major); #endif =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/entice/src/bin/main.c,v retrieving revision 1.17 retrieving revision 1.18 diff -u -3 -r1.17 -r1.18 --- main.c 1 Jan 2004 21:00:12 -0000 1.17 +++ main.c 8 Jan 2004 05:03:54 -0000 1.18 @@ -195,7 +195,7 @@ { case 0: for (i = 1; i < argc; i++) - entice_file_add_job_cb((void *) argv[i]); + entice_file_add_job_cb((void *) argv[i], IPC_FILE_APPEND); exit(0); break; default: |