rimmed pushed a commit to branch master.

http://git.enlightenment.org/tools/eflete.git/commit/?id=7dff7d22eb4e63969ede7d255b4de65a1f9f604b

commit 7dff7d22eb4e63969ede7d255b4de65a1f9f604b
Author: Vyacheslav Reutskiy <v.reuts...@samsung.com>
Date:   Wed Mar 30 10:34:03 2016 +0300

    workspace: change the rel scale accordingly to obj area of selected part
    
    Change-Id: I95a3b2cc479ff4e38d45e328f6b2a2d2ccd95491
---
 src/bin/ui/workspace/workspace.c | 36 ++++++++++++++++++++++++++----------
 1 file changed, 26 insertions(+), 10 deletions(-)

diff --git a/src/bin/ui/workspace/workspace.c b/src/bin/ui/workspace/workspace.c
index cbdf664..de8eebe 100644
--- a/src/bin/ui/workspace/workspace.c
+++ b/src/bin/ui/workspace/workspace.c
@@ -60,7 +60,6 @@ struct _Scroll_Area {
    Evas_Object *content; /* for normal mode - groupview, for demo - elm widget 
*/
    Ruler ruler_v;
    Ruler ruler_h;
-   int w, h; /* the container size with zoom factor 1.0, calculated if aoom 
factor is not 1.0 */
 };
 typedef struct _Scroll_Area Scroll_Area;
 
@@ -473,18 +472,35 @@ _container_changed(void *data,
 {
    Workspace_Data *wd = data;
    Container_Geom *geom = event_info;
+   const Groupview_Geom *part_geom = NULL;
    Evas_Coord x, y;
+   Evas_Coord scale_x, scale_y, step_w, step_h;
    Scroll_Area *area;
 
    area = _scroll_area_get(wd);
    assert(area != NULL);
 
-   area->w = geom->w;
-   area->h = geom->h;
-
    evas_object_geometry_get(area->ruler_h.obj, &x, NULL, NULL, NULL);
    evas_object_geometry_get(area->ruler_v.obj, NULL, &y, NULL, NULL);
 
+   if (((MODE_NORMAL == wd->mode) || (MODE_CODE == wd->mode)) && area->content)
+     part_geom = groupview_part_selected_object_area_geom_get(area->content);
+   if (part_geom)
+     {
+        scale_x = part_geom->x - x;
+        scale_y = part_geom->y - y;
+        step_w = part_geom->w;
+        step_h = part_geom->h;
+     }
+   else
+     {
+        scale_x = geom->x - x;
+        scale_y = geom->y - y;
+        step_w = geom->w;
+        step_h = geom->h;
+     }
+
+
    /* shift the abs scale zero mark */
    ewe_ruler_zero_offset_set(area->ruler_h.obj, NULL, geom->x - x);
    ewe_ruler_zero_offset_set(area->ruler_v.obj, NULL, geom->y - y);
@@ -492,17 +508,17 @@ _container_changed(void *data,
    /* shift the rel scale zero mark */
    if (area->ruler_h.scale_rel)
      {
-        ewe_ruler_zero_offset_set(area->ruler_h.obj, area->ruler_h.scale_rel, 
geom->x - x);
-        ewe_ruler_step_set(area->ruler_h.obj, area->ruler_h.scale_rel, 
((geom->w * wd->zoom_factor) / 2));
+        ewe_ruler_zero_offset_set(area->ruler_h.obj, area->ruler_h.scale_rel, 
scale_x);
+        ewe_ruler_step_set(area->ruler_h.obj, area->ruler_h.scale_rel, 
((step_w * wd->zoom_factor) / 2));
      }
    if (area->ruler_v.scale_rel)
      {
-        ewe_ruler_zero_offset_set(area->ruler_v.obj, area->ruler_v.scale_rel, 
geom->y - y);
-        ewe_ruler_step_set(area->ruler_v.obj, area->ruler_v.scale_rel, 
((geom->h * wd->zoom_factor) / 2));
+        ewe_ruler_zero_offset_set(area->ruler_v.obj, area->ruler_v.scale_rel, 
scale_y);
+        ewe_ruler_step_set(area->ruler_v.obj, area->ruler_v.scale_rel, 
((step_h * wd->zoom_factor) / 2));
      }
 
-   elm_spinner_value_set(wd->toolbar.container_sizer.spinner_w, area->w);
-   elm_spinner_value_set(wd->toolbar.container_sizer.spinner_h, area->h);
+   elm_spinner_value_set(wd->toolbar.container_sizer.spinner_w, geom->w);
+   elm_spinner_value_set(wd->toolbar.container_sizer.spinner_h, geom->h);
 }
 
 static void

-- 


Reply via email to