Enlightenment CVS committal Author : moom Project : e17 Module : proto
Dir : e17/proto/etk/src/lib Modified Files: etk_combobox.c etk_image.c etk_image.h Log Message: * [Etk_Image] *API BREAK* etk_image_new_from_file() and etk_image_set_from_file() now takes a "key" parameter that allows you to load images from Eet files. You can just set it to NULL if you don't need it. =================================================================== RCS file: /cvs/e/e17/proto/etk/src/lib/etk_combobox.c,v retrieving revision 1.33 retrieving revision 1.34 diff -u -3 -r1.33 -r1.34 --- etk_combobox.c 10 Dec 2006 13:12:23 -0000 1.33 +++ etk_combobox.c 29 Dec 2006 22:10:13 -0000 1.34 @@ -294,7 +294,7 @@ if (item) etk_image_copy(ETK_IMAGE(combobox->active_item_children[j]), ETK_IMAGE(item->widgets[i])); else - etk_image_set_from_file(ETK_IMAGE(combobox->active_item_children[j]), NULL); + etk_image_set_from_file(ETK_IMAGE(combobox->active_item_children[j]), NULL, NULL); break; default: break; =================================================================== RCS file: /cvs/e/e17/proto/etk/src/lib/etk_image.c,v retrieving revision 1.27 retrieving revision 1.28 diff -u -3 -r1.27 -r1.28 --- etk_image.c 29 Dec 2006 21:50:46 -0000 1.27 +++ etk_image.c 29 Dec 2006 22:10:13 -0000 1.28 @@ -92,14 +92,15 @@ /** * @brief Creates a new image and loads the image from an image file * @param filename the path of the file to load + * @param key the key to load (only used if the file is an Eet file, otherwise you can set it to NULL) * @return Returns the new image widget */ -Etk_Widget *etk_image_new_from_file(const char *filename) +Etk_Widget *etk_image_new_from_file(const char *filename, const char *key) { Etk_Widget *image; image = etk_image_new(); - etk_image_set_from_file(ETK_IMAGE(image), filename); + etk_image_set_from_file(ETK_IMAGE(image), filename, key); return image; } @@ -169,8 +170,9 @@ * @brief Loads the image from a file * @param image an image * @param filename the path to the file to load + * @param key the key to load (only used if the file is an Eet file, otherwise you can set it to NULL) */ -void etk_image_set_from_file(Etk_Image *image, const char *filename) +void etk_image_set_from_file(Etk_Image *image, const char *filename, const char *key) { if (!image) return; @@ -182,6 +184,12 @@ image->info.file.filename = filename ? strdup(filename) : NULL; etk_object_notify(ETK_OBJECT(image), "file"); } + if (image->info.file.key != key) + { + free(image->info.file.key); + image->info.file.key = key ? strdup(key) : NULL; + etk_object_notify(ETK_OBJECT(image), "key"); + } _etk_image_load(image); } @@ -189,13 +197,25 @@ /** * @brief Gets the path to the file used by the image * @param image an image - * @return Returns the path to the file used by the image (NULL on failure) + * @param filename the location where to store the path to the loaded file + * @param key the location where to store the key of the loaded image (NULL if the file is not loaded from an Eet file) */ -const char *etk_image_file_get(Etk_Image *image) +void etk_image_file_get(Etk_Image *image, char **filename, char **key) { if (!image || image->source != ETK_IMAGE_FILE) - return NULL; - return image->info.file.filename; + { + if (filename) + *filename = NULL; + if (key) + *key = NULL; + } + else + { + if (filename) + *filename = image->info.file.filename; + if (key) + *key = image->info.file.key; + } } /** @@ -458,8 +478,7 @@ switch (src_image->source) { case ETK_IMAGE_FILE: - /* TODO: copy the key too.. */ - etk_image_set_from_file(dest_image, src_image->info.file.filename); + etk_image_set_from_file(dest_image, src_image->info.file.filename, src_image->info.file.key); break; case ETK_IMAGE_EDJE: etk_image_set_from_edje(dest_image, src_image->info.edje.filename, src_image->info.edje.group); @@ -637,17 +656,11 @@ if (image->source == ETK_IMAGE_EDJE) etk_image_set_from_edje(image, etk_property_value_string_get(value), image->info.edje.group); else - { - /* TODO: set the key! */ - etk_image_set_from_file(image, etk_property_value_string_get(value)); - } + etk_image_set_from_file(image, etk_property_value_string_get(value), image->info.file.key); break; case ETK_IMAGE_KEY_PROPERTY: if (image->source == ETK_IMAGE_FILE) - { - /* TODO: set the key! */ - //etk_image_set_from_file(image, image->info.file.filename, etk_property_value_string_get(value)); - } + etk_image_set_from_file(image, image->info.file.filename, etk_property_value_string_get(value)); else if (image->source == ETK_IMAGE_EDJE) etk_image_set_from_edje(image, image->info.edje.filename, etk_property_value_string_get(value)); break; @@ -902,7 +915,7 @@ if (!image_file || !image->info.file.filename || strcmp(image_file, image->info.file.filename) != 0) { evas_object_image_file_set(image->object, image->info.file.filename, image->info.file.key); - if ((error_code = evas_object_image_load_error_get(image->object))) + if (image->info.file.filename && (error_code = evas_object_image_load_error_get(image->object))) ETK_WARNING("Unable to load image from file \"%s\", error %d", image->info.file.filename, error_code); } break; @@ -925,7 +938,7 @@ } edje_object_file_set(image->object, file, key); - if ((error_code = edje_object_load_error_get(image->object))) + if (file && (error_code = edje_object_load_error_get(image->object))) ETK_WARNING("Unable to load image from edje-file \"%s\"/\"%s\", error %d", file, key, error_code); break; } =================================================================== RCS file: /cvs/e/e17/proto/etk/src/lib/etk_image.h,v retrieving revision 1.12 retrieving revision 1.13 diff -u -3 -r1.12 -r1.13 --- etk_image.h 29 Dec 2006 21:50:46 -0000 1.12 +++ etk_image.h 29 Dec 2006 22:10:13 -0000 1.13 @@ -77,14 +77,14 @@ Etk_Type *etk_image_type_get(void); Etk_Widget *etk_image_new(void); -Etk_Widget *etk_image_new_from_file(const char *filename); +Etk_Widget *etk_image_new_from_file(const char *filename, const char *key); Etk_Widget *etk_image_new_from_edje(const char *filename, const char *group); Etk_Widget *etk_image_new_from_stock(Etk_Stock_Id stock_id, Etk_Stock_Size stock_size); Etk_Widget *etk_image_new_from_evas_object(Evas_Object *evas_object); Etk_Widget *etk_image_new_from_data(int width, int height, void *data, Etk_Bool copy); -void etk_image_set_from_file(Etk_Image *image, const char *filename); -const char *etk_image_file_get(Etk_Image *image); +void etk_image_set_from_file(Etk_Image *image, const char *filename, const char *key); +void etk_image_file_get(Etk_Image *image, char **filename, char **key); void etk_image_set_from_edje(Etk_Image *image, const char *filename, const char *group); void etk_image_edje_get(Etk_Image *image, char **filename, char **group); void etk_image_set_from_stock(Etk_Image *image, Etk_Stock_Id stock_id, Etk_Stock_Size stock_size); ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys - and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs