Enlightenment CVS committal
Author : horms
Project : e17
Module : apps/entice
Dir : e17/apps/entice/src/bin
Modified Files:
buttons.c entice.h event.c image.c image.h
Log Message:
handle thumbnails better after a flip or rotate
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/entice/src/bin/buttons.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -3 -r1.3 -r1.4
--- buttons.c 14 Feb 2003 09:55:29 -0000 1.3
+++ buttons.c 16 Mar 2003 06:08:51 -0000 1.4
@@ -115,11 +115,7 @@
bt_next_up(void *data, Evas * e, Evas_Object * obj, void *event_info)
{
evas_object_image_file_set(obj, IM "bt_next_1.png", NULL);
- if (!current_image)
- current_image = images;
- else if (current_image->next)
- current_image = current_image->next;
- e_display_current_image();
+ e_load_next_image();
}
void
@@ -132,11 +128,7 @@
bt_prev_up(void *data, Evas * e, Evas_Object * obj, void *event_info)
{
evas_object_image_file_set(obj, IM "bt_prev_1.png", NULL);
- if (!current_image)
- current_image = images;
- else if (current_image->prev)
- current_image = current_image->prev;
- e_display_current_image();
+ e_load_prev_image();
}
void
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/entice/src/bin/entice.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -3 -r1.2 -r1.3
--- entice.h 5 Feb 2003 05:45:45 -0000 1.2
+++ entice.h 16 Mar 2003 06:08:51 -0000 1.3
@@ -41,6 +41,7 @@
pid_t generator;
char *thumb;
Evas_Object *o_thumb;
+ int modified;
int subst;
};
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/entice/src/bin/event.c,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -3 -r1.8 -r1.9
--- event.c 16 Feb 2003 09:35:15 -0000 1.8
+++ event.c 16 Mar 2003 06:08:51 -0000 1.9
@@ -258,19 +258,11 @@
}
else if (!strcmp(e->key, "space"))
{
- if (!current_image)
- current_image = images;
- else if (current_image->next)
- current_image = current_image->next;
- e_display_current_image();
+ e_load_next_image();
}
else if (!strcmp(e->key, "BackSpace"))
{
- if (!current_image)
- current_image = images;
- else if (current_image->prev)
- current_image = current_image->prev;
- e_display_current_image();
+ e_load_prev_image();
}
else if (!strcmp(e->key, "Up"))
{
@@ -351,6 +343,7 @@
current_image = l;
first = 0;
}
+ im->modified = 0;
im->o_thumb = evas_object_rectangle_add(evas);
evas_object_image_file_set(evas, IM "thumb.png", NULL);
evas_object_event_callback_add(im->o_thumb,
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/entice/src/bin/image.c,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -3 -r1.9 -r1.10
--- image.c 16 Feb 2003 09:35:15 -0000 1.9
+++ image.c 16 Mar 2003 06:08:52 -0000 1.10
@@ -1,5 +1,7 @@
#include "entice.h"
+#define DEFAULT_FORMAT "png"
+
void
image_add_from_dnd(char *item)
{
@@ -278,6 +280,7 @@
/* Flip image */
e_flip_object(o_image, direction);
e_flip_object(o_mini_image, direction);
+ im->modified = 1;
e_flip_object(im->o_thumb, direction);
/* Update Display */
@@ -356,6 +359,7 @@
/* Rotate image */
e_rotate_object(o_image, rotation);
e_rotate_object(o_mini_image, rotation);
+ im->modified = 1;
e_rotate_object(im->o_thumb, rotation);
/* Update Display */
@@ -548,49 +552,109 @@
e_display_current_image();
}
-void
-e_save_current_image(void)
+static void
+_e_save_image(Evas_Object *obj, const char *path)
{
int w;
int h;
- Image *im;
DATA32 *image_data;
Imlib_Image image;
int alpha_team; /* Speed Racer! */
const char *format;
- if (!current_image || !current_image->data || !o_image)
+ if (!obj || !path)
return;
- im = (Image *) (current_image->data);
-
/* Get image data from Evas */
- evas_object_image_size_get(o_image, &w, &h);
- image_data = evas_object_image_data_get(o_image, 0);
+ evas_object_image_size_get(obj, &w, &h);
+ image_data = evas_object_image_data_get(obj, 0);
if (!image_data)
{
- evas_object_image_data_set(o_image, image_data);
+ evas_object_image_data_set(obj, image_data);
return;
}
/* Set up imlib image */
image = imlib_create_image_using_copied_data(w, h, image_data);
- evas_object_image_data_set(o_image, image_data);
+ evas_object_image_data_set(obj, image_data);
imlib_context_set_image(image);
- alpha_team = evas_object_image_alpha_get(o_image);
- format = strrchr(im->file, '.') + 1;
+ alpha_team = evas_object_image_alpha_get(obj);
+ format = strrchr(path, '.') + 1;
+
+ if(!*format)
+ format = DEFAULT_FORMAT;
/* Save Image */
imlib_image_set_format(format);
imlib_image_set_has_alpha(alpha_team); /* Go Speed, Go */
- imlib_save_image(im->file);
+ imlib_save_image(path);
/* Free Imlib image */
imlib_free_image();
}
-
+
+
+void
+e_save_current_image(void)
+{
+ Image *im;
+
+ if (!current_image || !current_image->data || !o_image)
+ return;
+
+ im = (Image *) (current_image->data);
+
+ _e_save_image(o_image, im->file);
+ if(im->modified)
+ _e_save_image(im->o_thumb, im->thumb);
+ im->modified = 0;
+}
+
+
+static void
+e_update_thumb(void)
+{
+ Image *im;
+
+ if (!current_image)
+ return;
+
+ im = (Image *) (current_image->data);
+
+ if(!im->modified)
+ return;
+
+ evas_object_image_file_set(im->o_thumb, im->thumb, NULL);
+ evas_object_image_reload(im->o_thumb);
+ im->modified = 0;
+}
+
+
+void
+e_load_next_image(void)
+{
+ e_update_thumb();
+ if (!current_image)
+ current_image = images;
+ else if (current_image->next)
+ current_image = current_image->next;
+ e_display_current_image();
+}
+
+
+void
+e_load_prev_image(void)
+{
+ e_update_thumb();
+ if (!current_image)
+ current_image = images;
+ else if (current_image->prev)
+ current_image = current_image->prev;
+ e_display_current_image();
+}
+
void
e_display_current_image(void)
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/entice/src/bin/image.h,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -3 -r1.9 -r1.10
--- image.h 16 Feb 2003 09:35:15 -0000 1.9
+++ image.h 16 Mar 2003 06:08:52 -0000 1.10
@@ -24,6 +24,8 @@
void e_flip_v_current_image(void);
void e_delete_current_image(void);
+void e_load_prev_image(void);
+void e_load_next_image(void);
void e_save_current_image(void);
void e_display_current_image(void);
-------------------------------------------------------
This SF.net email is sponsored by:Crypto Challenge is now open!
Get cracking and register here for some mind boggling fun and
the chance of winning an Apple iPod:
http://ads.sourceforge.net/cgi-bin/redirect.pl?thaw0031en
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs