rimmed pushed a commit to branch master.

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

commit f20bfdbc4219d732c98e01bfd79cca2d7a139a67
Author: Vyacheslav Reutskiy <v.reuts...@samsung.com>
Date:   Wed Apr 6 13:19:27 2016 +0300

    workspace: implement the scale switcher for rulers
    
    Change-Id: Ie4afa352ff29f18b06b131ccc88848eab2ac44fe
---
 src/bin/ui/workspace/workspace.c | 61 ++++++++++++++++++++++++++++++++++------
 1 file changed, 53 insertions(+), 8 deletions(-)

diff --git a/src/bin/ui/workspace/workspace.c b/src/bin/ui/workspace/workspace.c
index 9ac8c60..3139eb6 100644
--- a/src/bin/ui/workspace/workspace.c
+++ b/src/bin/ui/workspace/workspace.c
@@ -578,11 +578,56 @@ _menu_rulers_visible(void *data __UNUSED__,
    evas_object_smart_callback_call(ap.win, SIGNAL_SHORTCUT_RULERS_VISIBLED, 
NULL);
 }
 
-#define MENU_ITEM_ADD(MENU, PARENT, ICON, LABEL, CALLBACK, SHORTCUT, WIDGET) \
+static void
+_menu_ruler_abs(void *data,
+                Evas_Object *obj __UNUSED__,
+                void *event_info __UNUSED__)
+{
+   Workspace_Data *wd = data;
+   Scroll_Area *area;
+
+   area = _scroll_area_get(wd);
+   ewe_ruler_scale_visible_set(area->ruler_h.obj, NULL, true);
+   ewe_ruler_scale_visible_set(area->ruler_h.obj, area->ruler_h.scale_rel, 
false);
+   ewe_ruler_scale_visible_set(area->ruler_v.obj, NULL, true);
+   ewe_ruler_scale_visible_set(area->ruler_v.obj, area->ruler_v.scale_rel, 
false);
+}
+
+static void
+_menu_ruler_rel(void *data,
+                Evas_Object *obj __UNUSED__,
+                void *event_info __UNUSED__)
+{
+   Workspace_Data *wd = data;
+   Scroll_Area *area;
+
+   area = _scroll_area_get(wd);
+   ewe_ruler_scale_visible_set(area->ruler_h.obj, NULL, false);
+   ewe_ruler_scale_visible_set(area->ruler_h.obj, area->ruler_h.scale_rel, 
true);
+   ewe_ruler_scale_visible_set(area->ruler_v.obj, NULL, false);
+   ewe_ruler_scale_visible_set(area->ruler_v.obj, area->ruler_v.scale_rel, 
true);
+}
+
+static void
+_menu_rulers_both(void *data,
+                  Evas_Object *obj __UNUSED__,
+                  void *event_info __UNUSED__)
+{
+   Workspace_Data *wd = data;
+   Scroll_Area *area;
+
+   area = _scroll_area_get(wd);
+   ewe_ruler_scale_visible_set(area->ruler_h.obj, NULL, true);
+   ewe_ruler_scale_visible_set(area->ruler_h.obj, area->ruler_h.scale_rel, 
true);
+   ewe_ruler_scale_visible_set(area->ruler_v.obj, NULL, true);
+   ewe_ruler_scale_visible_set(area->ruler_v.obj, area->ruler_v.scale_rel, 
true);
+}
+
+#define MENU_ITEM_ADD(MENU, PARENT, ICON, LABEL, CALLBACK, SHORTCUT, WIDGET, 
DATA) \
    do \
      { \
         Elm_Object_Item *item; \
-        item = elm_menu_item_add(MENU, PARENT, ICON, LABEL, CALLBACK, NULL); \
+        item = elm_menu_item_add(MENU, PARENT, ICON, LABEL, CALLBACK, DATA); \
         if (SHORTCUT || WIDGET) \
           { \
              Evas_Object *item_obj = elm_menu_item_object_get(item);\
@@ -621,18 +666,18 @@ static void
 _menu_add(Workspace_Data *wd)
 {
    wd->menu.obj = elm_menu_add(ap.win);
-   MENU_ITEM_ADD(wd->menu.obj, NULL, NULL, _("Undo"), _menu_undo, "Ctrl-Z", 
NULL);
-   MENU_ITEM_ADD(wd->menu.obj, NULL, NULL, _("Redo"), _menu_redo, "Ctrl-Y", 
NULL);
+   MENU_ITEM_ADD(wd->menu.obj, NULL, NULL, _("Undo"), _menu_undo, "Ctrl-Z", 
NULL, NULL);
+   MENU_ITEM_ADD(wd->menu.obj, NULL, NULL, _("Redo"), _menu_redo, "Ctrl-Y", 
NULL, NULL);
    elm_menu_item_separator_add(wd->menu.obj, NULL);
-   MENU_ITEM_ADD(wd->menu.obj, NULL, NULL, _("Show rulers"), 
_menu_rulers_visible, NULL, NULL);
+   MENU_ITEM_ADD(wd->menu.obj, NULL, NULL, _("Show rulers"), 
_menu_rulers_visible, NULL, NULL, NULL);
 
    elm_menu_item_separator_add(wd->menu.obj, NULL);
    wd->menu.scale_abs = _radio_switcher_add(wd, NULL, NULL, 0, NULL);
-   MENU_ITEM_ADD(wd->menu.obj, NULL, NULL, _("Absolute scale"), 
_menu_rulers_visible, NULL, wd->menu.scale_abs);
+   MENU_ITEM_ADD(wd->menu.obj, NULL, NULL, _("Absolute scale"), 
_menu_ruler_abs, NULL, wd->menu.scale_abs, wd);
    wd->menu.scale_rel = _radio_switcher_add(wd, NULL, NULL, 1, 
wd->menu.scale_abs);
-   MENU_ITEM_ADD(wd->menu.obj, NULL, NULL, _("Relative scale"), 
_menu_rulers_visible, NULL, wd->menu.scale_rel);
+   MENU_ITEM_ADD(wd->menu.obj, NULL, NULL, _("Relative scale"), 
_menu_ruler_rel, NULL, wd->menu.scale_rel, wd);
    wd->menu.scale_both = _radio_switcher_add(wd, NULL, NULL, 2, 
wd->menu.scale_abs);
-   MENU_ITEM_ADD(wd->menu.obj, NULL, NULL, _("Both scales"), 
_menu_rulers_visible, NULL, wd->menu.scale_both);
+   MENU_ITEM_ADD(wd->menu.obj, NULL, NULL, _("Both scales"), 
_menu_rulers_both, NULL, wd->menu.scale_both, wd);
 }
 
 static void

-- 


Reply via email to