netstar pushed a commit to branch master. http://git.enlightenment.org/apps/ecrire.git/commit/?id=3f70cbe5a8e76a458bc080f2aae9dc8ba0ed99be
commit 3f70cbe5a8e76a458bc080f2aae9dc8ba0ed99be Author: Alastair Poole <[email protected]> Date: Tue May 19 14:25:15 2020 +0100 ecrire: improve ui and open behaviour. --- src/bin/main.c | 40 ++++++++++++++++++++----- src/bin/mess_header.h | 1 + src/bin/ui/goto_dialog.c | 27 ++++------------- src/bin/ui/search_dialog.c | 75 ++++++++++++++++++++++++++-------------------- 4 files changed, 81 insertions(+), 62 deletions(-) diff --git a/src/bin/main.c b/src/bin/main.c index d374112..01b2218 100644 --- a/src/bin/main.c +++ b/src/bin/main.c @@ -92,6 +92,10 @@ _update_cur_file(const char *file, Ecrire_Entry *ent) snprintf(buf, sizeof(buf), _("%sUntitled %d - %s"), saving, ent->unsaved, PACKAGE_NAME); + if (ent->filename) + elm_object_text_set(ent->frame, ent->filename); + else + elm_object_text_set(ent->frame, buf); elm_win_title_set(ent->win, buf); } } @@ -360,8 +364,13 @@ _fs_open_done(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info) { const char *selected = event_info; - if (selected) - _load_to_entry(main_ec_ent, selected); + + if (!selected) return; + + if (ecore_file_app_installed("ecrire")) + ecore_exe_run(eina_slstr_printf("ecrire %s", selected), NULL); + else + _load_to_entry(main_ec_ent, selected); } void @@ -447,10 +456,18 @@ static void _new_do(void *data) { Ecrire_Entry *ent = data; - elm_object_text_set(ent->entry, ""); - _init_entry(ent); - elm_object_item_disabled_set(ent->save_item, EINA_TRUE); - _update_cur_file(NULL, ent); + + if (ecore_file_app_installed("ecrire")) + { + ecore_exe_run("ecrire", NULL); + } + else + { + elm_object_text_set(ent->entry, ""); + _init_entry(ent); + elm_object_item_disabled_set(ent->save_item, EINA_TRUE); + _update_cur_file(NULL, ent); + } } static void @@ -620,7 +637,7 @@ _key_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj, void *event) EAPI_MAIN int elm_main(int argc, char **argv) { - Evas_Object *pad, *bx, *cur_info, *menu, *bx2; + Evas_Object *pad, *fr, *bx, *cur_info, *menu, *bx2; Evas_Coord w = 600, h = 600; Elm_Widget_Item *mit; int c; @@ -692,13 +709,19 @@ elm_main(int argc, char **argv) evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_show(bx); + main_ec_ent->frame = fr = elm_frame_add(main_ec_ent->win); + evas_object_size_hint_align_set(fr, EVAS_HINT_FILL, EVAS_HINT_FILL); + evas_object_size_hint_weight_set(fr, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_show(fr); + main_ec_ent->entry = elm_entry_add(main_ec_ent->win); elm_entry_scrollable_set(main_ec_ent->entry, EINA_TRUE); elm_entry_line_wrap_set(main_ec_ent->entry, _ent_cfg->wrap_type); elm_entry_cnp_mode_set(main_ec_ent->entry, ELM_CNP_MODE_PLAINTEXT); evas_object_size_hint_align_set(main_ec_ent->entry, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(main_ec_ent->entry, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - elm_box_pack_end(bx, main_ec_ent->entry); + elm_object_content_set(fr, main_ec_ent->entry); + elm_box_pack_end(bx, fr); evas_object_show(main_ec_ent->entry); pad = elm_frame_add(main_ec_ent->win); @@ -783,6 +806,7 @@ elm_main(int argc, char **argv) evas_object_smart_callback_add(main_ec_ent->win, "delete,request", my_win_del, main_ec_ent); evas_object_smart_callback_add(main_ec_ent->win, "focus,in", my_win_focused, main_ec_ent); + elm_win_center(main_ec_ent->win, EINA_TRUE, EINA_TRUE); evas_object_show(main_ec_ent->win); _load_to_entry(main_ec_ent, main_ec_ent->filename); diff --git a/src/bin/mess_header.h b/src/bin/mess_header.h index 53f2bbb..dbd5e39 100644 --- a/src/bin/mess_header.h +++ b/src/bin/mess_header.h @@ -14,6 +14,7 @@ extern int _ecrire_log_dom; struct _Ecrire_Entry { Evas_Object *entry; + Evas_Object *frame; Evas_Object *win; const char *filename; int unsaved; diff --git a/src/bin/ui/goto_dialog.c b/src/bin/ui/goto_dialog.c index fe2319a..d1f8244 100644 --- a/src/bin/ui/goto_dialog.c +++ b/src/bin/ui/goto_dialog.c @@ -68,41 +68,24 @@ ui_goto_dialog_open(Evas_Object *parent, Ecrire_Entry *ent) evas_object_show(bx); hbx = elm_box_add(win); - elm_box_padding_set(hbx, 15, 0); elm_box_horizontal_set(hbx, EINA_TRUE); evas_object_size_hint_align_set(hbx, EVAS_HINT_FILL, EVAS_HINT_FILL); - evas_object_size_hint_weight_set(hbx, EVAS_HINT_EXPAND, 0.0); + evas_object_size_hint_weight_set(hbx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_show(hbx); elm_box_pack_end(bx, hbx); - lbl = elm_label_add(win); - elm_object_text_set(lbl, _("Jump to line:")); - evas_object_size_hint_align_set(lbl, EVAS_HINT_FILL, 0.5); - evas_object_size_hint_weight_set(lbl, 0.0, 0.0); - elm_box_pack_end(hbx, lbl); - evas_object_show(lbl); - sent = elm_entry_add(win); elm_entry_scrollable_set(sent, EINA_TRUE); elm_entry_single_line_set(sent, EINA_TRUE); - evas_object_size_hint_align_set(sent, EVAS_HINT_FILL, 0.0); - evas_object_size_hint_weight_set(sent, EVAS_HINT_EXPAND, 0.0); + evas_object_size_hint_align_set(sent, EVAS_HINT_FILL, EVAS_HINT_FILL); + evas_object_size_hint_weight_set(sent, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); elm_box_pack_end(hbx, sent); evas_object_show(sent); - hbx = elm_box_add(win); - elm_box_homogeneous_set(hbx, EINA_FALSE); - elm_box_padding_set(hbx, 15, 0); - elm_box_horizontal_set(hbx, EINA_TRUE); - evas_object_size_hint_align_set(hbx, EVAS_HINT_FILL, EVAS_HINT_FILL); - evas_object_size_hint_weight_set(hbx, EVAS_HINT_EXPAND, 0.0); - evas_object_show(hbx); - elm_box_pack_end(bx, hbx); - btn = elm_button_add(win); elm_object_text_set(btn, _("Go")); - evas_object_size_hint_align_set(btn, 1.0, 0.0); - evas_object_size_hint_weight_set(btn, 0.0, 0.0); + evas_object_size_hint_align_set(btn, EVAS_HINT_FILL, 0.0); + evas_object_size_hint_weight_set(btn, 0.1, EVAS_HINT_EXPAND); evas_object_show(btn); elm_box_pack_end(hbx, btn); evas_object_smart_callback_add(btn, "clicked", _goto_clicked, entry); diff --git a/src/bin/ui/search_dialog.c b/src/bin/ui/search_dialog.c index 2e20cfc..06dfd82 100644 --- a/src/bin/ui/search_dialog.c +++ b/src/bin/ui/search_dialog.c @@ -132,7 +132,7 @@ Evas_Object * ui_find_dialog_open(Evas_Object *parent, Ecrire_Entry *ent) { Evas_Object *entry = ent->entry; - Evas_Object *win, *bg, *bx, *lbl, *hbx, *btn; + Evas_Object *win, *bg, *tbl, *bx, *exp, *pad, *lbl, *hbx, *btn; if (search_win) { @@ -155,19 +155,18 @@ ui_find_dialog_open(Evas_Object *parent, Ecrire_Entry *ent) evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_show(bx); - hbx = elm_box_add(win); - elm_box_padding_set(hbx, 15, 0); - elm_box_horizontal_set(hbx, EINA_TRUE); - evas_object_size_hint_align_set(hbx, EVAS_HINT_FILL, EVAS_HINT_FILL); - evas_object_size_hint_weight_set(hbx, EVAS_HINT_EXPAND, 0.0); - evas_object_show(hbx); - elm_box_pack_end(bx, hbx); + tbl = elm_table_add(win); + elm_table_padding_set(tbl, 15, 0); + evas_object_size_hint_align_set(tbl, EVAS_HINT_FILL, EVAS_HINT_FILL); + evas_object_size_hint_weight_set(tbl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_show(tbl); + elm_box_pack_end(bx, tbl); lbl = elm_label_add(win); - elm_object_text_set(lbl, _("Search for:")); + elm_object_text_set(lbl, _("Search:")); evas_object_size_hint_align_set(lbl, EVAS_HINT_FILL, 0.5); evas_object_size_hint_weight_set(lbl, 0.0, 0.0); - elm_box_pack_end(hbx, lbl); + elm_table_pack(tbl, lbl, 0, 0, 1, 1); evas_object_show(lbl); sent = elm_entry_add(win); @@ -175,23 +174,14 @@ ui_find_dialog_open(Evas_Object *parent, Ecrire_Entry *ent) elm_entry_single_line_set(sent, EINA_TRUE); evas_object_size_hint_align_set(sent, EVAS_HINT_FILL, 0.0); evas_object_size_hint_weight_set(sent, EVAS_HINT_EXPAND, 0.0); - elm_box_pack_end(hbx, sent); + elm_table_pack(tbl, sent, 1, 0, 1, 1); evas_object_show(sent); - hbx = elm_box_add(win); - elm_box_homogeneous_set(hbx, EINA_FALSE); - elm_box_padding_set(hbx, 15, 0); - elm_box_horizontal_set(hbx, EINA_TRUE); - evas_object_size_hint_align_set(hbx, EVAS_HINT_FILL, EVAS_HINT_FILL); - evas_object_size_hint_weight_set(hbx, EVAS_HINT_EXPAND, 0.0); - evas_object_show(hbx); - elm_box_pack_end(bx, hbx); - lbl = elm_label_add(win); - elm_object_text_set(lbl, _("Replace with:")); - evas_object_size_hint_align_set(lbl, EVAS_HINT_FILL, 0.5); + elm_object_text_set(lbl, _("Replace:")); + evas_object_size_hint_align_set(lbl, EVAS_HINT_FILL, 1.0); evas_object_size_hint_weight_set(lbl, 0.0, 0.0); - elm_box_pack_end(hbx, lbl); + elm_table_pack(tbl, lbl, 0, 1, 1, 1); evas_object_show(lbl); rent = elm_entry_add(win); @@ -199,36 +189,57 @@ ui_find_dialog_open(Evas_Object *parent, Ecrire_Entry *ent) elm_entry_single_line_set(rent, EINA_TRUE); evas_object_size_hint_align_set(rent, EVAS_HINT_FILL, 0.0); evas_object_size_hint_weight_set(rent, EVAS_HINT_EXPAND, 0.0); - elm_box_pack_end(hbx, rent); + elm_table_pack(tbl, rent, 1, 1, 1, 1); evas_object_show(rent); hbx = elm_box_add(win); elm_box_homogeneous_set(hbx, EINA_FALSE); - elm_box_padding_set(hbx, 15, 0); elm_box_horizontal_set(hbx, EINA_TRUE); - evas_object_size_hint_align_set(hbx, 1.0, EVAS_HINT_FILL); - evas_object_size_hint_weight_set(hbx, 0.0, 0.0); + evas_object_size_hint_align_set(hbx, EVAS_HINT_FILL, EVAS_HINT_FILL); + evas_object_size_hint_weight_set(hbx, EVAS_HINT_EXPAND, 0.0); evas_object_show(hbx); elm_box_pack_end(bx, hbx); + exp = elm_box_add(win); + evas_object_size_hint_align_set(exp, 1.0, EVAS_HINT_FILL); + evas_object_size_hint_weight_set(exp, EVAS_HINT_EXPAND, 0.0); + elm_box_horizontal_set(exp, EINA_TRUE); + elm_box_homogeneous_set(exp, EINA_TRUE); + evas_object_show(exp); + elm_box_pack_end(hbx, exp); + + pad = elm_frame_add(win); + elm_object_style_set(pad, "pad_small"); + evas_object_size_hint_align_set(pad, EVAS_HINT_FILL, EVAS_HINT_FILL); + evas_object_size_hint_weight_set(pad, EVAS_HINT_EXPAND, 0.0); + evas_object_show(pad); + btn = elm_button_add(win); elm_object_text_set(btn, _("Find")); evas_object_size_hint_align_set(btn, 1.0, 0.0); - evas_object_size_hint_weight_set(btn, 0.0, 0.0); + evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, 0.0); evas_object_show(btn); - elm_box_pack_end(hbx, btn); + elm_object_content_set(pad, btn); + elm_box_pack_end(exp, pad); evas_object_smart_callback_add(btn, "clicked", _find_clicked, entry); + pad = elm_frame_add(win); + elm_object_style_set(pad, "pad_small"); + evas_object_size_hint_align_set(pad, EVAS_HINT_FILL, EVAS_HINT_FILL); + evas_object_size_hint_weight_set(pad, EVAS_HINT_EXPAND, 0.0); + evas_object_show(pad); + btn = elm_button_add(win); elm_object_text_set(btn, _("Replace")); evas_object_size_hint_align_set(btn, 1.0, 0.0); - evas_object_size_hint_weight_set(btn, 0.0, 0.0); + evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, 0.0); evas_object_show(btn); - elm_box_pack_end(hbx, btn); + elm_object_content_set(pad, btn); + elm_box_pack_end(exp, pad); evas_object_smart_callback_add(btn, "clicked", _replace_clicked, entry); /* Forcing it to be the min height. */ - evas_object_resize(win, 300, 1); + evas_object_resize(win, 250, 1); evas_object_show(win); cur_find = NULL; --
