rimmed pushed a commit to branch master.

http://git.enlightenment.org/tools/eflete.git/commit/?id=0589c60b5af294075251bfc624affadcb9ce255e

commit 0589c60b5af294075251bfc624affadcb9ce255e
Author: Vyacheslav Reutskiy <v.reuts...@samsung.com>
Date:   Mon Apr 4 10:48:33 2016 +0300

    workspace: implement the rulers visibility
    
    Change-Id: I5c8b72d9885b18c1728077b5ba3477d297841e37
---
 data/themes/default/widgets/layouts/workspace.edc | 46 ++++++++++++++++++++++-
 src/bin/common/signals.h                          |  1 +
 src/bin/ui/menu.c                                 |  2 +-
 src/bin/ui/tabs.c                                 | 15 ++++++++
 src/bin/ui/workspace/workspace.c                  | 27 +++++++++++++
 src/bin/ui/workspace/workspace.h                  |  6 +++
 6 files changed, 95 insertions(+), 2 deletions(-)

diff --git a/data/themes/default/widgets/layouts/workspace.edc 
b/data/themes/default/widgets/layouts/workspace.edc
index d84e0d2..c7094cd 100644
--- a/data/themes/default/widgets/layouts/workspace.edc
+++ b/data/themes/default/widgets/layouts/workspace.edc
@@ -105,6 +105,7 @@ group { name: "elm/layout/workspace/scroller";
          scale: 1;
          clip_to: "clipper.ruler_v";
          description { state: "default" 0.0;
+            align: 0.0 0.5;
             rel1 {
                relative: 0.0 1.0;
                to_y: "area.ruler.cros";
@@ -113,6 +114,18 @@ group { name: "elm/layout/workspace/scroller";
                to_x: "area.ruler.cros";
             }
          }
+         description { state: "hidden" 0.0;
+            align: 0.0 0.5;
+            max: 0 -1;
+            rel1 {
+               relative: 0.0 1.0;
+               to_y: "area.ruler.cros";
+            }
+            rel2 {
+               to_x: "area.ruler.cros";
+            }
+         }
+
       }
       part { name: "clipper.ruler_v";
          type: RECT;
@@ -144,6 +157,18 @@ group { name: "elm/layout/workspace/scroller";
          scale: 1;
          clip_to: "clipper.ruler_h";
          description { state: "default" 0.0;
+            align: 0.5. 0.0;
+            rel1 {
+               relative: 1.0 0.0;
+               to_x: "area.ruler.cros";
+            }
+            rel2 {
+               to_y: "area.ruler.cros";
+            }
+         }
+         description { state: "hidden" 0.0;
+            align: 0.5. 0.0;
+            max: -1 0;
             rel1 {
                relative: 1.0 0.0;
                to_x: "area.ruler.cros";
@@ -169,7 +194,8 @@ group { name: "elm/layout/workspace/scroller";
          description { state: "default" 0.0;
             rel1 {
                relative: 1.0 1.0;
-               to: "area.ruler.cros";
+               to_x: "elm.swallow.ruler_v";
+               to_y: "elm.swallow.ruler_h";
             }
          }
       }
@@ -185,6 +211,24 @@ group { name: "elm/layout/workspace/scroller";
          }
       }
    }
+   programs {
+      program { name: "hide_rulers";
+         signal: "elm,state,rulers,hide";
+         source: "eflete";
+         action: STATE_SET "hidden" 0.00;
+         transition: LINEAR 0.30000 CURRENT;
+         target: "elm.swallow.ruler_v";
+         target: "elm.swallow.ruler_h";
+      }
+      program { name: "show_rulers";
+         signal: "elm,state,rulers,show";
+         source: "eflete";
+         action: STATE_SET "default" 0.00;
+         transition: LINEAR 0.30000 CURRENT;
+         target: "elm.swallow.ruler_v";
+         target: "elm.swallow.ruler_h";
+      }
+   }
 }
 
 group { name: "elm/layout/workspace/toolbar";
diff --git a/src/bin/common/signals.h b/src/bin/common/signals.h
index 9d54a23..496fe07 100644
--- a/src/bin/common/signals.h
+++ b/src/bin/common/signals.h
@@ -476,6 +476,7 @@ typedef struct {
 #define SIGNAL_SHORTCUT_FILL "SIGNAL_SHORTCUT_FILL"
 #define SIGNAL_SHORTCUT_FIT "SIGNAL_SHORTCUT_FIT"
 #define SIGNAL_SHORTCUT_OBJECT_AREA "SIGNAL_SHORTCUT_OBJECT_AREA"
+#define SIGNAL_SHORTCUT_RULERS_VISIBLED "SIGNAL_SHORTCUT_RULERS_VISIBLED"
 
 /**
  * emited when shortcut is pressed.
diff --git a/src/bin/ui/menu.c b/src/bin/ui/menu.c
index 4832912..c9999b5 100644
--- a/src/bin/ui/menu.c
+++ b/src/bin/ui/menu.c
@@ -153,7 +153,7 @@ _menu_cb(void *data __UNUSED__,
          evas_object_smart_callback_call(ap.win, SIGNAL_SHORTCUT_FILL, NULL);
          break;
       case MENU_VIEW_RULERS_SHOW:
-         evas_object_smart_callback_call(tabs_current_workspace_get(), 
"ruler,toggle", strdup("rulers"));
+         evas_object_smart_callback_call(ap.win, 
SIGNAL_SHORTCUT_RULERS_VISIBLED, NULL);
          break;
       case MENU_VIEW_RULERS_ABS:
          evas_object_smart_callback_call(tabs_current_workspace_get(), 
"ruler,toggle", strdup("abs"));
diff --git a/src/bin/ui/tabs.c b/src/bin/ui/tabs.c
index c8ff9cc..a5dd889 100644
--- a/src/bin/ui/tabs.c
+++ b/src/bin/ui/tabs.c
@@ -820,6 +820,20 @@ _shortcut_object_area_cb(void *data __UNUSED__,
      }
 }
 
+static void
+_shortcut_rulers_visibled_cb(void *data __UNUSED__,
+                             Evas_Object *obj __UNUSED__,
+                             void *event_info __UNUSED__)
+{
+   Eina_Bool visible;
+
+   if (tabs.current_workspace)
+     {
+        visible = workspace_rulers_visibled_get(tabs.current_workspace);
+        workspace_rulers_visibled_set(tabs.current_workspace, !visible);
+     }
+}
+
 Evas_Object *
 tabs_add(void)
 {
@@ -945,6 +959,7 @@ tabs_add(void)
    evas_object_smart_callback_add(ap.win, SIGNAL_SHORTCUT_FIT, 
_shortcut_fit_cb, NULL);
    evas_object_smart_callback_add(ap.win, SIGNAL_SHORTCUT_FILL, 
_shortcut_fill_cb, NULL);
    evas_object_smart_callback_add(ap.win, SIGNAL_SHORTCUT_OBJECT_AREA, 
_shortcut_object_area_cb, NULL);
+   evas_object_smart_callback_add(ap.win, SIGNAL_SHORTCUT_RULERS_VISIBLED, 
_shortcut_rulers_visibled_cb, NULL);
    return tabs.layout;
 }
 
diff --git a/src/bin/ui/workspace/workspace.c b/src/bin/ui/workspace/workspace.c
index c7c57d5..c2a46ec 100644
--- a/src/bin/ui/workspace/workspace.c
+++ b/src/bin/ui/workspace/workspace.c
@@ -60,6 +60,7 @@ struct _Scroll_Area {
    Evas_Object *content; /* for normal mode - groupview, for demo - elm widget 
*/
    Ruler ruler_v;
    Ruler ruler_h;
+   Eina_Bool rulers_visibled : 1;
 };
 typedef struct _Scroll_Area Scroll_Area;
 
@@ -815,6 +816,8 @@ workspace_add(Evas_Object *parent, Group *group)
    wd->code.size = -1;
    wd->group = group;
    wd->mode = MODE_NORMAL;
+   wd->normal.rulers_visibled = true;
+   wd->demo.rulers_visibled = true;
 
    wd->toolbar.layout = elm_layout_add(wd->panes);
    elm_layout_theme_set(wd->toolbar.layout, "layout", "workspace", "toolbar");
@@ -1297,3 +1300,27 @@ workspace_all_parts_showhide_request(Evas_Object *obj)
 
    group_navigator_all_parts_showhide_request(wd->group_navi);
 }
+
+void
+workspace_rulers_visibled_set(Evas_Object *obj, Eina_Bool visible)
+{
+   Scroll_Area *area;
+   WS_DATA_GET(obj);
+
+   area = _scroll_area_get(wd);
+   area->rulers_visibled = visible;
+   if (visible)
+     elm_layout_signal_emit(area->layout, "elm,state,rulers,show", "eflete");
+   else
+     elm_layout_signal_emit(area->layout, "elm,state,rulers,hide", "eflete");
+}
+
+Eina_Bool
+workspace_rulers_visibled_get(Evas_Object *obj)
+{
+   Scroll_Area *area;
+   WS_DATA_GET(obj);
+
+   area = _scroll_area_get(wd);
+   return area->rulers_visibled;
+}
diff --git a/src/bin/ui/workspace/workspace.h b/src/bin/ui/workspace/workspace.h
index 2af77ec..d60e956 100644
--- a/src/bin/ui/workspace/workspace.h
+++ b/src/bin/ui/workspace/workspace.h
@@ -376,4 +376,10 @@ workspace_part_showhide_request(Evas_Object *obj);
 void
 workspace_all_parts_showhide_request(Evas_Object *obj);
 
+void
+workspace_rulers_visibled_set(Evas_Object *obj, Eina_Bool visible);
+
+Eina_Bool
+workspace_rulers_visibled_get(Evas_Object *obj);
+
 #endif /* WORKSPACE_H */

-- 


Reply via email to