Enlightenment CVS committal

Author  : raster
Project : e17
Module  : apps/e

Dir     : e17/apps/e/src/bin


Modified Files:
        e_fileman_icon.c e_fileman_smart.c e_thumb.c 


Log Message:


kind of bring fileman icons into some semblance of working

===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_fileman_icon.c,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -3 -r1.16 -r1.17
--- e_fileman_icon.c    4 Nov 2005 14:58:03 -0000       1.16
+++ e_fileman_icon.c    4 Nov 2005 17:02:42 -0000       1.17
@@ -19,7 +19,6 @@
    Evas_Object     *icon_object;
    Evas_Object     *image_object;
    Evas_Object     *entry_object;
-   Evas_Object     *title_object;
    Evas_Object     *thumb_object;
 
    E_Fm_File       *file;
@@ -34,6 +33,8 @@
 static void _e_fm_icon_smart_del         (Evas_Object *obj);
 static void _e_fm_icon_smart_move        (Evas_Object *obj, Evas_Coord x, 
Evas_Coord y);
 static void _e_fm_icon_smart_resize      (Evas_Object *obj, Evas_Coord w, 
Evas_Coord h);
+static void _e_fm_icon_smart_show        (Evas_Object *obj);
+static void _e_fm_icon_smart_hide        (Evas_Object *obj);
 static void _e_fm_icon_smart_clip_set    (Evas_Object *obj, Evas_Object *clip);
 static void _e_fm_icon_smart_clip_unset  (Evas_Object *obj);
 
@@ -91,8 +92,8 @@
                                 NULL, NULL, NULL, NULL, NULL,
                                 _e_fm_icon_smart_move,
                                 _e_fm_icon_smart_resize,
-                                NULL,
-                                NULL,
+                                _e_fm_icon_smart_show,
+                                _e_fm_icon_smart_hide,
                                 NULL,
                                 _e_fm_icon_smart_clip_set,
                                 _e_fm_icon_smart_clip_unset,
@@ -138,12 +139,23 @@
                                                        sd->iw,
                                                        sd->ih,
                                                        1);
-            evas_object_smart_member_add(sd->thumb_object, sd->obj);
+//          evas_object_geometry_get(sd->thumb_object, NULL, NULL, &icon_w, 
&icon_h);
+//          sd->iw = icon_w;
+//          sd->ih = icon_h;
             sd->image_object = edje_object_add(sd->evas);
             e_theme_edje_object_set(sd->image_object, "base/theme/fileman",
                                     "fileman/icon_thumb");
+            edje_extern_object_min_size_set(sd->thumb_object, sd->iw, sd->ih);
+            edje_extern_object_max_size_set(sd->thumb_object, sd->iw, sd->ih);
             edje_object_part_swallow(sd->image_object, "icon_swallow",
                                      sd->thumb_object);
+            edje_object_size_min_calc(sd->image_object, &icon_w, &icon_h);
+            sd->iw = icon_w;
+            sd->ih = icon_h;
+            edje_extern_object_min_size_set(sd->image_object, icon_w, icon_h);
+            edje_extern_object_max_size_set(sd->image_object, icon_w, icon_h);
+            edje_object_part_swallow(sd->icon_object, "icon_swallow",
+                                     sd->image_object);
          }
        else
          {
@@ -156,11 +168,10 @@
      {
        _e_fm_icon_icon_mime_get(sd);
      }
-   
    _e_fm_icon_type_set(sd);
-   evas_object_resize(sd->icon_object, 64, 64);
-   evas_object_resize(sd->event_object, 64, 64);
-   evas_object_resize(sd->obj, 64, 64);
+   edje_object_size_min_calc(sd->icon_object, &icon_w, &icon_h);
+   evas_object_resize(sd->obj, 0, 0); // because it still thinks its the same 
size
+   evas_object_resize(sd->obj, 64, icon_h);
 }
 
 void
@@ -242,28 +253,6 @@
    return 0;
 }
 
-void
-e_fm_icon_image_resize(Evas_Object *obj, Evas_Coord w, Evas_Coord h)
-{
-   E_Smart_Data *sd;
-   
-   sd = evas_object_smart_data_get(obj);
-   if (!sd) return;
-   sd->iw = w;
-   sd->ih = h;
-   evas_object_resize(sd->image_object, w, h);
-}
-
-void
-e_fm_icon_size_min_calc(Evas_Object *obj, Evas_Coord *w, Evas_Coord *h)
-{
-   E_Smart_Data *sd;
-   
-   sd = evas_object_smart_data_get(obj);
-   if (!sd) return;
-   edje_object_size_min_calc(sd->icon_object, w, h);
-}
-
 /* local subsystem functions */
 static void
 _e_fm_icon_smart_add(Evas_Object *obj)
@@ -281,24 +270,19 @@
    sd->h = 64;
    sd->iw = 48;
    sd->ih = 48;
+   
+   sd->icon_object = edje_object_add(sd->evas);
+   evas_object_smart_member_add(sd->icon_object, obj);
+   
    sd->event_object = evas_object_rectangle_add(sd->evas);
    evas_object_color_set(sd->event_object, 0, 0, 0, 0);
    evas_object_smart_member_add(sd->event_object, obj);
-   evas_object_show(sd->event_object);
    evas_object_smart_data_set(obj, sd);
    
-   sd->title_object = evas_object_textblock_add(sd->evas);
-   evas_object_smart_member_add(sd->title_object, obj);   
-   
    sd->visible = 1;
-   sd->icon_object = edje_object_add(sd->evas);
-   evas_object_smart_member_add(sd->icon_object, obj);
    
-   evas_object_show(sd->icon_object);
-   evas_object_show(sd->event_object);   
 }
 
-
 static void
 _e_fm_icon_smart_del(Evas_Object *obj)
 {
@@ -306,32 +290,10 @@
 
    sd = evas_object_smart_data_get(obj);
    if (!sd) return;
-   if (sd->entry_object) edje_object_part_unswallow(sd->icon_object, 
sd->entry_object);
-   if (sd->event_object)
-     {
-       evas_object_smart_member_del(sd->event_object);
-               evas_object_del(sd->event_object);
-     }
-   if (sd->icon_object)
-     {
-       evas_object_smart_member_del(sd->icon_object);
-               evas_object_del(sd->icon_object);
-     }
-   if (sd->image_object)
-     {
-       evas_object_smart_member_del(sd->image_object);
-       evas_object_del(sd->image_object);
-     }
-   if (sd->title_object)
-     {
-       evas_object_smart_member_del(sd->title_object);
-       evas_object_del(sd->title_object);
-     }
-   if (sd->thumb_object)
-     {
-       evas_object_smart_member_del(sd->thumb_object);
-       evas_object_del(sd->thumb_object);
-     }   
+   if (sd->event_object) evas_object_del(sd->event_object);
+   if (sd->icon_object) evas_object_del(sd->icon_object);
+   if (sd->image_object) evas_object_del(sd->image_object);
+   if (sd->thumb_object) evas_object_del(sd->thumb_object);
    E_FREE(sd->saved_title);
    if (sd->file) e_object_unref(E_OBJECT(sd->file));
    free(sd);
@@ -344,14 +306,11 @@
 
    sd = evas_object_smart_data_get(obj);
    if (!sd) return;
-   
-   if(sd->x == x && sd->y == y) return;
-   
-   evas_object_move(sd->event_object, x, y);
-   if (sd->icon_object) evas_object_move(sd->icon_object, x, y);
-   //if (sd->image_object) evas_object_move(sd->image_object, x, y);
+   if ((sd->x == x) && (sd->y == y)) return;
    sd->x = x;
    sd->y = y;
+   evas_object_move(sd->event_object, x, y);
+   evas_object_move(sd->icon_object, x, y);
 }
 
 static void
@@ -361,27 +320,42 @@
 
    sd = evas_object_smart_data_get(obj);
    if (!sd) return;
-
-   if(sd->w == w && sd->h == h) return;   
-   
+   if ((sd->w == w) && (sd->h == h)) return;   
    sd->w = w;
-   if(sd->h < h)
-     sd->h = h;
-
+   sd->h = h;
    evas_object_resize(sd->event_object, sd->w, sd->h);
-   if (sd->icon_object) evas_object_resize(sd->icon_object, sd->w, sd->h);
-   printf("resize to %d %d\n", sd->w, sd->h);
-   //if (sd->image_object) evas_object_resize(sd->image_object, w, h);
+   evas_object_resize(sd->icon_object, sd->w, sd->h);
 }
 
 static void
-_e_fm_icon_smart_clip_set(Evas_Object *obj, Evas_Object *clip)
+_e_fm_icon_smart_show(Evas_Object *obj)
+{
+   E_Smart_Data *sd;
+
+   sd = evas_object_smart_data_get(obj);
+   if (!sd) return;
+   evas_object_show(sd->icon_object);
+   evas_object_show(sd->event_object);   
+}
+
+static void
+_e_fm_icon_smart_hide(Evas_Object *obj)
 {
    E_Smart_Data *sd;
 
    sd = evas_object_smart_data_get(obj);
    if (!sd) return;
+   evas_object_hide(sd->icon_object);
+   evas_object_hide(sd->event_object);   
+}
+
+static void
+_e_fm_icon_smart_clip_set(Evas_Object *obj, Evas_Object *clip)
+{
+   E_Smart_Data *sd;
 
+   sd = evas_object_smart_data_get(obj);
+   if (!sd) return;
    evas_object_clip_set(sd->event_object, clip);
    evas_object_clip_set(sd->icon_object, clip);   
 }
@@ -393,20 +367,19 @@
 
    sd = evas_object_smart_data_get(obj);
    if (!sd) return;
-
    evas_object_clip_unset(sd->event_object);
+   evas_object_clip_unset(sd->icon_object);
 }
 
 static void
 _e_fm_icon_icon_mime_get(E_Smart_Data *sd)
 {
-   sd->image_object = edje_object_add(sd->evas);
+   Evas_Coord icon_w, icon_h;
    
+   sd->image_object = edje_object_add(sd->evas);
    if (sd->file->type ==  E_FM_FILE_TYPE_DIRECTORY)
-     {
-       e_theme_edje_object_set(sd->image_object, "base/theme/fileman",
-                               "icons/fileman/folder");
-     }
+     e_theme_edje_object_set(sd->image_object, "base/theme/fileman",
+                            "icons/fileman/folder");
    else
      {
        char *ext;
@@ -419,22 +392,21 @@
 
             ext = strdup(ext);
             ext2 = ext;
-            for (; *ext2; ext2++)
-              *ext2 = tolower(*ext2);
+            for (; *ext2; ext2++) *ext2 = tolower(*ext2);
 
             snprintf(part, PATH_MAX, "icons/fileman/%s", (ext + 1));
-
             if (!e_theme_edje_object_set(sd->image_object, 
"base/theme/fileman", part))
               e_theme_edje_object_set(sd->image_object, "base/theme/fileman", 
"icons/fileman/file");
-            
             free(ext);                      
          }
        else
          e_theme_edje_object_set(sd->image_object, "base/theme/fileman", 
"icons/fileman/file");
      }
-   evas_object_resize(sd->image_object, sd->iw, sd->ih);
+   evas_object_show(sd->image_object);
    edje_extern_object_min_size_set(sd->image_object, sd->iw, sd->ih);
    edje_extern_object_max_size_set(sd->image_object, sd->iw, sd->ih);
+   edje_object_part_swallow(sd->icon_object, "icon_swallow",
+                           sd->image_object);
 }
 
 static void
@@ -480,6 +452,8 @@
    
    if ((ext) || (ecore_file_exists(sd->thumb_path)))
      {
+       Evas_Coord icon_w, icon_h;
+       
        if (sd->image_object) evas_object_del(sd->image_object);
        
        sd->thumb_object = e_thumb_evas_object_get(sd->file->path, 
@@ -487,19 +461,25 @@
                                                   sd->iw,
                                                   sd->ih,
                                                   1);
-       evas_object_smart_member_add(sd->thumb_object, sd->obj);
-       
+//     evas_object_geometry_get(sd->thumb_object, NULL, NULL, &icon_w, 
&icon_h);
+//     sd->iw = icon_w;
+//     sd->ih = icon_h;
        sd->image_object = edje_object_add(sd->evas);
        e_theme_edje_object_set(sd->image_object, "base/theme/fileman",
                                "fileman/icon_thumb");
+        evas_object_show(sd->image_object);
+       evas_object_show(sd->thumb_object);
+       edje_extern_object_min_size_set(sd->thumb_object, sd->iw, sd->ih);
+       edje_extern_object_max_size_set(sd->thumb_object, sd->iw, sd->ih);
        edje_object_part_swallow(sd->image_object, "icon_swallow",
                                 sd->thumb_object);
-       edje_extern_object_min_size_set(sd->image_object, sd->iw, sd->ih);
-       edje_extern_object_max_size_set(sd->image_object, sd->iw, sd->ih);
+       edje_object_size_min_calc(sd->image_object, &icon_w, &icon_h);
+       sd->iw = icon_w;
+       sd->ih = icon_h;
+       edje_extern_object_min_size_set(sd->image_object, icon_w, icon_h);
+       edje_extern_object_max_size_set(sd->image_object, icon_w, icon_h);
        edje_object_part_swallow(sd->icon_object, "icon_swallow",
                                 sd->image_object);
-//     edje_object_part_swallow(sd->icon_object, "icon_title",
-//                                      sd->title_object);
      }
 
    pid = -1;
@@ -510,7 +490,7 @@
 static void
 _e_fm_icon_type_set(E_Smart_Data *sd)
 {
-   switch(sd->type)
+   switch (sd->type)
      {
       case E_FM_ICON_NORMAL:   
        e_theme_edje_object_set(sd->icon_object, "base/theme/fileman",
@@ -531,13 +511,13 @@
    if (sd->image_object)
      {
        edje_extern_object_min_size_set(sd->image_object, sd->iw, sd->ih);
-       edje_extern_object_max_size_set(sd->image_object, sd->iw, sd->ih);      
-       edje_object_part_swallow(sd->icon_object, "icon_swallow", 
sd->image_object);
-       evas_object_smart_member_add(sd->image_object, sd->obj);        
+       edje_extern_object_max_size_set(sd->image_object, sd->iw, sd->ih);
+       edje_object_part_swallow(sd->icon_object, "icon_swallow",
+                                sd->image_object);
        evas_object_show(sd->image_object);
      }
    
-   if(sd->saved_title) 
+   if (sd->saved_title) 
      {
 #if 0  
        Evas_Textblock_Style *e_editable_text_style;
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_fileman_smart.c,v
retrieving revision 1.79
retrieving revision 1.80
diff -u -3 -r1.79 -r1.80
--- e_fileman_smart.c   4 Nov 2005 14:58:03 -0000       1.79
+++ e_fileman_smart.c   4 Nov 2005 17:02:42 -0000       1.80
@@ -615,6 +615,7 @@
        sd->event_handlers = evas_list_remove_list(sd->event_handlers, 
sd->event_handlers);
     }
 
+   evas_event_freeze(evas_object_evas_get(object));
    while (sd->files)
     {
        _e_fm_file_free(sd->files->data);
@@ -628,6 +629,8 @@
    if (sd->entry_object) evas_object_del(sd->entry_object);
    if (sd->menu) e_object_del(E_OBJECT(sd->menu));
 
+   evas_event_thaw(evas_object_evas_get(object));
+   
    free(sd->dir);
    free(sd);
 }
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_thumb.c,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -3 -r1.13 -r1.14
--- e_thumb.c   4 Nov 2005 03:33:23 -0000       1.13
+++ e_thumb.c   4 Nov 2005 17:02:42 -0000       1.14
@@ -357,9 +357,10 @@
    
    im = e_icon_add(evas);
    e_icon_file_key_set(im, thumb, "/thumbnail/data");
-     if (shrink)
+   if (shrink)
      {
        Evas_Coord sw, sh;
+       
        e_icon_size_get(im, &sw, &sh);
        evas_object_resize(im, sw, sh);
      }




-------------------------------------------------------
SF.Net email is sponsored by:
Tame your development challenges with Apache's Geronimo App Server. Download
it for free - -and be entered to win a 42" plasma tv or your very own
Sony(tm)PSP.  Click here to play: http://sourceforge.net/geronimo.php
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to