forked from enlightenment/enventor
implementing multi editor support.
this feature will be come gradually...
This commit is contained in:
parent
b6ffc80449
commit
e16ff998b1
|
@ -359,5 +359,12 @@ base_enventor_set(Enventor_Object *enventor)
|
|||
base_data *bd = g_bd;
|
||||
assert(bd);
|
||||
bd->enventor = enventor;
|
||||
panes_text_editor_set(enventor);
|
||||
}
|
||||
|
||||
void
|
||||
base_text_editor_set(Enventor_Item *it)
|
||||
{
|
||||
base_data *bd = g_bd;
|
||||
assert(bd);
|
||||
panes_text_editor_set(enventor_item_editor_get(it));
|
||||
}
|
||||
|
|
|
@ -53,7 +53,9 @@ warning_replace_btn_cb(void *data, Evas_Object *obj EINA_UNUSED,
|
|||
void *event_info EINA_UNUSED)
|
||||
{
|
||||
file_mgr_data *fmd = data;
|
||||
enventor_object_main_file_set(base_enventor_get(), config_input_path_get());
|
||||
Enventor_Item *it = enventor_object_main_file_set(base_enventor_get(),
|
||||
config_input_path_get());
|
||||
base_text_editor_set(it);
|
||||
warning_close(fmd);
|
||||
}
|
||||
|
||||
|
|
|
@ -565,9 +565,11 @@ enventor_setup(app_data *ad)
|
|||
|
||||
enventor_common_setup(enventor);
|
||||
|
||||
enventor_object_main_file_set(enventor, config_input_path_get());
|
||||
Enventor_Item *it =
|
||||
enventor_object_main_file_set(enventor, config_input_path_get());
|
||||
|
||||
base_enventor_set(enventor);
|
||||
base_text_editor_set(it);
|
||||
base_title_set(config_input_path_get());
|
||||
base_live_view_set(enventor_object_live_view_get(enventor));
|
||||
}
|
||||
|
|
|
@ -432,7 +432,8 @@ fileselector_save_done_cb(void *data, Evas_Object *obj, void *event_info)
|
|||
eina_stringshare_del(selected);
|
||||
return;
|
||||
}
|
||||
enventor_object_main_file_set(enventor, selected);
|
||||
Enventor_Item *it = enventor_object_main_file_set(enventor, selected);
|
||||
base_text_editor_set(it);
|
||||
base_title_set(selected);
|
||||
}
|
||||
else if (is_edj)
|
||||
|
@ -507,7 +508,9 @@ fileselector_load_done_cb(void *data, Evas_Object *obj, void *event_info)
|
|||
return;
|
||||
}
|
||||
config_input_path_set(selected);
|
||||
enventor_object_main_file_set(base_enventor_get(), selected);
|
||||
Enventor_Item *it = enventor_object_main_file_set(base_enventor_get(),
|
||||
selected);
|
||||
base_text_editor_set(it);
|
||||
base_title_set(selected);
|
||||
base_console_reset();
|
||||
fileselector_close(md);
|
||||
|
|
|
@ -57,7 +57,9 @@ newfile_set(Eina_Bool template_new)
|
|||
EINA_LOG_ERR(_("Cannot find file! \"%s\""), buf);
|
||||
return;
|
||||
}
|
||||
enventor_object_main_file_set(base_enventor_get(), path);
|
||||
Enventor_Item *eit =
|
||||
enventor_object_main_file_set(base_enventor_get(), path);
|
||||
base_text_editor_set(eit);
|
||||
base_title_set(path);
|
||||
base_console_reset();
|
||||
file_mgr_reset();
|
||||
|
|
|
@ -23,6 +23,8 @@ typedef struct _panes_data
|
|||
{
|
||||
pane_data horiz; //horizontal pane data (live view, text editor)
|
||||
pane_data vert; //vertical pane data (editors, console)
|
||||
Evas_Object *text_tool_layout;
|
||||
Evas_Object *live_tool_layout;
|
||||
} panes_data;
|
||||
|
||||
static panes_data *g_pd = NULL;
|
||||
|
@ -283,30 +285,14 @@ void
|
|||
panes_text_editor_set(Evas_Object *text_editor)
|
||||
{
|
||||
panes_data *pd = g_pd;
|
||||
|
||||
Evas_Object *base_layout = elm_layout_add(pd->horiz.obj);
|
||||
elm_layout_file_set(base_layout, EDJE_PATH, "tools_layout");
|
||||
evas_object_size_hint_weight_set(base_layout, EVAS_HINT_EXPAND,
|
||||
EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(base_layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
elm_object_content_set(base_layout, text_editor);
|
||||
|
||||
elm_object_part_content_set(pd->horiz.obj, "right", base_layout);
|
||||
elm_object_content_set(pd->text_tool_layout, text_editor);
|
||||
}
|
||||
|
||||
void
|
||||
panes_live_view_set(Evas_Object *live_view)
|
||||
{
|
||||
panes_data *pd = g_pd;
|
||||
|
||||
Evas_Object *base_layout = elm_layout_add(pd->horiz.obj);
|
||||
elm_layout_file_set(base_layout, EDJE_PATH, "tools_layout");
|
||||
evas_object_size_hint_weight_set(base_layout, EVAS_HINT_EXPAND,
|
||||
EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(base_layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
elm_object_content_set(base_layout, live_view);
|
||||
|
||||
elm_object_part_content_set(pd->horiz.obj, "left", base_layout);
|
||||
elm_object_content_set(pd->live_tool_layout, live_view);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -372,6 +358,28 @@ panes_init(Evas_Object *parent)
|
|||
elm_panes_content_right_size_set(panes_h, config_editor_size_get());
|
||||
elm_panes_content_right_size_set(panes_v, config_console_size_get());
|
||||
|
||||
//Text Tools
|
||||
Evas_Object *text_tool_layout = elm_layout_add(pd->horiz.obj);
|
||||
elm_layout_file_set(text_tool_layout, EDJE_PATH, "tools_layout");
|
||||
evas_object_size_hint_weight_set(text_tool_layout, EVAS_HINT_EXPAND,
|
||||
EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(text_tool_layout, EVAS_HINT_FILL,
|
||||
EVAS_HINT_FILL);
|
||||
elm_object_part_content_set(pd->horiz.obj, "right", text_tool_layout);
|
||||
|
||||
pd->text_tool_layout = text_tool_layout;
|
||||
|
||||
//Live Edit Tools
|
||||
Evas_Object *live_tool_layout = elm_layout_add(pd->horiz.obj);
|
||||
elm_layout_file_set(live_tool_layout, EDJE_PATH, "tools_layout");
|
||||
evas_object_size_hint_weight_set(live_tool_layout, EVAS_HINT_EXPAND,
|
||||
EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(live_tool_layout, EVAS_HINT_FILL,
|
||||
EVAS_HINT_FILL);
|
||||
elm_object_part_content_set(pd->horiz.obj, "left", live_tool_layout);
|
||||
|
||||
pd->live_tool_layout = live_tool_layout;
|
||||
|
||||
return panes_v;
|
||||
}
|
||||
|
||||
|
|
|
@ -21,6 +21,7 @@ void base_console_auto_hide(void);
|
|||
void base_console_toggle(void);
|
||||
void base_live_view_set(Evas_Object *live_view);
|
||||
void base_enventor_set(Enventor_Object *enventor);
|
||||
void base_text_editor_set(Enventor_Item *it);
|
||||
void base_gui_term(void);
|
||||
void base_console_reset(void);
|
||||
void base_error_msg_set(const char *msg);
|
||||
|
|
|
@ -1,6 +1,10 @@
|
|||
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 Evas_Object *enventor_item_editor_get(const Enventor_Item *it);
|
||||
|
||||
#include "enventor_object.eo.legacy.h"
|
||||
|
|
|
@ -1407,8 +1407,6 @@ edit_init(Enventor_Object *enventor)
|
|||
elm_object_focus_set(en_edit, EINA_TRUE);
|
||||
elm_object_part_content_set(layout, "elm.swallow.edit", en_edit);
|
||||
|
||||
evas_object_smart_member_add(scroller, enventor);
|
||||
|
||||
ed->scroller = scroller;
|
||||
ed->en_line = en_line;
|
||||
ed->en_edit = en_edit;
|
||||
|
|
|
@ -727,15 +727,15 @@ _enventor_object_font_set(Eo *obj EINA_UNUSED, Enventor_Object_Data *pd,
|
|||
eina_stringshare_replace(&pd->font_style, font_style);
|
||||
|
||||
char *font = NULL;
|
||||
if (font_name) font = elm_font_fontconfig_name_get(font_name, font_style);
|
||||
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();
|
||||
|
||||
elm_font_fontconfig_name_free(font);
|
||||
|
||||
|
||||
//Main Item
|
||||
edit_font_update(pd->main_it.ed);
|
||||
edit_font_update(pd->main_it.ed);
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
|
@ -842,7 +842,8 @@ _enventor_object_template_part_insert(Eo *obj EINA_UNUSED,
|
|||
char *rel2_x_to, char *rel2_y_to,
|
||||
float align_x, float align_y,
|
||||
int min_w, int min_h,
|
||||
float rel1_x, float rel1_y, float rel2_x,float rel2_y,
|
||||
float rel1_x, float rel1_y,
|
||||
float rel2_x,float rel2_y,
|
||||
char *syntax, size_t n)
|
||||
{
|
||||
// if mirror mode, exchange properties about left and right
|
||||
|
@ -957,4 +958,14 @@ enventor_object_main_file_set(Enventor_Object *obj, const char *file)
|
|||
return &pd->main_it;
|
||||
}
|
||||
|
||||
Evas_Object *
|
||||
enventor_item_editor_get(const Enventor_Item *it)
|
||||
{
|
||||
EINA_SAFETY_ON_NULL_RETURN_VAL(it, NULL);
|
||||
|
||||
if (!it->ed) return NULL;
|
||||
|
||||
return edit_obj_get(it->ed);
|
||||
}
|
||||
|
||||
#include "enventor_object.eo.c"
|
||||
|
|
|
@ -40,6 +40,14 @@ struct redoundo_s
|
|||
/*****************************************************************************/
|
||||
/* Internal method implementation */
|
||||
/*****************************************************************************/
|
||||
static void
|
||||
entry_del_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
|
||||
void *event_info EINA_UNUSED)
|
||||
{
|
||||
redoundo_data *rd = data;
|
||||
rd->cursor = NULL;
|
||||
}
|
||||
|
||||
Eina_Bool
|
||||
_input_timer_cb(void *data)
|
||||
{
|
||||
|
@ -408,6 +416,8 @@ redoundo_init(edit_data *ed, Enventor_Object *enventor)
|
|||
//FIXME: Why signal callback? not smart callback?
|
||||
elm_object_signal_callback_add(rd->entry, "entry,changed,user", "*",
|
||||
entry_changed_user_cb, rd);
|
||||
evas_object_event_callback_add(entry, EVAS_CALLBACK_DEL,
|
||||
entry_del_cb, rd);
|
||||
return rd;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue