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