hermet pushed a commit to branch master.

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

commit 64f7cccd5f4171ce0d43f4dd127ddeba3a6a200c
Author: ChunEon Park <her...@hermet.pe.kr>
Date:   Sat Aug 9 14:29:51 2014 +0900

    template: code refactoring.
    
    spllit out the template functions from edc_editor.
---
 src/bin/auto_comp.c      |   2 +-
 src/bin/edc_editor.c     | 198 ++++++-----------------------------------------
 src/bin/edc_parser.c     |   4 +-
 src/bin/main.c           |   8 +-
 src/bin/search.c         |   4 +-
 src/bin/template.c       | 177 +++++++++++++++++++++++++++++++++++++++++-
 src/include/edc_editor.h |   4 +-
 src/include/edc_parser.h |   2 +-
 src/include/template.h   |   4 +-
 9 files changed, 214 insertions(+), 189 deletions(-)

diff --git a/src/bin/auto_comp.c b/src/bin/auto_comp.c
index 56d4bf9..8bd05eb 100644
--- a/src/bin/auto_comp.c
+++ b/src/bin/auto_comp.c
@@ -541,7 +541,7 @@ autocomp_key_event_hook(const char *key)
       {
          insert_completed_text(ad);
          queue_reset(ad);
-         edit_syntax_color_partial_apply(ad->ed);
+         edit_syntax_color_partial_apply(ad->ed, -1);
          return EINA_TRUE;
       }
 
diff --git a/src/bin/edc_editor.c b/src/bin/edc_editor.c
index fd48fda..91e466c 100644
--- a/src/bin/edc_editor.c
+++ b/src/bin/edc_editor.c
@@ -1,6 +1,5 @@
 #include <Elementary.h>
 #include "common.h"
-#include "template_code.h"
 
 //FIXME: Make flexible
 const int MAX_LINE_DIGIT_CNT = 10;
@@ -373,183 +372,11 @@ edit_syntax_color_full_apply(edit_data *ed, Eina_Bool 
force)
 }
 
 void
-edit_syntax_color_partial_apply(edit_data *ed)
+edit_syntax_color_partial_apply(edit_data *ed, double interval)
 {
    if (ed->syntax_color_lock > 0) ed->syntax_color_lock = 0;
-   syntax_color_partial_update(ed, SYNTAX_COLOR_DEFAULT_TIME);
-}
-
-void
-edit_template_insert(edit_data *ed)
-{
-   const char *paragh = parser_paragh_name_get(ed->pd, ed->en_edit);
-   if (!paragh) return;
-
-   if (!strcmp(paragh, "parts"))
-     {
-        edit_template_part_insert(ed, EDJE_PART_TYPE_IMAGE);
-        return;
-     }
-
-   int line_cnt;
-   char **t = NULL;
-   char buf[64];
-   char buf2[12];
-
-   if (!strcmp(paragh, "part"))
-     {
-        line_cnt = TEMPLATE_DESC_LINE_CNT;
-        t = (char **) &TEMPLATE_DESC;
-        strcpy(buf2, "Description");
-     }
-   else if (!strcmp(paragh, "programs"))
-     {
-        line_cnt = TEMPLATE_PROG_LINE_CNT;
-        t = (char **) &TEMPLATE_PROG;
-        strcpy(buf2, "Program");
-     }
-   else if (!strcmp(paragh, "images"))
-     {
-        line_cnt = TEMPLATE_IMG_LINE_CNT;
-        t = (char **) &TEMPLATE_IMG;
-        strcpy(buf2, "Image File");
-     }
-   else if (!strcmp(paragh, "collections"))
-     {
-        line_cnt = TEMPLATE_GROUP_LINE_CNT;
-        t = (char **) &TEMPLATE_GROUP;
-        strcpy(buf2, "Group");
-     }
-
-   if (!t)
-     {
-        stats_info_msg_update("Can't insert template code here. Move the 
cursor inside the \"Collections,Images,Parts,Part,Programs\" scope.");
-        return;
-     }
-
-   int cursor_pos = elm_entry_cursor_pos_get(ed->en_edit);
-   elm_entry_cursor_line_begin_set(ed->en_edit);
-   int cursor_pos1 = elm_entry_cursor_pos_get(ed->en_edit);
-   int space = indent_space_get(syntax_indent_data_get(ed->sh), ed->en_edit);
-
-   //Alloc Empty spaces
-   char *p = alloca(space + 1);
-   memset(p, ' ', space);
-   p[space] = '\0';
-
-   int i;
-   for (i = 0; i < (line_cnt - 1); i++)
-     {
-        elm_entry_entry_insert(ed->en_edit, p);
-        elm_entry_entry_insert(ed->en_edit, t[i]);
-     }
-   edit_line_increase(ed, (line_cnt -1));
-   elm_entry_entry_insert(ed->en_edit, p);
-   elm_entry_entry_insert(ed->en_edit, t[i]);
-
-   int cursor_pos2 = elm_entry_cursor_pos_get(ed->en_edit);
-   redoundo_entry_region_push(ed->rd, cursor_pos1, cursor_pos2);
-
-   elm_entry_cursor_pos_set(ed->en_edit, cursor_pos);
-
-   syntax_color_partial_update(ed, 0);
-   snprintf(buf, sizeof(buf), "Template code inserted. (%s)", buf2);
-   stats_info_msg_update(buf);
-}
-
-int
-edit_cur_indent_depth_get(edit_data *ed)
-{
-   return indent_space_get(syntax_indent_data_get(ed->sh), ed->en_edit);
-}
-
-void
-edit_template_part_insert(edit_data *ed, Edje_Part_Type type)
-{
-   if (type == EDJE_PART_TYPE_NONE) return;
-
-   int cursor_pos = elm_entry_cursor_pos_get(ed->en_edit);
-   elm_entry_cursor_line_begin_set(ed->en_edit);
-   int cursor_pos1 = elm_entry_cursor_pos_get(ed->en_edit);
-   int space = indent_space_get(syntax_indent_data_get(ed->sh), ed->en_edit);
-
-   //Alloc Empty spaces
-   char *p = alloca(space + 1);
-   memset(p, ' ', space);
-   p[space] = '\0';
-
-   int line_cnt;
-   char **t;
-   char buf[64];
-   char part[20];
-
-   switch(type)
-     {
-        case EDJE_PART_TYPE_RECTANGLE:
-           line_cnt = TEMPLATE_PART_RECT_LINE_CNT;
-           t = (char **) &TEMPLATE_PART_RECT;
-           strcpy(part, "Rect");
-           break;
-        case EDJE_PART_TYPE_TEXT:
-           line_cnt = TEMPLATE_PART_TEXT_LINE_CNT;
-           t = (char **) &TEMPLATE_PART_TEXT;
-           strcpy(part, "Text");
-           break;
-        case EDJE_PART_TYPE_SWALLOW:
-           line_cnt = TEMPLATE_PART_SWALLOW_LINE_CNT;
-           t = (char **) &TEMPLATE_PART_SWALLOW;
-           strcpy(part, "Swallow");
-           break;
-        case EDJE_PART_TYPE_TEXTBLOCK:
-           line_cnt = TEMPLATE_PART_TEXTBLOCK_LINE_CNT;
-           t = (char **) &TEMPLATE_PART_TEXTBLOCK;
-           strcpy(part, "Textblock");
-           break;
-        case EDJE_PART_TYPE_SPACER:
-           line_cnt = TEMPLATE_PART_SPACER_LINE_CNT;
-           t = (char **) &TEMPLATE_PART_SPACER;
-           strcpy(part, "Spacer");
-           break;
-        case EDJE_PART_TYPE_IMAGE:
-        case EDJE_PART_TYPE_NONE:
-        case EDJE_PART_TYPE_GRADIENT:
-        case EDJE_PART_TYPE_GROUP:
-        case EDJE_PART_TYPE_BOX:
-        case EDJE_PART_TYPE_TABLE:
-        case EDJE_PART_TYPE_EXTERNAL:
-        case EDJE_PART_TYPE_PROXY:
-        case EDJE_PART_TYPE_LAST:
-           line_cnt = TEMPLATE_PART_IMAGE_LINE_CNT;
-           t = (char **) &TEMPLATE_PART_IMAGE;
-           strcpy(part, "Image");
-           break;
-     }
-
-   elm_entry_entry_insert(ed->en_edit, p);
-   const char *first_line = template_part_first_line_get();
-   elm_entry_entry_insert(ed->en_edit, first_line);
-   edit_line_increase(ed, 1);
-
-   int i;
-   for (i = 0; i < (line_cnt - 1); i++)
-     {
-        elm_entry_entry_insert(ed->en_edit, p);
-        elm_entry_entry_insert(ed->en_edit, t[i]);
-        //Incease line by (line count - 1)
-        edit_line_increase(ed, 1);
-     }
-
-   elm_entry_entry_insert(ed->en_edit, p);
-   elm_entry_entry_insert(ed->en_edit, t[i]);
-
-   int cursor_pos2 = elm_entry_cursor_pos_get(ed->en_edit);
-   redoundo_entry_region_push(ed->rd, cursor_pos1, cursor_pos2);
-
-   elm_entry_cursor_pos_set(ed->en_edit, cursor_pos);
-
-   syntax_color_partial_update(ed, 0);
-   snprintf(buf, sizeof(buf), "Template code inserted. (%s Part)", part);
-   stats_info_msg_update(buf);
+   if (interval < 0) syntax_color_partial_update(ed, 
SYNTAX_COLOR_DEFAULT_TIME);
+   else syntax_color_partial_update(ed, interval);
 }
 
 static void
@@ -875,6 +702,12 @@ edit_line_delete(edit_data *ed)
    edit_changed_set(ed, EINA_TRUE);
 }
 
+int
+edit_cur_indent_depth_get(edit_data *ed)
+{
+   return indent_space_get(syntax_indent_data_get(ed->sh), ed->en_edit);
+}
+
 static void
 edit_redoundo(edit_data *ed, Eina_Bool undo)
 {
@@ -1261,6 +1094,12 @@ edit_edc_reload(edit_data *ed, const char *edc_path)
 }
 
 Eina_Stringshare *
+edit_cur_paragh_get(edit_data *ed)
+{
+   return parser_paragh_name_get(ed->pd, ed->en_edit);
+}
+
+Eina_Stringshare *
 edit_cur_prog_name_get(edit_data *ed)
 {
    return parser_cur_name_fast_get(ed->en_edit, "program");
@@ -1341,3 +1180,10 @@ edit_line_decrease(edit_data *ed, int cnt)
    if (ed->line_max < 1) line_init(ed);
    stats_line_num_update(ed->cur_line, ed->line_max);
 }
+
+void
+edit_redoundo_region_push(edit_data *ed, int cursor_pos1, int cursor_pos2)
+{
+   redoundo_entry_region_push(ed->rd, cursor_pos1, cursor_pos2);
+}
+
diff --git a/src/bin/edc_parser.c b/src/bin/edc_parser.c
index 659c5fc..026b859 100644
--- a/src/bin/edc_parser.c
+++ b/src/bin/edc_parser.c
@@ -570,7 +570,7 @@ type_init_thread_cancel(void *data, Ecore_Thread *thread 
EINA_UNUSED)
    free(td);
 }
 
-const char *
+Eina_Stringshare *
 parser_paragh_name_get(parser_data *pd EINA_UNUSED, Evas_Object *entry)
 {
    //FIXME: list up groups
@@ -650,7 +650,7 @@ parser_paragh_name_get(parser_data *pd EINA_UNUSED, 
Evas_Object *entry)
           {
              group_info *gi = &group_list[i];
              if (!strncmp(cur, gi->str, gi->len))
-               return gi->str;
+               return eina_stringshare_add_length(gi->str, gi->len);
           }
      }
 
diff --git a/src/bin/main.c b/src/bin/main.c
index 0a0df11..9a92346 100644
--- a/src/bin/main.c
+++ b/src/bin/main.c
@@ -70,7 +70,7 @@ auto_indentation_toggle()
 }
 
 static Eina_Bool
-template_insert(app_data *ad, const char *key)
+template_insert_patch(app_data *ad, const char *key)
 {
    Edje_Part_Type type;
 
@@ -101,7 +101,7 @@ template_insert(app_data *ad, const char *key)
    else
      type = EDJE_PART_TYPE_NONE;
 
-   edit_template_part_insert(ad->ed, type);
+   template_part_insert(ad->ed, type);
 
    return ECORE_CALLBACK_DONE;
 }
@@ -150,7 +150,7 @@ ctrl_func(app_data *ad, const char *key)
    //Template Code
    if (!strcmp(key, "t") || !strcmp(key, "T"))
      {
-        edit_template_insert(ad->ed);
+        template_insert(ad->ed);
         return ECORE_CALLBACK_DONE;
      }
    //Full Edit View
@@ -198,7 +198,7 @@ main_key_down_cb(void *data, int type EINA_UNUSED, void *ev)
 
    if (ad->ctrl_pressed)
      {
-        if (ad->shift_pressed) return template_insert(ad, event->key);
+        if (ad->shift_pressed) return template_insert_patch(ad, event->key);
         else return ctrl_func(ad, event->key);
      }
 
diff --git a/src/bin/search.c b/src/bin/search.c
index bf652eb..3d270da 100644
--- a/src/bin/search.c
+++ b/src/bin/search.c
@@ -298,7 +298,7 @@ win_unfocused_cb(void *data EINA_UNUSED, Evas_Object *obj 
EINA_UNUSED,
                  void *event_info EINA_UNUSED)
 {
    search_data *sd = g_sd;
-   edit_syntax_color_partial_apply(sd->ed);
+   edit_syntax_color_partial_apply(sd->ed, -1);
    sd->syntax_color--;
 }
 
@@ -427,7 +427,7 @@ search_close(void)
 
    while (sd->syntax_color > 0)
      {
-        edit_syntax_color_partial_apply(sd->ed);
+        edit_syntax_color_partial_apply(sd->ed, -1);
         sd->syntax_color--;
      }
 
diff --git a/src/bin/template.c b/src/bin/template.c
index d44a396..951ac07 100644
--- a/src/bin/template.c
+++ b/src/bin/template.c
@@ -1,10 +1,11 @@
 #include <Elementary.h>
 #include "common.h"
+#include "template_code.h"
 
 const char *NAME_SEED = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
 const int NAME_SEED_LEN = 52;
 
-const char *
+static const char *
 template_part_first_line_get(void)
 {
    static char buf[40];
@@ -18,3 +19,177 @@ template_part_first_line_get(void)
 
    return (const char *) buf;
 }
+
+void
+template_insert(edit_data *ed)
+{
+   Evas_Object *entry = edit_entry_get(ed);
+   Eina_Stringshare *paragh = edit_cur_paragh_get(ed);
+   if (!paragh) return;
+
+   if (!strcmp(paragh, "parts"))
+     {
+        template_part_insert(ed, EDJE_PART_TYPE_IMAGE);
+        goto end;
+     }
+
+   int line_cnt;
+   char **t = NULL;
+   char buf[64];
+   char buf2[12];
+
+   if (!strcmp(paragh, "part"))
+     {
+        line_cnt = TEMPLATE_DESC_LINE_CNT;
+        t = (char **) &TEMPLATE_DESC;
+        strcpy(buf2, "Description");
+     }
+   else if (!strcmp(paragh, "programs"))
+     {
+        line_cnt = TEMPLATE_PROG_LINE_CNT;
+        t = (char **) &TEMPLATE_PROG;
+        strcpy(buf2, "Program");
+     }
+   else if (!strcmp(paragh, "images"))
+     {
+        line_cnt = TEMPLATE_IMG_LINE_CNT;
+        t = (char **) &TEMPLATE_IMG;
+        strcpy(buf2, "Image File");
+     }
+   else if (!strcmp(paragh, "collections"))
+     {
+        line_cnt = TEMPLATE_GROUP_LINE_CNT;
+        t = (char **) &TEMPLATE_GROUP;
+        strcpy(buf2, "Group");
+     }
+
+   if (!t)
+     {
+        stats_info_msg_update("Can't insert template code here. Move the 
cursor inside the \"Collections,Images,Parts,Part,Programs\" scope.");
+        goto end;
+     }
+
+   int cursor_pos = elm_entry_cursor_pos_get(entry);
+   elm_entry_cursor_line_begin_set(entry);
+   int cursor_pos1 = elm_entry_cursor_pos_get(entry);
+   int space = edit_cur_indent_depth_get(ed);
+
+   //Alloc Empty spaces
+   char *p = alloca(space + 1);
+   memset(p, ' ', space);
+   p[space] = '\0';
+
+   int i;
+   for (i = 0; i < (line_cnt - 1); i++)
+     {
+        elm_entry_entry_insert(entry, p);
+        elm_entry_entry_insert(entry, t[i]);
+     }
+   edit_line_increase(ed, (line_cnt -1));
+   elm_entry_entry_insert(entry, p);
+   elm_entry_entry_insert(entry, t[i]);
+
+   int cursor_pos2 = elm_entry_cursor_pos_get(entry);
+   edit_redoundo_region_push(ed, cursor_pos1, cursor_pos2);
+
+   elm_entry_cursor_pos_set(entry, cursor_pos);
+
+   edit_syntax_color_partial_apply(ed, 0);
+   snprintf(buf, sizeof(buf), "Template code inserted. (%s)", buf2);
+   stats_info_msg_update(buf);
+
+end:
+   eina_stringshare_del(paragh);
+}
+
+void
+template_part_insert(edit_data *ed, Edje_Part_Type type)
+{
+   if (type == EDJE_PART_TYPE_NONE) return;
+
+   Evas_Object *entry = edit_entry_get(ed);
+
+   int cursor_pos = elm_entry_cursor_pos_get(entry);
+   elm_entry_cursor_line_begin_set(entry);
+   int cursor_pos1 = elm_entry_cursor_pos_get(entry);
+   int space = edit_cur_indent_depth_get(ed);
+
+   //Alloc Empty spaces
+   char *p = alloca(space + 1);
+   memset(p, ' ', space);
+   p[space] = '\0';
+
+   int line_cnt;
+   char **t;
+   char buf[64];
+   char part[20];
+
+   switch(type)
+     {
+        case EDJE_PART_TYPE_RECTANGLE:
+           line_cnt = TEMPLATE_PART_RECT_LINE_CNT;
+           t = (char **) &TEMPLATE_PART_RECT;
+           strcpy(part, "Rect");
+           break;
+        case EDJE_PART_TYPE_TEXT:
+           line_cnt = TEMPLATE_PART_TEXT_LINE_CNT;
+           t = (char **) &TEMPLATE_PART_TEXT;
+           strcpy(part, "Text");
+           break;
+        case EDJE_PART_TYPE_SWALLOW:
+           line_cnt = TEMPLATE_PART_SWALLOW_LINE_CNT;
+           t = (char **) &TEMPLATE_PART_SWALLOW;
+           strcpy(part, "Swallow");
+           break;
+        case EDJE_PART_TYPE_TEXTBLOCK:
+           line_cnt = TEMPLATE_PART_TEXTBLOCK_LINE_CNT;
+           t = (char **) &TEMPLATE_PART_TEXTBLOCK;
+           strcpy(part, "Textblock");
+           break;
+        case EDJE_PART_TYPE_SPACER:
+           line_cnt = TEMPLATE_PART_SPACER_LINE_CNT;
+           t = (char **) &TEMPLATE_PART_SPACER;
+           strcpy(part, "Spacer");
+           break;
+        case EDJE_PART_TYPE_IMAGE:
+        case EDJE_PART_TYPE_NONE:
+        case EDJE_PART_TYPE_GRADIENT:
+        case EDJE_PART_TYPE_GROUP:
+        case EDJE_PART_TYPE_BOX:
+        case EDJE_PART_TYPE_TABLE:
+        case EDJE_PART_TYPE_EXTERNAL:
+        case EDJE_PART_TYPE_PROXY:
+        case EDJE_PART_TYPE_LAST:
+           line_cnt = TEMPLATE_PART_IMAGE_LINE_CNT;
+           t = (char **) &TEMPLATE_PART_IMAGE;
+           strcpy(part, "Image");
+           break;
+     }
+
+   elm_entry_entry_insert(entry, p);
+   const char *first_line = template_part_first_line_get();
+   elm_entry_entry_insert(entry, first_line);
+   edit_line_increase(ed, 1);
+
+   int i;
+   for (i = 0; i < (line_cnt - 1); i++)
+     {
+        elm_entry_entry_insert(entry, p);
+        elm_entry_entry_insert(entry, t[i]);
+        //Incease line by (line count - 1)
+        edit_line_increase(ed, 1);
+     }
+
+   elm_entry_entry_insert(entry, p);
+   elm_entry_entry_insert(entry, t[i]);
+
+   int cursor_pos2 = elm_entry_cursor_pos_get(entry);
+   edit_redoundo_region_push(ed, cursor_pos1, cursor_pos2);
+
+   elm_entry_cursor_pos_set(entry, cursor_pos);
+
+   edit_syntax_color_partial_apply(ed, 0);
+   snprintf(buf, sizeof(buf), "Template code inserted. (%s Part)", part);
+   stats_info_msg_update(buf);
+}
+
diff --git a/src/include/edc_editor.h b/src/include/edc_editor.h
index 44d2219..89b1bad 100644
--- a/src/include/edc_editor.h
+++ b/src/include/edc_editor.h
@@ -19,11 +19,13 @@ void edit_line_delete(edit_data *ed);
 void edit_edc_reload(edit_data *ed, const char *edc_path);
 Eina_Stringshare *edit_cur_prog_name_get(edit_data *ed);
 Eina_Stringshare *edit_cur_part_name_get(edit_data *ed);
+Eina_Stringshare *edit_cur_paragh_get(edit_data *ed);
 int edit_max_line_get(edit_data *ed);
 void edit_goto(edit_data *ed, int line);
 void edit_syntax_color_full_apply(edit_data *ed, Eina_Bool force);
-void edit_syntax_color_partial_apply(edit_data *ed);
+void edit_syntax_color_partial_apply(edit_data *ed, double interval);
 Evas_Object * edit_entry_get(edit_data *ed);
 void edit_line_increase(edit_data *ed, int cnt);
 void edit_line_decrease(edit_data *ed, int cnt);
 int edit_cur_indent_depth_get(edit_data *ed);
+void edit_redoundo_region_push(edit_data *ed, int cursor_pos1, int 
cursor_pos2);
diff --git a/src/include/edc_parser.h b/src/include/edc_parser.h
index f8b2def..26edf40 100644
--- a/src/include/edc_parser.h
+++ b/src/include/edc_parser.h
@@ -14,7 +14,7 @@ void parser_cur_group_name_get(parser_data *pd, Evas_Object 
*entry, void (*cb)(v
 Eina_Stringshare *parser_cur_name_fast_get(Evas_Object *entry, const char 
*scope);
 Eina_Bool parser_type_name_compare(parser_data *pd, const char *str);
 attr_value *parser_attribute_get(parser_data *pd, const char *text, const char 
*cur);
-const char * parser_paragh_name_get(parser_data *pd, Evas_Object *entry);
+Eina_Stringshare *parser_paragh_name_get(parser_data *pd, Evas_Object *entry);
 char *parser_name_get(parser_data *pd, const char *cur);
 void parser_cancel(parser_data *pd);
 int parser_line_cnt_get(parser_data *pd EINA_UNUSED, const char *src);
diff --git a/src/include/template.h b/src/include/template.h
index 61c4216..0917da0 100644
--- a/src/include/template.h
+++ b/src/include/template.h
@@ -1 +1,3 @@
-const char *template_part_first_line_get(void);
+void template_insert(edit_data *ed);
+void template_part_insert(edit_data *ed, Edje_Part_Type type);
+

-- 


Reply via email to