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

-- 


Reply via email to