rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=b375fafeb6aa3fbe4dcf6a1f87323ed4be399a13
commit b375fafeb6aa3fbe4dcf6a1f87323ed4be399a13 Author: Vyacheslav Reutskiy <v.reuts...@samsung.com> Date: Thu Dec 3 12:48:26 2015 +0200 workspace: add API for soft and hard groupedit update Soft update defined for update parts view without calculation, and hard update - calculate part geomentry and update them. Change-Id: I9d9c8d558c533dcf0ffe88bbc4fed40c34fbe8a5 --- src/bin/ui/workspace/groupedit.c | 15 +++++++++++++++ src/bin/ui/workspace/groupedit.h | 20 ++++++++++++++++++++ src/bin/ui/workspace/workspace.c | 25 +++++++++++++++++++++++++ 3 files changed, 60 insertions(+) diff --git a/src/bin/ui/workspace/groupedit.c b/src/bin/ui/workspace/groupedit.c index 5cda0f2..1638e78 100644 --- a/src/bin/ui/workspace/groupedit.c +++ b/src/bin/ui/workspace/groupedit.c @@ -262,6 +262,21 @@ groupedit_edit_object_recalc_all(Evas_Object *obj) return true; } +void +groupedit_soft_update(Evas_Object *obj) +{ + WS_GROUPEDIT_DATA_GET(obj, sd); + evas_object_smart_changed(sd->obj); +} + +void +groupedit_hard_update(Evas_Object *obj) +{ + WS_GROUPEDIT_DATA_GET(obj, sd); + sd->manual_calc = true; + evas_object_smart_changed(sd->obj); +} + Evas_Object * groupedit_edit_object_part_draw_get(Evas_Object *obj, const char *part) { diff --git a/src/bin/ui/workspace/groupedit.h b/src/bin/ui/workspace/groupedit.h index 869b604..014156b 100644 --- a/src/bin/ui/workspace/groupedit.h +++ b/src/bin/ui/workspace/groupedit.h @@ -106,6 +106,26 @@ Eina_Bool groupedit_edit_object_recalc_all(Evas_Object *obj); /** + * Update the parts attributes, without recalculation. + * + * @paramaram obj The groupedit object. + * + * @ingroup Groupedit + */ +void +groupedit_soft_update(Evas_Object *obj); + +/** + * Update the parts attributes, and recalculate them. + * + * @paramaram obj The groupedit object. + * + * @ingroup Groupedit + */ +void +groupedit_hard_update(Evas_Object *obj); + +/** * Get the part object, which geometry corresponds to Edje part geometry from * editable object. * diff --git a/src/bin/ui/workspace/workspace.c b/src/bin/ui/workspace/workspace.c index 5d2a378..f55ae8e 100644 --- a/src/bin/ui/workspace/workspace.c +++ b/src/bin/ui/workspace/workspace.c @@ -1640,6 +1640,31 @@ workspace_edit_object_recalc(Evas_Object *obj) return groupedit_edit_object_recalc_all(sd->groupedit); } +void +workspace_edit_object_hard_update(Evas_Object *obj) +{ + WS_DATA_GET(obj, sd); + assert(sd->groupedit != NULL); + + Evas_Coord min_w, max_w, min_h, max_h; + min_w = edje_edit_group_min_w_get(sd->group->edit_object); + min_h = edje_edit_group_min_h_get(sd->group->edit_object); + max_w = edje_edit_group_max_w_get(sd->group->edit_object); + max_h = edje_edit_group_max_h_get(sd->group->edit_object); + container_min_size_set(sd->container.obj, min_w, min_h); + container_max_size_set(sd->container.obj, max_w, max_h); + + groupedit_hard_update(sd->groupedit); +} + +void +workspace_edit_object_soft_update(Evas_Object *obj) +{ + WS_DATA_GET(obj, sd); + assert(sd->groupedit != NULL); + groupedit_soft_update(sd->groupedit); +} + Eina_Bool workspace_edit_object_part_add(Evas_Object *obj, Part_ *part) { --