hermet pushed a commit to branch master.

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

commit f36abe3d3cd91268810622ff5f9a2bce3b73d765
Author: Hermet Park <her...@hermet.pe.kr>
Date:   Tue May 17 23:32:34 2016 +0900

    edc_edit: code refactoring.
    
    font set for editor should be global.
    so, take care of this in enventor object data.
    
    This is a partial change for multiple edc editor.
---
 src/lib/edc_editor.c       | 39 ++++-----------------------------------
 src/lib/enventor_private.h |  3 +--
 src/lib/enventor_smart.c   | 27 ++++++++++++++++++++-------
 3 files changed, 25 insertions(+), 44 deletions(-)

diff --git a/src/lib/edc_editor.c b/src/lib/edc_editor.c
index 5ae3843..6ee2a19 100644
--- a/src/lib/edc_editor.c
+++ b/src/lib/edc_editor.c
@@ -55,8 +55,6 @@ struct editor_s
                         Eina_Stringshare *part_name, Eina_Stringshare 
*group_name);
    void *view_sync_cb_data;
    int select_pos;
-   const char *font_name;
-   const char *font_style;
    const char *error_target;
 
    Eina_Bool edit_changed : 1;
@@ -72,8 +70,6 @@ struct editor_s
 static Eina_Bool
 image_preview_show(edit_data *ed, char *cur, Evas_Coord x, Evas_Coord y);
 static void
-edit_font_apply(edit_data *ed, const char *font_name, const char *font_style);
-static void
 error_line_num_highlight(edit_data *ed);
 
 static void
@@ -153,20 +149,13 @@ entry_recover(edit_data *ed, int cursor_pos, int 
sel_cur_begin, int sel_cur_end)
    ed->on_select_recover = EINA_FALSE;
 }
 
-static void
-edit_font_apply(edit_data *ed, const char *font_name, const char *font_style)
+void
+edit_font_update(edit_data *ed)
 {
-   char *font = NULL;
-   if (font_name)
-     font = elm_font_fontconfig_name_get(font_name, font_style);
-   edje_text_class_set("enventor_entry", font, -100);
-   elm_font_fontconfig_name_free(font);
+  if (!ed) return;
 
    elm_entry_calc_force(ed->en_line);
-
-   int cursor_pos;
-   entry_recover_param_get(ed, &cursor_pos, NULL, NULL);
-   entry_recover(ed, cursor_pos, -1, -1);
+   elm_entry_calc_force(ed->en_edit);
 }
 
 static void
@@ -1450,9 +1439,6 @@ edit_term(edit_data *ed)
 {
    if (!ed) return;
 
-   if (ed->font_name) eina_stringshare_del(ed->font_name);
-   if (ed->font_style) eina_stringshare_del(ed->font_style);
-
    syntax_helper *sh = ed->sh;
    parser_data *pd = ed->pd;
 
@@ -1497,23 +1483,6 @@ edit_font_scale_set(edit_data *ed, double font_scale)
    syntax_color_partial_update(ed, 0);
 }
 
-void
-edit_font_set(edit_data *ed, const char *font_name, const char *font_style)
-{
-   if (!ed) return;
-
-   eina_stringshare_replace(&ed->font_name, font_name);
-   eina_stringshare_replace(&ed->font_style, font_style);
-   edit_font_apply(ed, font_name, font_style);
-}
-
-void
-edit_font_get(edit_data *ed, const char **font_name, const char **font_style)
-{
-   if (font_name) *font_name = ed->font_name;
-   if (font_style) *font_style = ed->font_style;
-}
-
 Eina_Bool
 edit_load(edit_data *ed, const char *edc_path)
 {
diff --git a/src/lib/enventor_private.h b/src/lib/enventor_private.h
index 2245727..2096459 100644
--- a/src/lib/enventor_private.h
+++ b/src/lib/enventor_private.h
@@ -229,6 +229,7 @@ Evas_Object *ctxpopup_img_preview_create(edit_data*ed, 
const char *imgpath, Evas
 void ctxpopup_img_preview_reload(Evas_Object *ctxpopup, const char *imgpath);
 
 /* edc_editor */
+void edit_font_update(edit_data *ed);
 Eina_Bool edit_key_down_event_dispatch(edit_data *ed, const char *key);
 Eina_Bool edit_key_up_event_dispatch(edit_data *ed, const char *key);
 edit_data *edit_init(Enventor_Object *enventor);
@@ -244,8 +245,6 @@ void edit_new(edit_data* ed);
 void edit_view_sync_cb_set(edit_data *ed, void (*cb)(void *data, 
Eina_Stringshare *state_name, double state_value, Eina_Stringshare *part_name, 
Eina_Stringshare *group_name), void *data);
 void edit_view_sync(edit_data *ed);
 void edit_font_scale_set(edit_data *ed, double font_scale);
-void edit_font_set(edit_data *ed, const char *font_name, const char 
*font_style);
-void edit_font_get(edit_data *ed, const char **font_name, const char 
**font_style);
 void edit_line_delete(edit_data *ed);
 Eina_Stringshare *edit_cur_prog_name_get(edit_data *ed);
 Eina_Stringshare *edit_cur_part_name_get(edit_data *ed);
diff --git a/src/lib/enventor_smart.c b/src/lib/enventor_smart.c
index 6b79b3f..75fa42f 100644
--- a/src/lib/enventor_smart.c
+++ b/src/lib/enventor_smart.c
@@ -44,6 +44,8 @@ struct _Enventor_Object_Data
    Ecore_Event_Handler *key_up_handler;
 
    double font_scale;
+   Eina_Stringshare *font_name;
+   Eina_Stringshare *font_style;
 
    Eina_Bool dummy_parts : 1;
    Eina_Bool disabled : 1;
@@ -255,6 +257,8 @@ EOLIAN static void
 _enventor_object_evas_object_smart_del(Evas_Object *obj EINA_UNUSED,
                                        Enventor_Object_Data *pd)
 {
+   eina_stringshare_del(pd->font_name);
+   eina_stringshare_del(pd->font_style);   
    eina_stringshare_del(pd->group_name);
    autocomp_term();
    ecore_event_handler_del(pd->key_down_handler);
@@ -717,18 +721,29 @@ EOLIAN static void
 _enventor_object_font_set(Eo *obj EINA_UNUSED, Enventor_Object_Data *pd,
                           const char *font_name, const char *font_style)
 {
-   //Main Item
-   edit_font_set(pd->main_it.ed, font_name, font_style);
+   if (!font_name) return;
+
+   eina_stringshare_replace(&pd->font_name, font_name);
+   eina_stringshare_replace(&pd->font_style, font_style);
+
+   char *font = NULL;
+   if (font_name) font = elm_font_fontconfig_name_get(font_name, font_style);  
 
+   elm_config_font_overlay_set("enventor_entry", font, -100);
+   elm_config_font_overlay_apply();
+   elm_config_save();
 
-   //FIXME: store font_name, font_style...
+   elm_font_fontconfig_name_free(font);
+   
+   //Main Item
+   edit_font_update(pd->main_it.ed); 
 }
 
 EOLIAN static void
 _enventor_object_font_get(Eo *obj EINA_UNUSED, Enventor_Object_Data *pd,
                           const char **font_name, const char **font_style)
 {
-   //FIXME: ...
-   edit_font_get(pd->main_it.ed, font_name, font_style);
+   if (font_name) *font_name = pd->font_name;
+   if (font_style) *font_style = pd->font_style;
 }
 
 //TODO: Itemize
@@ -940,8 +955,6 @@ enventor_object_main_file_set(Enventor_Object *obj, const 
char *file)
      edit_disabled_set(pd->main_it.ed, EINA_TRUE);
 
    //FIXME: ...
-//   edit_smart_undo_redo_set(pd->main_it.ed, smart_undo_redo);
-//   edit_ctxpopup_enabled_set(pd->main_it.ed, ctxpopup);
 //   edit_font_set(pd->main_it.ed, font_name, font_style);
 //   edit_syntax_color_set(pd->main_it.ed, color_type, val);
 

-- 


Reply via email to