Enlightenment CVS committal

Author  : raster
Project : e17
Module  : apps/e

Dir     : e17/apps/e/src/bin


Modified Files:
        Makefile.am e_box.c e_includes.h 
Added Files:
        e_table.c e_table.h 


Log Message:


table smart that handles ONLY homogenous layout with table cells ONLY
spanning 1 column or row... but hey - enough for the pager work... :)

also fixed up e_box to properly clip and show/hide children etc.

also optimised e_box to not re-configure on simple moves

also remvoe typo from pager .edc

===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/Makefile.am,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -3 -r1.15 -r1.16
--- Makefile.am 7 Mar 2005 12:06:41 -0000       1.15
+++ Makefile.am 13 Mar 2005 04:01:00 -0000      1.16
@@ -41,7 +41,8 @@
 e_hints.h \
 e_gadman.h \
 e_signals.h \
-e_xinerama.h
+e_xinerama.h \
+e_table.h
 
 
 enlightenment_SOURCES = \
@@ -77,6 +78,7 @@
 e_gadman.c \
 e_signals.c \
 e_xinerama.c \
+e_table.c \
 $(ENLIGHTENMENTHEADERS)
 
 enlightenment_LDFLAGS = -export-dynamic @e_libs@ @dlopen_libs@
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_box.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -3 -r1.4 -r1.5
--- e_box.c     16 Feb 2005 11:21:07 -0000      1.4
+++ e_box.c     13 Mar 2005 04:01:00 -0000      1.5
@@ -10,6 +10,7 @@
 { 
    Evas_Coord       x, y, w, h;
    Evas_Object     *obj;
+   Evas_Object     *clip;
    int              frozen;
    unsigned char    changed : 1;
    unsigned char    horizontal : 1;
@@ -330,12 +331,14 @@
    bi->min.h = 0;
    bi->max.w = 0;
    bi->max.h = 0;
-   evas_object_clip_set(obj, evas_object_clip_get(sd->obj));
+   evas_object_clip_set(obj, sd->clip);
    evas_object_stack_above(obj, sd->obj);
    evas_object_smart_member_add(bi->sd->obj, obj);
    evas_object_data_set(obj, "e_box_data", bi);
    evas_object_event_callback_add(obj, EVAS_CALLBACK_FREE,
                                  _e_box_smart_item_del_hook, NULL);
+   if (!evas_object_visible_get(sd->clip))
+     evas_object_show(sd->clip);
    return bi;
 }
 
@@ -346,10 +349,16 @@
    
    bi = evas_object_data_get(obj, "e_box_data");
    if (!bi) return;
+   if (!bi->sd->items)
+     {
+       if (evas_object_visible_get(bi->sd->clip))
+         evas_object_hide(bi->sd->clip);
+     }
    evas_object_event_callback_del(obj,
                                  EVAS_CALLBACK_FREE,
                                  _e_box_smart_item_del_hook);
    evas_object_smart_member_del(bi->sd->obj);
+   evas_object_clip_unset(obj);
    evas_object_data_del(obj, "e_box_data");
    free(bi);
 }
@@ -512,13 +521,13 @@
    sd->changed = 0;
 }
 
-/* FIXME: need to have min/max size calc routines */
 static void
 _e_box_smart_extents_calcuate(E_Smart_Data *sd)
 {
    Evas_List *l;
    int minw, minh;
-   
+
+   /* FIXME: need to calc max */
    sd->max.w = -1; /* max < 0 == unlimited */
    sd->max.h = -1;
    
@@ -612,6 +621,11 @@
    sd->y = 0;
    sd->w = 0;
    sd->h = 0;
+   sd->clip = evas_object_rectangle_add(evas_object_evas_get(obj));
+   evas_object_smart_member_add(obj, sd->clip);
+   evas_object_move(sd->clip, -100000, -100000);
+   evas_object_resize(sd->clip, 200000, 200000);
+   evas_object_color_set(sd->clip, 255, 255, 255, 255);
    evas_object_smart_data_set(obj, sd);
 }
    
@@ -629,6 +643,7 @@
        child = sd->items->data;
        e_box_unpack(child);
      }
+   evas_object_del(sd->clip);
    free(sd);
 }
    
@@ -730,10 +745,22 @@
    sd = evas_object_smart_data_get(obj);
    if (!sd) return;
    if ((x == sd->x) && (y == sd->y)) return;
+     {
+       Evas_List *l;
+       Evas_Coord dx, dy;
+       
+       dx = x - sd->x;
+       dy = y - sd->y;
+       for (l = sd->items; l; l = l->next)
+         {
+            Evas_Coord ox, oy;
+            
+            evas_object_geometry_get(l->data, &ox, &oy, NULL, NULL);
+            evas_object_move(l->data, ox + dx, oy + dy);
+         }
+     }
    sd->x = x;
    sd->y = y;
-   sd->changed = 1;
-   _e_box_smart_reconfigure(sd);
 }
 
 static void
@@ -757,6 +784,7 @@
    
    sd = evas_object_smart_data_get(obj);
    if (!sd) return;
+   if (sd->items) evas_object_show(sd->clip);
 }
 
 static void
@@ -766,6 +794,7 @@
    
    sd = evas_object_smart_data_get(obj);
    if (!sd) return;
+   evas_object_hide(sd->clip);
 }
 
 static void
@@ -775,6 +804,7 @@
    
    sd = evas_object_smart_data_get(obj);
    if (!sd) return;   
+   evas_object_color_set(sd->clip, r, g, b, a);
 }
 
 static void
@@ -784,15 +814,7 @@
    
    sd = evas_object_smart_data_get(obj);
    if (!sd) return;
-
-     {
-       Evas_List *l;
-       
-       for (l = sd->items; l; l = l->next)
-         {
-            evas_object_clip_set(l->data, clip);
-         }
-     }
+   evas_object_clip_set(sd->clip, clip);
 }
 
 static void
@@ -802,13 +824,5 @@
    
    sd = evas_object_smart_data_get(obj);
    if (!sd) return;
-
-     {
-       Evas_List *l;
-       
-       for (l = sd->items; l; l = l->next)
-         {
-            evas_object_clip_unset(l->data);
-         }
-     }
+   evas_object_clip_unset(sd->clip);
 }  
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_includes.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -3 -r1.6 -r1.7
--- e_includes.h        7 Mar 2005 12:06:41 -0000       1.6
+++ e_includes.h        13 Mar 2005 04:01:00 -0000      1.7
@@ -32,3 +32,4 @@
 #include "e_gadman.h"
 #include "e_signals.h"
 #include "e_xinerama.h"
+#include "e_table.h"




-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to