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()
This commit is contained in:
Hermet Park 2016-07-02 15:39:10 +09:00
parent b71d9d2f26
commit 68548afdde
14 changed files with 89 additions and 82 deletions

View File

@ -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);

View File

@ -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 *

View File

@ -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));
}

View File

@ -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);
}
/*****************************************************************************/

View File

@ -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;
}

View File

@ -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

View File

@ -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));
}

View File

@ -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();

View File

@ -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();
}

View File

@ -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);

View File

@ -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);

View File

@ -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"

View File

@ -149,9 +149,6 @@ class Enventor.Object (Elm.Widget, Efl.File) {
parts_list_get {
return: list<char *>;
}
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 {

View File

@ -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"