From 68548afdde6e9244c7c2c8eac33ec569f19fb03f Mon Sep 17 00:00:00 2001 From: Hermet Park Date: Sat, 2 Jul 2016 15:39:10 +0900 Subject: [PATCH] multi-file: support the function, go to line. removed enventor_object_max_line_get() removed enventor_object_goto_line() added enventor_item_max_line_get() added enventor_item_goto_line() --- src/bin/console.c | 6 +++++- src/bin/file_browser.c | 8 +++---- src/bin/file_mgr.c | 44 ++++++++++++++++++++++++++++++++++++-- src/bin/file_tab.c | 2 +- src/bin/globals.c | 38 -------------------------------- src/bin/goto.c | 11 +++++++--- src/bin/main.c | 2 +- src/bin/menu.c | 4 ++-- src/bin/newfile.c | 2 +- src/include/file_mgr.h | 3 +++ src/include/globals.h | 4 +--- src/lib/Enventor_Legacy.h | 2 ++ src/lib/enventor_object.eo | 8 ------- src/lib/enventor_smart.c | 37 ++++++++++++++++---------------- 14 files changed, 89 insertions(+), 82 deletions(-) diff --git a/src/bin/console.c b/src/bin/console.c index dbdeb8b..63ec6a9 100644 --- a/src/bin/console.c +++ b/src/bin/console.c @@ -41,7 +41,11 @@ error_word_select(Evas_Object *console) const char *entry_text = enventor_object_text_get(base_enventor_get()); char *utf8 = elm_entry_markup_to_utf8(entry_text); - enventor_object_line_goto(base_enventor_get(), atoi(error_line)); + //FIXME: Need to get the file that contains errors. + Enventor_Item *it = enventor_object_focused_item_get(base_enventor_get()); + EINA_SAFETY_ON_NULL_RETURN(it); + + enventor_item_line_goto(it, atoi(error_line)); int pos = enventor_object_cursor_pos_get(base_enventor_get()); const char *search_line = utf8 + pos * sizeof(char); diff --git a/src/bin/file_browser.c b/src/bin/file_browser.c index a5e76f7..2134975 100644 --- a/src/bin/file_browser.c +++ b/src/bin/file_browser.c @@ -78,7 +78,7 @@ gl_clicked_double_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, //skip non edc file. if (!eina_str_has_extension(file->path, "edc")) return; - int selected_file_len = strlen(file->path); + unsigned int selected_file_len = strlen(file->path); Enventor_Item *eit; const char *it_file_path; @@ -104,7 +104,7 @@ gl_clicked_double_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, if (strlen(file->name) == strlen(it_file_path) && !strcmp(file->name, it_file_path)) { - facade_it_select(eit); + file_mgr_file_focus(eit); return; } @@ -123,13 +123,13 @@ gl_clicked_double_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, //Ok, This selected file is already openend, let's activate the item. if (!strcmp(file->path, it_file_path)) { - facade_it_select(eit); + file_mgr_file_focus(eit); return; } } //This selected file hasn't been opened yet, so let's open this file newly. - facade_sub_file_add(file->path); + file_mgr_sub_file_add(file->path); } static Elm_Object_Item * diff --git a/src/bin/file_mgr.c b/src/bin/file_mgr.c index 5b28c8a..248105f 100644 --- a/src/bin/file_mgr.c +++ b/src/bin/file_mgr.c @@ -57,7 +57,7 @@ warning_replace_btn_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { file_mgr_data *fmd = data; - facade_main_file_set(config_input_path_get()); + file_mgr_main_file_set(config_input_path_get()); warning_close(fmd); } @@ -160,7 +160,6 @@ file_mgr_edc_save(void) Eina_Bool save_success = enventor_object_save(base_enventor_get(), config_input_path_get()); - if (!config_stats_bar_get()) return; if (save_success) @@ -222,3 +221,44 @@ file_mgr_term(void) free(fmd); } + +Enventor_Item * +file_mgr_sub_file_add(const char *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); + file_tab_it_select(it); + + file_mgr_file_focus(it); + + return it; +} + +Enventor_Item * +file_mgr_main_file_set(const char *path) +{ + Enventor_Item *it = enventor_object_main_item_set(base_enventor_get(), path); + EINA_SAFETY_ON_NULL_RETURN_VAL(it, NULL); + + file_tab_clear(); + file_tab_it_add(it); + + file_mgr_file_focus(it); + + base_console_reset(); + + return it; +} + +void +file_mgr_file_focus(Enventor_Item *it) +{ + EINA_SAFETY_ON_NULL_RETURN(it); + + file_tab_it_select(it); + enventor_item_focus_set(it); + base_text_editor_set(it); + base_title_set(enventor_item_file_get(it)); +} diff --git a/src/bin/file_tab.c b/src/bin/file_tab.c index 82082d3..6b4a540 100644 --- a/src/bin/file_tab.c +++ b/src/bin/file_tab.c @@ -55,7 +55,7 @@ list_item_selected_cb(void *data, Evas_Object *obj EINA_UNUSED, Elm_Object_Item *it = event_info; if (fd->selected_it == it) return; file_tab_it *fti = elm_object_item_data_get(it); - facade_it_select(fti->enventor_it); + file_mgr_file_focus(fti->enventor_it); } /*****************************************************************************/ diff --git a/src/bin/globals.c b/src/bin/globals.c index da8a7dc..8695c16 100644 --- a/src/bin/globals.c +++ b/src/bin/globals.c @@ -13,41 +13,3 @@ void mem_fail_msg(void) { EINA_LOG_ERR("Failed to allocate Memory!"); } - -void facade_it_select(Enventor_Item *it) -{ - EINA_SAFETY_ON_NULL_RETURN(it); - - file_tab_it_select(it); - enventor_item_focus_set(it); - base_text_editor_set(it); - base_title_set(enventor_item_file_get(it)); -} - -Enventor_Item *facade_sub_file_add(const char *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); - file_tab_it_select(it); - - facade_it_select(it); - - return it; -} - -Enventor_Item *facade_main_file_set(const char *path) -{ - Enventor_Item *it = enventor_object_main_item_set(base_enventor_get(), path); - EINA_SAFETY_ON_NULL_RETURN_VAL(it, NULL); - - file_tab_clear(); - file_tab_it_add(it); - - facade_it_select(it); - - base_console_reset(); - - return it; -} diff --git a/src/bin/goto.c b/src/bin/goto.c index b16c21e..9593284 100644 --- a/src/bin/goto.c +++ b/src/bin/goto.c @@ -13,6 +13,7 @@ typedef struct goto_s Evas_Object *entry; Evas_Object *btn; Ecore_Timer *timer; + Enventor_Item *it; } goto_data; static goto_data *g_gd = NULL; @@ -65,7 +66,7 @@ goto_line(goto_data *gd) const char *txt = elm_entry_entry_get(gd->entry); int line = 0; if (txt) line = atoi(txt); - enventor_object_line_goto(base_enventor_get(), line); + enventor_item_line_goto(gd->it, line); goto_close(); } @@ -91,7 +92,7 @@ entry_changed_cb(void *data, Evas_Object *obj, void* event_info EINA_UNUSED) int line = atoi(txt); if ((line < 1) || - (line > enventor_object_max_line_get(base_enventor_get()))) + (line > enventor_item_max_line_get(gd->it))) { elm_object_part_text_set(gd->layout, "elm.text.msg", _("Invalid line number")); @@ -146,6 +147,9 @@ goto_open(void) } g_gd = gd; + Enventor_Item *it = enventor_object_focused_item_get(base_enventor_get()); + EINA_SAFETY_ON_NULL_RETURN(it); + //Win Evas_Object *win = elm_win_add(base_win_get(), _("Enventor Goto Line"), ELM_WIN_DIALOG_BASIC); @@ -174,7 +178,7 @@ goto_open(void) char buf[256]; snprintf(buf, sizeof(buf), _("Enter line number [1..%d]:"), - enventor_object_max_line_get(base_enventor_get())); + enventor_item_max_line_get(it)); elm_object_part_text_set(layout, "elm.text.goto", buf); //Entry (line) @@ -217,6 +221,7 @@ goto_open(void) gd->layout = layout; gd->entry = entry; gd->btn = btn; + gd->it = it; } Eina_Bool diff --git a/src/bin/main.c b/src/bin/main.c index 919bcbf..908d8bb 100644 --- a/src/bin/main.c +++ b/src/bin/main.c @@ -573,7 +573,7 @@ enventor_setup(app_data *ad) enventor_common_setup(enventor); base_enventor_set(enventor); - facade_main_file_set(config_input_path_get()); + file_mgr_main_file_set(config_input_path_get()); base_live_view_set(enventor_object_live_view_get(enventor)); } diff --git a/src/bin/menu.c b/src/bin/menu.c index 8bece7c..636de44 100644 --- a/src/bin/menu.c +++ b/src/bin/menu.c @@ -360,7 +360,7 @@ fileselector_save_done_cb(void *data, Evas_Object *obj, void *event_info) eina_stringshare_del(selected); return; } - facade_main_file_set(selected); + file_mgr_main_file_set(selected); } else if (is_edj) { @@ -434,7 +434,7 @@ fileselector_load_done_cb(void *data, Evas_Object *obj, void *event_info) return; } config_input_path_set(selected); - facade_main_file_set(selected); + file_mgr_main_file_set(selected); fileselector_close(md); menu_close(md); file_mgr_reset(); diff --git a/src/bin/newfile.c b/src/bin/newfile.c index c339fa0..edc2e5f 100644 --- a/src/bin/newfile.c +++ b/src/bin/newfile.c @@ -113,7 +113,7 @@ newfile_set(Eina_Bool template_new) EINA_LOG_ERR(_("Cannot find file! \"%s\""), buf); return; } - facade_main_file_set(path); + file_mgr_main_file_set(path); file_mgr_reset(); } diff --git a/src/include/file_mgr.h b/src/include/file_mgr.h index f565482..def17a7 100644 --- a/src/include/file_mgr.h +++ b/src/include/file_mgr.h @@ -6,3 +6,6 @@ void file_mgr_term(void); int file_mgr_edc_modified_get(void); void file_mgr_reset(void); void file_mgr_edc_save(void); +Enventor_Item *file_mgr_main_file_set(const char *path); +Enventor_Item *file_mgr_sub_file_add(const char *path); +void file_mgr_file_focus(Enventor_Item *it); diff --git a/src/include/globals.h b/src/include/globals.h index 618b665..322a655 100644 --- a/src/include/globals.h +++ b/src/include/globals.h @@ -3,6 +3,4 @@ extern char EDJE_PATH[PATH_MAX]; extern Eina_Prefix *PREFIX; extern const char *ENVENTOR_NAME; void mem_fail_msg(void); -Enventor_Item *facade_main_file_set(const char *path); -Enventor_Item *facade_sub_file_add(const char *path); -void facade_it_select(Enventor_Item *it); + diff --git a/src/lib/Enventor_Legacy.h b/src/lib/Enventor_Legacy.h index 0f8afc1..315d90f 100644 --- a/src/lib/Enventor_Legacy.h +++ b/src/lib/Enventor_Legacy.h @@ -11,5 +11,7 @@ EAPI Evas_Object *enventor_item_editor_get(const Enventor_Item *it); EAPI const char *enventor_item_file_get(const Enventor_Item *it); EAPI Enventor_Item *enventor_object_focused_item_get(const Evas_Object *obj); EAPI Eina_Bool enventor_item_focus_set(Enventor_Item *it); +EAPI int enventor_item_max_line_get(const Enventor_Item *it); +EAPI void enventor_item_line_goto(Enventor_Item *it, int line); #include "enventor_object.eo.legacy.h" diff --git a/src/lib/enventor_object.eo b/src/lib/enventor_object.eo index d3d753c..f3160a6 100644 --- a/src/lib/enventor_object.eo +++ b/src/lib/enventor_object.eo @@ -149,9 +149,6 @@ class Enventor.Object (Elm.Widget, Efl.File) { parts_list_get { return: list; } - max_line_get { - return: int; - } text_get { return: const(char) *; } @@ -190,11 +187,6 @@ class Enventor.Object (Elm.Widget, Efl.File) { live_view_get { return: Efl.Canvas.Object; } - line_goto { - params { - @in line: int; - } - } programs_stop { } program_run { diff --git a/src/lib/enventor_smart.c b/src/lib/enventor_smart.c index 8d425af..df7696c 100644 --- a/src/lib/enventor_smart.c +++ b/src/lib/enventor_smart.c @@ -769,21 +769,6 @@ _enventor_object_font_get(Eo *obj EINA_UNUSED, Enventor_Object_Data *pd, if (font_style) *font_style = pd->font_style; } -//TODO: Itemize -EOLIAN static int -_enventor_object_max_line_get(Eo *obj EINA_UNUSED, Enventor_Object_Data *pd) -{ - return edit_max_line_get(pd->main_it.ed); -} - -//TODO: Itemize -EOLIAN static void -_enventor_object_line_goto(Eo *obj EINA_UNUSED, Enventor_Object_Data *pd, - int line) -{ - edit_goto(pd->main_it.ed, line); -} - EOLIAN static void _enventor_object_syntax_color_set(Eo *obj EINA_UNUSED, Enventor_Object_Data *pd, @@ -1027,7 +1012,7 @@ enventor_object_focused_item_get(const Enventor_Object *obj) /////////////////////////////////////////////////////////////////////////////// /* Enventor_Item Functions. */ /////////////////////////////////////////////////////////////////////////////// -Eina_Bool +EAPI Eina_Bool enventor_item_focus_set(Enventor_Item *it) { EINA_SAFETY_ON_NULL_RETURN_VAL(it, EINA_FALSE); @@ -1047,7 +1032,7 @@ enventor_item_focus_set(Enventor_Item *it) return EINA_TRUE; } -Evas_Object * +EAPI Evas_Object * enventor_item_editor_get(const Enventor_Item *it) { EINA_SAFETY_ON_NULL_RETURN_VAL(it, NULL); @@ -1057,7 +1042,7 @@ enventor_item_editor_get(const Enventor_Item *it) return edit_obj_get(it->ed); } -const char * +EAPI const char * enventor_item_file_get(const Enventor_Item *it) { EINA_SAFETY_ON_NULL_RETURN_VAL(it, NULL); @@ -1067,5 +1052,21 @@ enventor_item_file_get(const Enventor_Item *it) return edit_file_get(it->ed); } +EAPI int +enventor_item_max_line_get(const Enventor_Item *it) +{ + EINA_SAFETY_ON_NULL_RETURN_VAL(it, 0); + + return edit_max_line_get(it->ed); +} + +EAPI void +enventor_item_line_goto(Enventor_Item *it, int line) +{ + EINA_SAFETY_ON_NULL_RETURN(it); + + edit_goto(it->ed, line); +} + #include "enventor_object.eo.c"