hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=e93ab4331924c2ea9c16aece4c5c10866b75f0ea
commit e93ab4331924c2ea9c16aece4c5c10866b75f0ea Author: Hermet Park <[email protected]> Date: Fri Jul 1 23:59:17 2016 +0900 ++ multi file editing feature implementation. --- src/bin/file_browser.c | 38 +++++++++++-- src/bin/globals.c | 4 +- src/bin/goto.c | 2 +- src/bin/search.c | 2 +- src/bin/setting.c | 3 +- src/lib/Enventor_Legacy.h | 5 +- src/lib/edc_editor.c | 15 +++--- src/lib/edc_parser.c | 132 ++++++++++++++++++++++++++++----------------- src/lib/edj_viewer.c | 1 - src/lib/enventor_private.h | 6 +-- src/lib/enventor_smart.c | 40 +++++++------- 11 files changed, 157 insertions(+), 91 deletions(-) diff --git a/src/bin/file_browser.c b/src/bin/file_browser.c index 7d5a737..5fa0fb7 100644 --- a/src/bin/file_browser.c +++ b/src/bin/file_browser.c @@ -73,19 +73,51 @@ gl_clicked_double_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, return; } - // Open a double clicked edc file. + /* Open a double clicked edc file. */ + + //skip non edc file. if (!eina_str_has_extension(file->path, "edc")) return; + int selected_file_len = strlen(file->path); - //Let's check if the file is already opened or not. + Enventor_Item *eit; + const char *it_file_path; + + //Case 1. main file. + + //FIXME: Probably file browser item may have boolean info for a collection + //data. and just check it is enough. + eit = enventor_object_main_item_get(base_enventor_get()); + if (!eit) + { + EINA_LOG_ERR("No main item??"); + return; + } + + it_file_path = enventor_item_file_get(eit); + if (!it_file_path) + { + EINA_LOG_ERR("No main item file path??"); + return; + } + //Ok, This selected file is already openend, let's activate the item. + if (strlen(file->name) == strlen(it_file_path) && + !strcmp(file->name, it_file_path)) + { + facade_it_select(eit); + return; + } + + //Case 2. sub files. Eina_List *sub_items = (Eina_List *)enventor_object_sub_items_get(base_enventor_get()); Eina_List *l; - Enventor_Item *eit; EINA_LIST_FOREACH(sub_items, l, eit) { const char *it_file_path = enventor_item_file_get(eit); if (!it_file_path) continue; + + //Let's check if the file is already opened. if (selected_file_len != strlen(it_file_path)) continue; //Ok, This selected file is already openend, let's activate the item. diff --git a/src/bin/globals.c b/src/bin/globals.c index 3ff43c8..da8a7dc 100644 --- a/src/bin/globals.c +++ b/src/bin/globals.c @@ -26,7 +26,7 @@ void facade_it_select(Enventor_Item *it) Enventor_Item *facade_sub_file_add(const char *path) { - Enventor_Item *it = enventor_object_sub_file_add(base_enventor_get(), path); + Enventor_Item *it = enventor_object_sub_item_add(base_enventor_get(), path); EINA_SAFETY_ON_NULL_RETURN_VAL(it, NULL); file_tab_it_add(it); @@ -39,7 +39,7 @@ Enventor_Item *facade_sub_file_add(const char *path) Enventor_Item *facade_main_file_set(const char *path) { - Enventor_Item *it = enventor_object_main_file_set(base_enventor_get(), path); + Enventor_Item *it = enventor_object_main_item_set(base_enventor_get(), path); EINA_SAFETY_ON_NULL_RETURN_VAL(it, NULL); file_tab_clear(); diff --git a/src/bin/goto.c b/src/bin/goto.c index 4862591..b16c21e 100644 --- a/src/bin/goto.c +++ b/src/bin/goto.c @@ -230,7 +230,7 @@ Eina_Bool goto_close(void) { goto_data *gd = g_gd; - EINA_SAFETY_ON_NULL_RETURN_VAL(gd, EINA_FALSE); + if (!gd) return EINA_FALSE; //Save last state evas_object_geometry_get(gd->win, NULL, NULL, &win_w, &win_h); diff --git a/src/bin/search.c b/src/bin/search.c index 9517014..efe3658 100644 --- a/src/bin/search.c +++ b/src/bin/search.c @@ -455,7 +455,7 @@ Eina_Bool search_close(void) { search_data *sd = g_sd; - EINA_SAFETY_ON_NULL_RETURN_VAL(sd, EINA_FALSE); + if (!sd) return EINA_FALSE; Enventor_Object *enventor = base_enventor_get(); diff --git a/src/bin/setting.c b/src/bin/setting.c index dd5a9dd..099b6c7 100644 --- a/src/bin/setting.c +++ b/src/bin/setting.c @@ -265,7 +265,6 @@ Eina_Bool setting_is_opened(void) { setting_data *sd = g_sd; - EINA_SAFETY_ON_NULL_RETURN_VAL(sd, EINA_FALSE); - + if (!sd) return EINA_FALSE; return EINA_TRUE; } diff --git a/src/lib/Enventor_Legacy.h b/src/lib/Enventor_Legacy.h index 577e0e3..0f8afc1 100644 --- a/src/lib/Enventor_Legacy.h +++ b/src/lib/Enventor_Legacy.h @@ -3,8 +3,9 @@ typedef struct _Enventor_Item_Data Enventor_Item; EAPI Evas_Object *enventor_object_add(Evas_Object *parent); //FIXME: Should be eofied. -EAPI Enventor_Item *enventor_object_main_file_set(Evas_Object *obj, const char *file); -EAPI Enventor_Item *enventor_object_sub_file_add(Evas_Object *obj, const char *file); +EAPI Enventor_Item *enventor_object_main_item_set(Evas_Object *obj, const char *file); +EAPI Enventor_Item *enventor_object_sub_item_add(Evas_Object *obj, const char *file); +EAPI Enventor_Item *enventor_object_main_item_get(const Evas_Object *obj); EAPI const Eina_List *enventor_object_sub_items_get(const Evas_Object *obj); EAPI Evas_Object *enventor_item_editor_get(const Enventor_Item *it); EAPI const char *enventor_item_file_get(const Enventor_Item *it); diff --git a/src/lib/edc_editor.c b/src/lib/edc_editor.c index 4d63d08..4f0e190 100644 --- a/src/lib/edc_editor.c +++ b/src/lib/edc_editor.c @@ -62,6 +62,7 @@ struct editor_s Eina_Bool ctrl_pressed : 1; Eina_Bool on_select_recover : 1; Eina_Bool on_save : 1; + Eina_Bool main : 1; }; /*****************************************************************************/ @@ -755,8 +756,9 @@ edit_cursor_double_clicked_cb(void *data, Evas_Object *obj, } static void -cur_name_get_cb(void *data, Eina_Stringshare *state_name, double state_value, - Eina_Stringshare *part_name, Eina_Stringshare *group_name) +cur_context_name_get_cb(void *data, Eina_Stringshare *state_name, + double state_value, Eina_Stringshare *part_name, + Eina_Stringshare *group_name) { edit_data *ed = data; @@ -1257,7 +1259,8 @@ edit_syntax_color_partial_apply(edit_data *ed, double interval) void edit_view_sync(edit_data *ed) { - parser_cur_state_get(ed->pd, ed->en_edit, cur_name_get_cb, ed); + parser_cur_context_get(ed->pd, ed->en_edit, cur_context_name_get_cb, ed, + ed->main); } void @@ -1333,7 +1336,7 @@ edit_cur_indent_depth_get(edit_data *ed) } edit_data * -edit_init(Enventor_Object *enventor) +edit_init(Enventor_Object *enventor, Eina_Bool main) { edit_data *ed = calloc(1, sizeof(edit_data)); if (!ed) @@ -1509,13 +1512,13 @@ edit_cur_paragh_get(edit_data *ed) Eina_Stringshare * edit_cur_prog_name_get(edit_data *ed) { - return parser_cur_name_fast_get(ed->en_edit, "program"); + return parser_cur_context_fast_get(ed->en_edit, "program"); } Eina_Stringshare * edit_cur_part_name_get(edit_data *ed) { - return parser_cur_name_fast_get(ed->en_edit, "part"); + return parser_cur_context_fast_get(ed->en_edit, "part"); } int diff --git a/src/lib/edc_parser.c b/src/lib/edc_parser.c index b912117..0027a7b 100644 --- a/src/lib/edc_parser.c +++ b/src/lib/edc_parser.c @@ -31,7 +31,7 @@ typedef struct parser_attr_s attr_value value; } parser_attr; -typedef struct cur_name_thread_data_s +typedef struct cur_context_thread_data_s { Ecore_Thread *thread; char *utf8; @@ -44,7 +44,8 @@ typedef struct cur_name_thread_data_s Eina_Stringshare *part_name, Eina_Stringshare *group_name); void *cb_data; parser_data *pd; -} cur_name_td; + Eina_Bool collections: 1; //It contains collections? +} cur_context_td; typedef struct type_init_thread_data_s { @@ -69,7 +70,7 @@ typedef struct bracket_thread_data_s struct parser_s { Eina_Inarray *attrs; - cur_name_td *cntd; + cur_context_td *cntd; type_init_td *titd; bracket_td *btd; Eina_List *macro_list; @@ -300,15 +301,20 @@ macro_list_free(Eina_List *macro_list) } static void -cur_state_thread_blocking(void *data, Ecore_Thread *thread EINA_UNUSED) +cur_context_thread_blocking(void *data, Ecore_Thread *thread EINA_UNUSED) { #define PART_SYNTAX_CNT 14 const char *GROUP = "group"; + const int GROUP_LEN = 5; const char *PARTS = "parts"; + const int PARTS_LEN = 5; const char *PART[PART_SYNTAX_CNT] = { "part", "image", "textblock", "swallow", "rect", "group", "spacer", "proxy", "text", "gradient", "box", "table", "external", "vector" }; + const int PART_LEN[PART_SYNTAX_CNT] = + { 4, 5, 9, 6, 4, 5, 6, 5, 4, 8, 3, 5, 8, 6}; + const char *DESC[2] = { "desc", "description" }; const int DESC_LEN[2] = { 4, 11 }; const char *STATE = "state"; @@ -316,14 +322,14 @@ cur_state_thread_blocking(void *data, Ecore_Thread *thread EINA_UNUSED) const int DEF_STATE_LEN = 7; - cur_name_td *td = data; + cur_context_td *td = data; char *utf8 = td->utf8; int cur_pos = td->cur_pos; char *p = utf8; char *end = utf8 + cur_pos; int i; Eina_Bool inside_parts = EINA_FALSE; - + Eina_Bool collections = td->collections; int bracket = 0; const char *group_name = NULL; @@ -392,17 +398,29 @@ cur_state_thread_blocking(void *data, Ecore_Thread *thread EINA_UNUSED) bracket--; p++; - if (bracket == 1) group_name = NULL; - else if (bracket == 2 && inside_parts == EINA_TRUE) inside_parts = EINA_FALSE; - else if (bracket == 3) part_name = NULL; - else if (bracket == 4) desc_name = NULL; - + if (collections) + { + if (bracket == 1) group_name = NULL; + else if (bracket == 2 && inside_parts == EINA_TRUE) + inside_parts = EINA_FALSE; + else if (bracket == 3) part_name = NULL; + else if (bracket == 4) desc_name = NULL; + } + else + { + if (bracket == 0) group_name = NULL; + else if (bracket == 1 && inside_parts == EINA_TRUE) + inside_parts = EINA_FALSE; + else if (bracket == 2) part_name = NULL; + else if (bracket == 3) desc_name = NULL; + } continue; } //check block "Parts" in - if (bracket == 2) + if ((collections && (bracket == 2)) || + (!collections && (bracket == 1))) { - if (!strncmp(p, PARTS, strlen(PARTS))) + if (!strncmp(p, PARTS, PARTS_LEN)) { inside_parts = EINA_TRUE; p = strstr(p, "{"); @@ -411,16 +429,14 @@ cur_state_thread_blocking(void *data, Ecore_Thread *thread EINA_UNUSED) } } //Check Part in - if (bracket == 3 && inside_parts == EINA_TRUE) + if ((collections && (bracket == 3)) || + (!collections && (bracket == 2))) { int part_idx = -1; - int part_len; - //part ? image ? swallow ? text ? rect ? for (i = 0; i < PART_SYNTAX_CNT; i++) { - part_len = strlen(PART[i]); - if (!strncmp(p, PART[i], part_len)) + if (!strncmp(p, PART[i], PART_LEN[i])) { part_idx = i; break; @@ -430,7 +446,7 @@ cur_state_thread_blocking(void *data, Ecore_Thread *thread EINA_UNUSED) //we got a part! if (part_idx != -1) { - p += part_len; + p += PART_LEN[part_idx]; char *name_begin = strstr(p, QUOT_UTF8); if (!name_begin) goto end; name_begin += QUOT_UTF8_LEN; @@ -445,7 +461,8 @@ cur_state_thread_blocking(void *data, Ecore_Thread *thread EINA_UNUSED) } } //Check Description in - if (bracket == 4) + if ((collections && (bracket == 4)) || + (!collections && (bracket == 3))) { //description? or desc? int desc_idx = -1; @@ -455,25 +472,37 @@ cur_state_thread_blocking(void *data, Ecore_Thread *thread EINA_UNUSED) //we got a description! if (desc_idx != -1) { - desc_name = DEF_STATE_NAME; /* By default state will be */ - desc_name_len = DEF_STATE_LEN; /* recognized as "default" 0.0*/ + /* By default state will be */ + desc_name = DEF_STATE_NAME; + /* recognized as "default" 0.0*/ + desc_name_len = DEF_STATE_LEN; value_convert = 0; - p += DESC_LEN[desc_idx]; /* skip keyword */ + /* skip keyword */ + p += DESC_LEN[desc_idx]; p = strstr(p, "{"); if (!p) goto end; - char *end_brace = strstr(p, "}"); /*Limit size of text for processing*/ + /*Limit size of text for processing*/ + char *end_brace = strstr(p, "}"); if (!end_brace) goto end; - /* proccessing for "description" keyword with "state" attribute */ + /* proccessing for "description" keyword with "state" + attribute */ if (desc_idx == 1) { char *state = strstr(p, STATE); - if (!state || state > end_brace) /* if name of state didn't find, */ - continue; /* description will recognized as default 0.0*/ + /* if name of state didn't find, */ + if (!state || state > end_brace) + { + /* description will recognized as default 0.0*/ + continue; + } else - p += 5; /*5 is strlen("state");*/ + { + /*5 is strlen("state");*/ + p += 5; + } } char *name_begin = strstr(p, QUOT_UTF8); @@ -482,15 +511,16 @@ cur_state_thread_blocking(void *data, Ecore_Thread *thread EINA_UNUSED) char *end_range = strstr(p, ";"); if (!end_range) goto end; - if ((name_begin > end_brace) || /* if string placed outside desc block*/ - (name_begin > end_range) || + /* if string placed outside desc block*/ + if ((name_begin > end_brace) || (name_begin > end_range) || (end_range > end_brace)) - continue; + continue; /* Exception cases like: desc {image.normal: "img";} */ int alpha_present = 0; char *string_itr; - for (string_itr = name_begin; (string_itr > p) && (!alpha_present); string_itr--) + for (string_itr = name_begin; + (string_itr > p) && (!alpha_present); string_itr--) alpha_present = isalpha((int)*string_itr); if (alpha_present && desc_idx == 0) @@ -529,11 +559,12 @@ cur_state_thread_blocking(void *data, Ecore_Thread *thread EINA_UNUSED) } } //Check Group in. Probably inside of collections or the most outside. - if (bracket < 2) + if ((collections && (bracket == 1)) || + (!collections && (bracket == 0))) { - if (!strncmp(p, GROUP, strlen(GROUP))) + if (!strncmp(p, GROUP, GROUP_LEN)) { - p += strlen(GROUP); + p += GROUP_LEN; char *name_end = strstr(p, SEMICOL_UTF8); if (!name_end) goto end; @@ -568,7 +599,6 @@ cur_state_thread_blocking(void *data, Ecore_Thread *thread EINA_UNUSED) } p++; } - if (part_name) part_name = eina_stringshare_add_length(part_name, part_name_len); if (desc_name) @@ -598,9 +628,9 @@ end: } static void -cur_name_thread_end(void *data, Ecore_Thread *thread EINA_UNUSED) +cur_context_thread_end(void *data, Ecore_Thread *thread EINA_UNUSED) { - cur_name_td *td = data; + cur_context_td *td = data; td->cb(td->cb_data, td->state_name, td->state_value, td->part_name, td->group_name); td->pd->cntd = NULL; eina_stringshare_del(td->state_name); @@ -610,9 +640,9 @@ cur_name_thread_end(void *data, Ecore_Thread *thread EINA_UNUSED) } static void -cur_name_thread_cancel(void *data, Ecore_Thread *thread EINA_UNUSED) +cur_context_thread_cancel(void *data, Ecore_Thread *thread EINA_UNUSED) { - cur_name_td *td = data; + cur_context_td *td = data; if (td->pd) td->pd->cntd = NULL; eina_stringshare_del(td->state_name); eina_stringshare_del(td->part_name); @@ -1290,7 +1320,7 @@ group_beginning_pos_get(const char* source, const char *group_name) name += quot_len; pos = strstr(name, quot); if (!pos) return NULL; - if (!strncmp(name, group_name, strlen(group_name))) + if (!strncmp(name, group_name, 5)) return pos; pos = strstr(++pos, GROUP_SYNTAX_NAME); } @@ -1720,7 +1750,7 @@ parser_paragh_name_get(parser_data *pd EINA_UNUSED, Evas_Object *entry) } Eina_Stringshare* -parser_cur_name_fast_get(Evas_Object *entry, const char *scope) +parser_cur_context_fast_get(Evas_Object *entry, const char *scope) { const char *quot = QUOT_UTF8; const int quot_len = QUOT_UTF8_LEN; @@ -1794,11 +1824,12 @@ end: return name; } - void -parser_cur_state_get(parser_data *pd, Evas_Object *entry, - void (*cb)(void *data, Eina_Stringshare *state_name, double state_value, - Eina_Stringshare *part_name, Eina_Stringshare *group_name), void *data) +parser_cur_context_get(parser_data *pd, Evas_Object *entry, + void (*cb)(void *data, Eina_Stringshare *state_name, + double state_value, Eina_Stringshare *part_name, + Eina_Stringshare *group_name), void *data, + Eina_Bool collections) { if (pd->cntd) ecore_thread_cancel(pd->cntd->thread); @@ -1808,7 +1839,7 @@ parser_cur_state_get(parser_data *pd, Evas_Object *entry, char *utf8 = elm_entry_markup_to_utf8(text); if (!utf8) return; - cur_name_td *td = calloc(1, sizeof(cur_name_td)); + cur_context_td *td = calloc(1, sizeof(cur_context_td)); if (!td) { free(utf8); @@ -1822,10 +1853,11 @@ parser_cur_state_get(parser_data *pd, Evas_Object *entry, td->cur_pos = elm_entry_cursor_pos_get(entry); td->cb = cb; td->cb_data = data; + td->collections = collections; - td->thread = ecore_thread_run(cur_state_thread_blocking, - cur_name_thread_end, - cur_name_thread_cancel, + td->thread = ecore_thread_run(cur_context_thread_blocking, + cur_context_thread_end, + cur_context_thread_cancel, td); } diff --git a/src/lib/edj_viewer.c b/src/lib/edj_viewer.c index b7c1108..624fcd9 100644 --- a/src/lib/edj_viewer.c +++ b/src/lib/edj_viewer.c @@ -705,7 +705,6 @@ view_part_highlight_set(view_data *vd, const char *part_name) if (vd->idler) vd->part_name = eina_stringshare_add(part_name); return; } - if (!part_name) { if (vd->part_highlight) diff --git a/src/lib/enventor_private.h b/src/lib/enventor_private.h index b9b19f3..87c7c96 100644 --- a/src/lib/enventor_private.h +++ b/src/lib/enventor_private.h @@ -106,8 +106,8 @@ Eina_Bool color_ready(color_data *cd); parser_data *parser_init(void); void parser_term(parser_data *pd); Eina_Stringshare *parser_first_group_name_get(parser_data *pd, Evas_Object *entry); -void parser_cur_state_get(parser_data *pd, Evas_Object *entry, void (*cb)(void *data, Eina_Stringshare *state_name, double state_value, Eina_Stringshare *part_name, Eina_Stringshare *group_name), void *data); -Eina_Stringshare *parser_cur_name_fast_get(Evas_Object *entry, const char *scope); +void parser_cur_context_get(parser_data *pd, Evas_Object *entry, void (*cb)(void *data, Eina_Stringshare *state_name, double state_value, Eina_Stringshare *part_name, Eina_Stringshare *group_name), void *data, Eina_Bool collections); +Eina_Stringshare *parser_cur_context_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 *selected); void parser_attribute_value_set(attr_value *attr, char *cur); @@ -236,7 +236,7 @@ void ctxpopup_img_preview_reload(Evas_Object *ctxpopup, const char *imgpath); 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); +edit_data *edit_init(Enventor_Object *enventor, Eina_Bool main); void edit_term(edit_data *ed); Evas_Object *edit_obj_get(edit_data *ed); Eina_Bool edit_changed_get(edit_data *ed); diff --git a/src/lib/enventor_smart.c b/src/lib/enventor_smart.c index f0ee8e5..e12341a 100644 --- a/src/lib/enventor_smart.c +++ b/src/lib/enventor_smart.c @@ -123,6 +123,7 @@ edit_view_sync_cb(void *data, Eina_Stringshare *state_name, double state_value, edj_mgr_all_views_reload(); + //Switch group! if (pd->group_name != group_name) { view_data *vd = edj_mgr_view_get(group_name); @@ -132,6 +133,8 @@ edit_view_sync_cb(void *data, Eina_Stringshare *state_name, double state_value, vd = edj_mgr_view_new(group_name); if (!vd) return; } + view_dummy_set(vd, pd->dummy_parts); + view_outline_set(vd, pd->outline); eina_stringshare_del(pd->group_name); pd->group_name = eina_stringshare_add(group_name); evas_object_smart_callback_call(pd->obj, SIG_CURSOR_GROUP_CHANGED, @@ -260,7 +263,7 @@ EOLIAN static void _enventor_object_efl_canvas_group_group_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->font_style); eina_stringshare_del(pd->group_name); autocomp_term(); ecore_event_handler_del(pd->key_down_handler); @@ -413,7 +416,7 @@ _enventor_object_linenumber_set(Eo *obj EINA_UNUSED, Enventor_Object_Data *pd, if (pd->linenumber == linenumber) return; //Main Item - edit_linenumber_set(pd->main_it.ed, linenumber); + edit_linenumber_set(pd->focused_it->ed, linenumber); pd->linenumber = linenumber; } @@ -950,7 +953,7 @@ enventor_object_add(Enventor_Object *parent) } EAPI Enventor_Item * -enventor_object_sub_file_add(Enventor_Object *obj, const char *file) +enventor_object_sub_item_add(Enventor_Object *obj, const char *file) { Enventor_Object_Data *pd = eo_data_scope_get(obj, ENVENTOR_OBJECT_CLASS); @@ -970,24 +973,17 @@ enventor_object_sub_file_add(Enventor_Object *obj, const char *file) pd->sub_its = eina_list_append(pd->sub_its, it); it->enventor = obj; - it->ed = edit_init(obj); + it->ed = edit_init(obj, EINA_FALSE); autocomp_target_set(it->ed); edit_load(it->ed, file); edit_changed_set(it->ed, EINA_FALSE); - //Update Editor State - if (pd->linenumber != DEFAULT_LINENUMBER) - edit_linenumber_set(it->ed, pd->linenumber); - if (pd->font_scale != DEFAULT_FONT_SCALE) - edit_font_scale_set(it->ed, pd->font_scale); - if (pd->disabled) edit_disabled_set(it->ed, EINA_TRUE); - return it; } EAPI Enventor_Item * -enventor_object_main_file_set(Enventor_Object *obj, const char *file) +enventor_object_main_item_set(Enventor_Object *obj, const char *file) { Enventor_Object_Data *pd = eo_data_scope_get(obj, ENVENTOR_OBJECT_CLASS); @@ -997,21 +993,20 @@ enventor_object_main_file_set(Enventor_Object *obj, const char *file) _enventor_main_item_free(pd); pd->main_it.enventor = obj; - pd->main_it.ed = edit_init(obj); + pd->main_it.ed = edit_init(obj, EINA_TRUE); edit_view_sync_cb_set(pd->main_it.ed, edit_view_sync_cb, pd); pd->focused_it = &pd->main_it; Eina_Bool ret = efl_file_set(obj, file, NULL); if (!ret) return NULL; - //Update Editor State - if (pd->linenumber != DEFAULT_LINENUMBER) - edit_linenumber_set(pd->main_it.ed, pd->linenumber); - if (pd->font_scale != DEFAULT_FONT_SCALE) - edit_font_scale_set(pd->main_it.ed, pd->font_scale); - if (pd->disabled) - edit_disabled_set(pd->main_it.ed, EINA_TRUE); + return &pd->main_it; +} +EAPI Enventor_Item * +enventor_object_main_item_get(const Enventor_Object *obj) +{ + Enventor_Object_Data *pd = eo_data_scope_get(obj, ENVENTOR_OBJECT_CLASS); return &pd->main_it; } @@ -1044,6 +1039,11 @@ enventor_item_focus_set(Enventor_Item *it) pd->focused_it = it; + //Update Editor State + edit_linenumber_set(it->ed, pd->linenumber); + edit_font_scale_set(it->ed, pd->font_scale); + edit_disabled_set(it->ed, pd->disabled); + return EINA_TRUE; } --
