Enlightenment CVS committal

Author  : raster
Project : e17
Module  : libs/edje

Dir     : e17/libs/edje/src/lib


Modified Files:
        edje_util.c 


Log Message:


swallow parent recalc etc. in.

===================================================================
RCS file: /cvs/e/e17/libs/edje/src/lib/edje_util.c,v
retrieving revision 1.89
retrieving revision 1.90
diff -u -3 -r1.89 -r1.90
--- edje_util.c 1 Mar 2007 22:39:01 -0000       1.89
+++ edje_util.c 4 Apr 2007 12:46:44 -0000       1.90
@@ -784,6 +784,7 @@
                                       EVAS_CALLBACK_FREE,
                                       _edje_object_part_swallow_free_cb);
        evas_object_clip_unset(rp->swallowed_object);
+       evas_object_data_del(rp->swallowed_object, "\377 edje.swallowing_part");
        rp->swallowed_object = NULL;
      }
    if (!obj_swallow) return;
@@ -842,11 +843,25 @@
        rp->swallow_params.aspect.mode = am;
        rp->swallow_params.aspect.w = aw;
        rp->swallow_params.aspect.h = ah;
+       evas_object_data_set(rp->swallowed_object, "\377 edje.swallowing_part", 
rp);
      }
    ed->dirty = 1;
    _edje_recalc(ed);
 }
 
+static void
+_recalc_extern_parent(Evas_Object *obj)
+{
+   Evas_Object *parent;
+   Edje *ed;
+
+   parent = evas_object_smart_parent_get(obj);
+   ed = _edje_fetch(parent);
+
+   ed->dirty = 1;
+   _edje_recalc(ed);
+}
+
 /** Set the object minimum size
  * @param obj A valid Evas_Object handle
  * @param minw The minimum width
@@ -858,6 +873,7 @@
 edje_extern_object_min_size_set(Evas_Object *obj, Evas_Coord minw, Evas_Coord 
minh)
 {
    int mw, mh;
+   Edje_Real_Part *rp;
 
    mw = minw;
    mh = minh;
@@ -871,6 +887,15 @@
      evas_object_data_set(obj, "\377 edje.minh", (void *)mh);
    else
      evas_object_data_del(obj, "\377 edje.minh");
+
+   rp = evas_object_data_get(obj, "\377 edje.swallowing_part");
+   if (rp)
+     {
+       rp->swallow_params.min.w = mw;
+       rp->swallow_params.min.h = mh;
+
+       _recalc_extern_parent(obj);
+     }
 }
 
 /** Set the object maximum size
@@ -884,6 +909,7 @@
 edje_extern_object_max_size_set(Evas_Object *obj, Evas_Coord maxw, Evas_Coord 
maxh)
 {
    int mw, mh;
+   Edje_Real_Part *rp;
 
    mw = maxw;
    mh = maxh;
@@ -895,6 +921,15 @@
      evas_object_data_set(obj, "\377 edje.maxh", (void *)mh);
    else
      evas_object_data_del(obj, "\377 edje.maxh");
+
+   rp = evas_object_data_get(obj, "\377 edje.swallowing_part");
+   if (rp)
+     {
+       rp->swallow_params.max.w = mw >= 0 ? mw : -1;
+       rp->swallow_params.max.h = mh >= 0 ? mh : -1;
+
+       _recalc_extern_parent(obj);
+     }
 }
 
 /** Set the object aspect size
@@ -913,6 +948,7 @@
 {
    int mw, mh;
    int mc;
+   Edje_Real_Part *rp;
 
    mc = aspect;
    mw = aw;
@@ -929,6 +965,16 @@
      evas_object_data_set(obj, "\377 edje.asph", (void *)mh);
    else
      evas_object_data_del(obj, "\377 edje.asph");
+
+   rp = evas_object_data_get(obj, "\377 edje.swallowing_part");
+   if (rp)
+     {
+       rp->swallow_params.aspect.mode = mc > 0 ? mc : 0;
+       rp->swallow_params.aspect.w = mw > 0 ? mw : 0;
+       rp->swallow_params.aspect.h = mh > 0 ? mh : 0;
+
+        _recalc_extern_parent(obj);
+     }
 }
 
 /** Unswallow an object
@@ -957,6 +1003,7 @@
                                            EVAS_CALLBACK_FREE,
                                            _edje_object_part_swallow_free_cb);
             evas_object_clip_unset(rp->swallowed_object);
+            evas_object_data_del(rp->swallowed_object, "\377 
edje.swallowing_part");
             rp->swallowed_object = NULL;
             rp->swallow_params.min.w = 0;
             rp->swallow_params.min.h = 0;



-------------------------------------------------------------------------
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

Reply via email to