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

Reply via email to