All pastes #413722 Raw Edit

edje_extern_v2.diff

public text v1 · immutable
#413722 ·published 2007-03-28 17:23 UTC
rendered paste body
Index: src/lib/edje_util.c
===================================================================
RCS file: /var/cvs/e/e17/libs/edje/src/lib/edje_util.c,v
retrieving revision 1.89
diff -u -r1.89 edje_util.c
--- src/lib/edje_util.c	1 Mar 2007 22:39:01 -0000	1.89
+++ src/lib/edje_util.c	28 Mar 2007 17:15:43 -0000
@@ -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,6 +843,7 @@
 	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);
@@ -858,6 +860,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 +874,13 @@
      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;
+     }
 }
 
 /** Set the object maximum size
@@ -884,6 +894,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 +906,13 @@
      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;
+     }
 }
 
 /** Set the object aspect size
@@ -913,6 +931,7 @@
 {
    int mw, mh;
    int mc;
+   Edje_Real_Part *rp;
 
    mc = aspect;
    mw = aw;
@@ -929,6 +948,14 @@
      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;
+     }
 }
 
 /** Unswallow an object
@@ -957,6 +984,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;