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;

-- 


Reply via email to