hermet pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=fd050aacf2bba472ed746662deefa11756e535fa

commit fd050aacf2bba472ed746662deefa11756e535fa
Author: Hermet Park <her...@hermet.pe.kr>
Date:   Wed Aug 3 19:35:04 2016 +0900

    Support individual group view scale.
    
    Now, groups keep their own view scale on their own contexts.
    This will help user simultaneous group editing.
---
 src/bin/config_data.c      | 26 --------------------------
 src/bin/live_edit.c        |  6 ++++--
 src/bin/main.c             | 21 ++++++++++++---------
 src/bin/statusbar.c        |  8 +++++---
 src/include/common.h       |  2 +-
 src/include/config_data.h  |  2 --
 src/lib/edj_mgr.c          | 18 ------------------
 src/lib/edj_viewer.c       | 18 +++++++++++++-----
 src/lib/enventor_private.h |  3 +--
 src/lib/enventor_smart.c   |  4 ++--
 10 files changed, 38 insertions(+), 70 deletions(-)

diff --git a/src/bin/config_data.c b/src/bin/config_data.c
index 89894ee..1c6836e 100644
--- a/src/bin/config_data.c
+++ b/src/bin/config_data.c
@@ -21,7 +21,6 @@ typedef struct config_s
 
    unsigned int version;
    float font_scale;
-   double view_scale;
    double editor_size;
    double console_size;
 
@@ -189,7 +188,6 @@ config_load(void)
         cd->fnt_path_list = NULL;
         cd->dat_path_list = NULL;
         cd->font_scale = 1;
-        cd->view_scale = 1;
         cd->view_size_w = 300;
         cd->view_size_h = 300;
         cd->win_size_w = WIN_DEFAULT_W;
@@ -299,8 +297,6 @@ eddc_init(void)
                                  EET_T_STRING);
    EET_DATA_DESCRIPTOR_ADD_BASIC(edd_base, config_data, "font_scale", 
font_scale,
                                  EET_T_FLOAT);
-   EET_DATA_DESCRIPTOR_ADD_BASIC(edd_base, config_data, "view_scale",
-                                 view_scale, EET_T_DOUBLE);
    EET_DATA_DESCRIPTOR_ADD_BASIC(edd_base, config_data, "editor_size",
                                  editor_size, EET_T_DOUBLE);
    EET_DATA_DESCRIPTOR_ADD_BASIC(edd_base, config_data, "console_size",
@@ -940,28 +936,6 @@ config_auto_indent_set(Eina_Bool auto_indent)
 }
 
 void
-config_view_scale_set(double view_scale)
-{
-   config_data *cd = g_cd;
-   EINA_SAFETY_ON_NULL_RETURN(cd);
-
-   if (view_scale > MAX_VIEW_SCALE)
-     view_scale = MAX_VIEW_SCALE;
-   else if (view_scale < MIN_VIEW_SCALE)
-     view_scale = MIN_VIEW_SCALE;
-   cd->view_scale = view_scale;
-}
-
-double
-config_view_scale_get(void)
-{
-   config_data *cd = g_cd;
-   EINA_SAFETY_ON_NULL_RETURN_VAL(cd, 0);
-
-   return cd->view_scale;
-}
-
-void
 config_view_size_set(Evas_Coord w, Evas_Coord h)
 {
    config_data *cd = g_cd;
diff --git a/src/bin/live_edit.c b/src/bin/live_edit.c
index 3926cea..7aa1a80 100644
--- a/src/bin/live_edit.c
+++ b/src/bin/live_edit.c
@@ -344,7 +344,8 @@ live_edit_symbol_set(live_data *ld)
    snprintf(buf, sizeof(buf), "%s_bg", LIVEEDIT_ITEMS[ld->type].name);
    Evas_Object *layout_symbol = elm_layout_add(ld->layout);
    elm_layout_file_set(layout_symbol, EDJE_PATH, buf);
-   elm_object_scale_set(layout_symbol, config_view_scale_get());
+   elm_object_scale_set(layout_symbol,
+                        
enventor_object_live_view_scale_get(base_enventor_get()));
    elm_object_part_content_set(ld->layout, "elm.swallow.symbol", 
layout_symbol);
 }
 
@@ -2184,7 +2185,8 @@ live_edit_update(void)
    Evas_Object *layout_symbol =
       elm_object_part_content_get(ld->layout, "elm.swallow.symbol");
    if (layout_symbol)
-     elm_object_scale_set(layout_symbol, config_view_scale_get());
+     elm_object_scale_set(layout_symbol,
+                          
enventor_object_live_view_scale_get(base_enventor_get()));
 
    live_edit_update_internal(ld);
 }
diff --git a/src/bin/main.c b/src/bin/main.c
index ad6629d..71966e0 100644
--- a/src/bin/main.c
+++ b/src/bin/main.c
@@ -36,7 +36,6 @@ enventor_common_setup(Enventor_Object *enventor)
    config_font_get(&font_name, &font_style);
    enventor_object_font_set(enventor, font_name, font_style);
    enventor_object_font_scale_set(enventor, config_font_scale_get());
-   enventor_object_live_view_scale_set(enventor, config_view_scale_get());
    enventor_object_auto_indent_set(enventor, config_auto_indent_get());
    enventor_object_auto_complete_set(enventor, config_auto_complete_get());
    enventor_object_smart_undo_redo_set(enventor, config_smart_undo_redo_get());
@@ -123,7 +122,6 @@ config_update_cb(void *data EINA_UNUSED)
 
    syntax_color_update(enventor);
 
-   stats_view_scale_update(config_view_scale_get());
    base_tools_toggle(EINA_FALSE);
    base_statusbar_toggle(EINA_FALSE);
    base_console_auto_hide();
@@ -145,13 +143,14 @@ main_mouse_wheel_cb(void *data EINA_UNUSED, int type 
EINA_UNUSED, void *ev)
    if ((event->x >= x) && (event->x <= (x + w)) &&
        (event->y >= y) && (event->y <= (y + h)))
      {
-        double scale = config_view_scale_get();
+        double scale = 
enventor_object_live_view_scale_get(base_enventor_get());
 
         if (event->z < 0) scale += 0.05;
         else scale -= 0.05;
 
-        config_view_scale_set(scale);
-        scale = config_view_scale_get();
+        if (scale > MAX_VIEW_SCALE) scale = MAX_VIEW_SCALE;
+        else if (scale < MIN_VIEW_SCALE) scale = MIN_VIEW_SCALE;
+
         enventor_object_live_view_scale_set(base_enventor_get(), scale);
 
         //Just in live edit mode case.
@@ -414,23 +413,28 @@ enventor_cursor_line_changed_cb(void *data EINA_UNUSED,
 }
 
 static void
-enventor_cursor_group_changed_cb(void *data EINA_UNUSED,
-                                 Enventor_Object *obj EINA_UNUSED,
+enventor_cursor_group_changed_cb(void *data EINA_UNUSED, Enventor_Object *obj,
                                  void *event_info)
 {
    const char *group_name = event_info;
    stats_edc_group_update(group_name);
    base_edc_navigator_group_update();
 
-   //Set default view size if this view has no size.
+   //View Size
    int w, h;
    enventor_object_live_view_size_get(obj, &w, &h);
+
+   //Set default view size if this view has no size.
    if ((w == 0) && (h == 0))
      {
         config_view_size_get(&w, &h);
         enventor_object_live_view_size_set(obj, w, h);
      }
    stats_view_size_update(w, h);
+
+   //View Scale
+   double scale = enventor_object_live_view_scale_get(obj);
+   stats_view_scale_update(scale);
 }
 
 static void
@@ -845,7 +849,6 @@ statusbar_set()
    Evas_Object *obj = stats_init(base_layout_get());
    elm_object_part_content_set(base_layout_get(), "elm.swallow.statusbar", 
obj);
    base_statusbar_toggle(EINA_FALSE);
-   stats_view_scale_update(config_view_scale_get());
 }
 
 static void
diff --git a/src/bin/statusbar.c b/src/bin/statusbar.c
index feed2b2..9babdf6 100644
--- a/src/bin/statusbar.c
+++ b/src/bin/statusbar.c
@@ -37,8 +37,8 @@ view_scale_slider_changed_cb(void *data EINA_UNUSED, 
Evas_Object *obj,
 
    /* Here logic is mostly duplicated with main_mouse_wheel_cb() in main.c */
 
-   config_view_scale_set(rounded);
-   scale = config_view_scale_get();
+   if (scale > MAX_VIEW_SCALE) scale = MAX_VIEW_SCALE;
+   else if (scale < MIN_VIEW_SCALE) scale = MIN_VIEW_SCALE;
    enventor_object_live_view_scale_set(base_enventor_get(), scale);
 
    //Just in live edit mode case.
@@ -221,7 +221,8 @@ view_scale_btn_cb(void *data, Evas_Object *obj, void 
*event_info EINA_UNUSED)
    elm_slider_horizontal_set(slider, EINA_FALSE);
    elm_slider_inverted_set(slider, EINA_TRUE);
    elm_slider_min_max_set(slider, MIN_VIEW_SCALE, MAX_VIEW_SCALE);
-   elm_slider_value_set(slider, (double) config_view_scale_get());
+   elm_slider_value_set(slider,
+                        
enventor_object_live_view_scale_get(base_enventor_get()));
    evas_object_smart_callback_add(slider, "changed",
                                   view_scale_slider_changed_cb, sd);
 
@@ -364,6 +365,7 @@ stats_init(Evas_Object *parent)
 
    stats_cursor_pos_update(0, 0, 0, 0);
    stats_edc_group_update(NULL);
+   stats_view_scale_update(1.0);
 
    return layout;
 }
diff --git a/src/include/common.h b/src/include/common.h
index 8277cc4..546e308 100644
--- a/src/include/common.h
+++ b/src/include/common.h
@@ -57,7 +57,7 @@ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
 
 #define ROUNDING(x, dig) (floor((x) * pow(10, dig) + 0.5) / pow(10, dig))
 
-#define ENVENTOR_CONFIG_VERSION 11
+#define ENVENTOR_CONFIG_VERSION 12
 
 #define EVENT_KEY_MODIFIER_CHECK(NAME, MASK) \
   ((MASK & ECORE_EVENT_MODIFIER_##NAME) && \
diff --git a/src/include/config_data.h b/src/include/config_data.h
index 6c95118..ec7a702 100644
--- a/src/include/config_data.h
+++ b/src/include/config_data.h
@@ -47,8 +47,6 @@ void config_font_set(const char *font_name, const char 
*font_style);
 void config_font_get(const char **font_name, const char **font_style);
 void config_font_scale_set(float font_scale);
 float config_font_scale_get(void);
-void config_view_scale_set(double view_scale);
-double config_view_scale_get(void);
 Eina_Bool config_tools_get(void);
 void config_tools_set(Eina_Bool enabled);
 Eina_Bool config_config_get(void);
diff --git a/src/lib/edj_mgr.c b/src/lib/edj_mgr.c
index 6abcc79..50c4fc0 100644
--- a/src/lib/edj_mgr.c
+++ b/src/lib/edj_mgr.c
@@ -19,7 +19,6 @@ typedef struct edj_mgr_s
    edj_data *edj;
    Enventor_Object *enventor;
    Evas_Object *layout;
-   double view_scale;
 
    Eina_Bool reload_need : 1;
 } edj_mgr;
@@ -87,7 +86,6 @@ edj_mgr_init(Enventor_Object *enventor)
    elm_layout_file_set(layout, EDJE_PATH, "viewer_layout");
    em->enventor = enventor;
    em->layout = layout;
-   em->view_scale = 1;
 }
 
 void
@@ -169,7 +167,6 @@ edj_mgr_view_switch_to(view_data *vd)
 
    elm_object_part_content_set(em->layout, "elm.swallow.content",
                                view_obj_get(vd));
-   view_scale_set(vd, em->view_scale);
    //Switching effect
    if (prev != view_obj_get(vd))
      {
@@ -224,21 +221,6 @@ edj_mgr_reload_need_get(void)
 }
 
 void
-edj_mgr_view_scale_set(double view_scale)
-{
-   edj_mgr *em = g_em;
-   em->view_scale = view_scale;
-   view_scale_set(VIEW_DATA, view_scale);
-}
-
-double
-edj_mgr_view_scale_get(void)
-{
-   edj_mgr *em = g_em;
-   return em->view_scale;
-}
-
-void
 edj_mgr_all_views_reload(void)
 {
    edj_mgr *em = g_em;
diff --git a/src/lib/edj_viewer.c b/src/lib/edj_viewer.c
index 6b22dd5..7015703 100644
--- a/src/lib/edj_viewer.c
+++ b/src/lib/edj_viewer.c
@@ -41,6 +41,7 @@ struct viewer_s
 
    /* view size configured by application */
    Evas_Coord_Size view_config_size;
+   double view_scale;
 
    //Keep the part info which state has been changed
    struct {
@@ -105,11 +106,9 @@ img_changed_cb(void *data, int type EINA_UNUSED, void 
*event)
 static void
 view_obj_min_update(view_data *vd)
 {
-   double scale = edj_mgr_view_scale_get();
-
-   double min_w = (double) vd->view_config_size.w * scale;
+   double min_w = (double) vd->view_config_size.w * vd->view_scale;
    if (1 > min_w) min_w = 1;
-   double min_h = (double) vd->view_config_size.h * scale;
+   double min_h = (double) vd->view_config_size.h * vd->view_scale;
    if (1 > min_h) min_h = 1;
 
    evas_object_size_hint_min_set(vd->layout, min_w, min_h);
@@ -568,7 +567,6 @@ view_obj_idler_cb(void *data)
    vd->base = base_create(vd->scroller);
 
    view_obj_create(vd);
-   view_scale_set(vd, edj_mgr_view_scale_get());
 
    event_layer_set(vd);
 
@@ -629,6 +627,7 @@ view_init(Enventor_Object *enventor, Enventor_Item *it, 
const char *group,
 
    vd->view_config_size.w = 0;
    vd->view_config_size.h = 0;
+   vd->view_scale = 1;
 
    return vd;
 }
@@ -773,6 +772,13 @@ view_data_get(view_data *vd)
    return vd->data;
 }
 
+double
+view_scale_get(view_data *vd)
+{
+   if (!vd) return 1.0;
+   return vd->view_scale;
+}
+
 void
 view_scale_set(view_data *vd, double scale)
 {
@@ -801,6 +807,8 @@ view_scale_set(view_data *vd, double scale)
 
    elm_scroller_region_show(vd->scroller, ((Evas_Coord) cx) - (sw / 2),
                             ((Evas_Coord) cy) - (sh / 2), sw, sh);
+
+   vd->view_scale = scale;
 }
 
 void
diff --git a/src/lib/enventor_private.h b/src/lib/enventor_private.h
index 7bec4fb..c9526d9 100644
--- a/src/lib/enventor_private.h
+++ b/src/lib/enventor_private.h
@@ -175,8 +175,6 @@ void edj_mgr_view_del(view_data *vd);
 void edj_mgr_reload_need_set(Eina_Bool reload);
 Eina_Bool edj_mgr_reload_need_get(void);
 void edj_mgr_clear(void);
-void edj_mgr_view_scale_set(double scale);
-double edj_mgr_view_scale_get(void);
 void edj_mgr_all_views_reload(void);
 
 
@@ -207,6 +205,7 @@ void view_programs_stop(view_data *vd);
 Eina_Stringshare *view_group_name_get(view_data *vd);
 void *view_data_get(view_data *vd);
 void view_scale_set(view_data *vd, double scale);
+double view_scale_get(view_data *vd);
 void view_size_get(view_data *vd, Evas_Coord *w, Evas_Coord *h);
 void view_size_set(view_data *vd, Evas_Coord w, Evas_Coord h);
 Eina_List *view_parts_list_get(view_data *vd);
diff --git a/src/lib/enventor_smart.c b/src/lib/enventor_smart.c
index 04ef34d..3678ee0 100644
--- a/src/lib/enventor_smart.c
+++ b/src/lib/enventor_smart.c
@@ -536,7 +536,7 @@ _enventor_object_live_view_scale_set(Eo *obj EINA_UNUSED,
                                      Enventor_Object_Data *pd EINA_UNUSED,
                                      double scale)
 {
-   edj_mgr_view_scale_set(scale);
+   view_scale_set(VIEW_DATA, scale);
 }
 
 EOLIAN static void
@@ -559,7 +559,7 @@ EOLIAN static double
 _enventor_object_live_view_scale_get(Eo *obj EINA_UNUSED,
                                      Enventor_Object_Data *pd EINA_UNUSED)
 {
-   return edj_mgr_view_scale_get();
+   return view_scale_get(VIEW_DATA);
 }
 
 EOLIAN static void

-- 


Reply via email to