netstar pushed a commit to branch master.

http://git.enlightenment.org/apps/ecrire.git/commit/?id=dfb5a9594d4a57211b09ed644466189b9649166e

commit dfb5a9594d4a57211b09ed644466189b9649166e
Author: Alastair Poole <nets...@gmail.com>
Date:   Wed Apr 7 10:03:17 2021 +0100

    ecrire: Move things...add toolbar.
    
    More changes...to come.
---
 src/bin/{mess_header.h => Ecrire.h} |  21 +++--
 src/bin/cfg.c                       |   2 +-
 src/bin/file_utils.c                |   2 +-
 src/bin/main.c                      | 177 ++++++++++++++++++++++++------------
 src/bin/meson.build                 |   2 +-
 src/bin/ui/alerts.c                 |  13 ++-
 src/bin/ui/file_related.c           |   2 +-
 src/bin/ui/goto_dialog.c            |  75 ++++++++-------
 src/bin/ui/search_dialog.c          |   2 +-
 src/bin/ui/settings.c               |  11 +--
 src/bin/ui/ui.h                     |   2 +-
 11 files changed, 193 insertions(+), 116 deletions(-)

diff --git a/src/bin/mess_header.h b/src/bin/Ecrire.h
similarity index 65%
rename from src/bin/mess_header.h
rename to src/bin/Ecrire.h
index 4f417a3..3205877 100644
--- a/src/bin/mess_header.h
+++ b/src/bin/Ecrire.h
@@ -1,5 +1,5 @@
-#ifndef _MESS_HEADER_H
-#define _MESS_HEADER_H
+#ifndef _ECRIRE_H
+#define _ECRIRE_H
 
 #include <Evas.h>
 
@@ -18,7 +18,15 @@ struct _Ecrire_Entry {
      Evas_Object *win;
      const char *filename;
      int unsaved;
-     Elm_Object_Item *copy_item, *cut_item, *save_item, *paste_item, 
*undo_item, *redo_item;
+     struct
+     {
+        Elm_Object_Item *copy, *cut, *save, *paste, *undo, *redo;
+     } menu;
+
+     struct
+     {
+        Elm_Object_Item *copy, *cut, *save, *paste, *undo, *redo;
+     } toolbar;
 
      struct
      {
@@ -35,9 +43,10 @@ struct _Ecrire_Entry {
 
 typedef struct _Ecrire_Entry Ecrire_Entry;
 
-void editor_font_choose(Ecrire_Entry *ent, const char *font, int size);
-void editor_save(Ecrire_Entry *ent, void *callback_func);
-void save_do(const char *file, Ecrire_Entry *ent);
+void ecrire_font_set_save(Ecrire_Entry *inst, const char *font, int size);
+void ecrire_entry_font_set(Ecrire_Entry *inst, const char *font, int 
font_size);
+void ecrire_save(Ecrire_Entry *inst, void *callback_func);
+void ecrire_entry_save(Ecrire_Entry *inst, const char *file);
 
 #ifdef ENABLE_NLS
 # include <libintl.h>
diff --git a/src/bin/cfg.c b/src/bin/cfg.c
index 35cf501..135db5e 100644
--- a/src/bin/cfg.c
+++ b/src/bin/cfg.c
@@ -2,7 +2,7 @@
 #include <Efreet.h>
 
 #include "cfg.h"
-#include "mess_header.h"
+#include "Ecrire.h"
 
 Ent_Cfg *_ent_cfg;
 static Eet_Data_Descriptor * _ent_cfg_descriptor;
diff --git a/src/bin/file_utils.c b/src/bin/file_utils.c
index 8289be7..cb9e982 100644
--- a/src/bin/file_utils.c
+++ b/src/bin/file_utils.c
@@ -3,7 +3,7 @@
 #include <stdio.h>
 #include <string.h>
 #include "file_utils.h"
-#include "mess_header.h"
+#include "Ecrire.h"
 
 static char *
 _buf_append(char *buf, const char *str, int *len, int *alloc)
diff --git a/src/bin/main.c b/src/bin/main.c
index 34b86a3..19eb534 100644
--- a/src/bin/main.c
+++ b/src/bin/main.c
@@ -2,7 +2,7 @@
 #include <unistd.h>
 #include <Elementary.h>
 
-#include "mess_header.h"
+#include "Ecrire.h"
 #include "file_utils.h"
 #include "cfg.h"
 #include "ui/ui.h"
@@ -10,16 +10,22 @@
 static Eina_Unicode plain_utf8 = EINA_TRUE;
 
 static void print_usage(const char *bin);
-static void editor_font_set(Ecrire_Entry *inst, const char *font, int 
font_size);
 
 /* specific log domain to help debug only ecrire */
 int _ecrire_log_dom = -1;
 
+static void
+_win_del_do(void *data)
+{
+   Ecrire_Entry *inst = data;
+   evas_object_del(inst->win);
+}
+
 static void
 _init_entry(Ecrire_Entry *inst)
 {
    Elm_Entry_Change_Info *inf;
-   editor_font_set(inst, inst->font.name, inst->font.size);
+   ecrire_entry_font_set(inst, inst->font.name, inst->font.size);
 
    /* Init the undo stack */
    EINA_LIST_FREE(inst->undo_stack, inf)
@@ -42,21 +48,17 @@ _init_entry(Ecrire_Entry *inst)
    inst->last_saved_stack_ptr = inst->undo_stack_ptr;
    inst->undo_stack_can_merge = EINA_FALSE;
 
-   elm_object_item_disabled_set(inst->undo_item, EINA_TRUE);
-   elm_object_item_disabled_set(inst->redo_item, EINA_TRUE);
+   elm_object_item_disabled_set(inst->menu.undo, EINA_TRUE);
+   elm_object_item_disabled_set(inst->menu.redo, EINA_TRUE);
 }
 
 static void
-_alert_if_need_saving(void (*done)(void *data), Ecrire_Entry *inst)
+_alert_if_need_saving(void (*cb_done)(void *data), Ecrire_Entry *inst)
 {
-   if (!elm_object_item_disabled_get(inst->save_item))
-     {
-        ui_alert_need_saving(inst->entry, done, inst);
-     }
+   if (!elm_object_item_disabled_get(inst->menu.save))
+     ui_alert_need_saving(inst->entry, cb_done, inst);
    else
-     {
-        done(inst);
-     }
+     cb_done(inst);
 }
 
 static void
@@ -64,8 +66,10 @@ _cb_sel_start(void *data, Evas_Object *obj EINA_UNUSED,
               void *event_info EINA_UNUSED)
 {
    Ecrire_Entry *inst = data;
-   elm_object_item_disabled_set(inst->copy_item, EINA_FALSE);
-   elm_object_item_disabled_set(inst->cut_item, EINA_FALSE);
+   elm_object_item_disabled_set(inst->menu.copy, EINA_FALSE);
+   elm_object_item_disabled_set(inst->menu.cut, EINA_FALSE);
+   elm_object_item_disabled_set(inst->toolbar.copy, EINA_FALSE);
+   elm_object_item_disabled_set(inst->toolbar.cut, EINA_FALSE);
 }
 
 static void
@@ -73,14 +77,16 @@ _cb_sel_clear(void *data EINA_UNUSED, Evas_Object *obj 
EINA_UNUSED,
               void *event_info EINA_UNUSED)
 {
    Ecrire_Entry *inst = data;
-   elm_object_item_disabled_set(inst->copy_item, EINA_TRUE);
-   elm_object_item_disabled_set(inst->cut_item, EINA_TRUE);
+   elm_object_item_disabled_set(inst->menu.copy, EINA_TRUE);
+   elm_object_item_disabled_set(inst->menu.cut, EINA_TRUE);
+   elm_object_item_disabled_set(inst->toolbar.copy, EINA_TRUE);
+   elm_object_item_disabled_set(inst->toolbar.cut, EINA_TRUE);
 }
 
 static void
 _update_cur_file(const char *file, Ecrire_Entry *inst)
 {
-   const char *saving = (!elm_object_item_disabled_get(inst->save_item)) ?
+   const char *saving = (!elm_object_item_disabled_get(inst->menu.save)) ?
       "*" : "";
    eina_stringshare_replace(&inst->filename, file);
      {
@@ -131,19 +137,28 @@ _cb_cur_changed_manual(void *data, Evas_Object *obj 
EINA_UNUSED, void *event_inf
 static void
 _update_undo_redo_items(Ecrire_Entry *inst)
 {
-   elm_object_item_disabled_set(inst->undo_item,
-         !eina_list_next(inst->undo_stack_ptr));
-   elm_object_item_disabled_set(inst->redo_item,
-         !eina_list_prev(inst->undo_stack_ptr));
+   Eina_Bool disabled;
+
+   disabled = !eina_list_next(inst->undo_stack_ptr);
+
+   elm_object_item_disabled_set(inst->menu.undo, disabled);
+   elm_object_item_disabled_set(inst->toolbar.undo, disabled);
+
+   disabled = !eina_list_prev(inst->undo_stack_ptr);
+
+   elm_object_item_disabled_set(inst->menu.redo, disabled);
+   elm_object_item_disabled_set(inst->toolbar.redo, disabled);
 
    if (inst->undo_stack_ptr == inst->last_saved_stack_ptr)
      {
-        elm_object_item_disabled_set(inst->save_item, EINA_TRUE);
+        elm_object_item_disabled_set(inst->menu.save, EINA_TRUE);
+        elm_object_item_disabled_set(inst->toolbar.save, EINA_TRUE);
         _update_cur_file(inst->filename, inst);
      }
-   else if (elm_object_item_disabled_get(inst->save_item))
+   else if (elm_object_item_disabled_get(inst->menu.save))
      {
-        elm_object_item_disabled_set(inst->save_item, EINA_FALSE);
+        elm_object_item_disabled_set(inst->menu.save, EINA_FALSE);
+        elm_object_item_disabled_set(inst->toolbar.save, EINA_FALSE);
         _update_cur_file(inst->filename, inst);
      }
 }
@@ -325,7 +340,8 @@ static void
 _cb_ent_changed(void *data, Evas_Object *obj EINA_UNUSED, void *event_info)
 {
    Ecrire_Entry *inst = data;
-   elm_object_item_disabled_set(inst->save_item, EINA_FALSE);
+   elm_object_item_disabled_set(inst->menu.save, EINA_FALSE);
+   elm_object_item_disabled_set(inst->toolbar.save, EINA_FALSE);
    _update_cur_file(inst->filename, inst);
 
    /* Undo/redo */
@@ -355,7 +371,8 @@ _load_to_entry(Ecrire_Entry *inst, const char *file)
              elm_object_text_set(inst->entry, "");
              _init_entry(inst);
              elm_entry_entry_append(inst->entry, buf);
-             elm_object_item_disabled_set(inst->save_item, EINA_TRUE);
+             elm_object_item_disabled_set(inst->menu.save, EINA_TRUE);
+             elm_object_item_disabled_set(inst->toolbar.save, EINA_TRUE);
              free(buf);
           }
      }
@@ -381,7 +398,7 @@ _cb_fs_open_done(void *data, Evas_Object *obj EINA_UNUSED,
 }
 
 void
-save_do(const char *file, Ecrire_Entry *inst)
+ecrire_entry_save(Ecrire_Entry *inst, const char *file)
 {
    Eina_Bool ok;
 
@@ -392,7 +409,8 @@ save_do(const char *file, Ecrire_Entry *inst)
 
    if (ok)
      {
-        elm_object_item_disabled_set(inst->save_item, EINA_TRUE);
+        elm_object_item_disabled_set(inst->menu.save, EINA_TRUE);
+        elm_object_item_disabled_set(inst->toolbar.save, EINA_TRUE);
         inst->last_saved_stack_ptr = inst->undo_stack_ptr;
         _update_cur_file(file, inst);
      }
@@ -400,14 +418,14 @@ save_do(const char *file, Ecrire_Entry *inst)
 }
 
 static void
-_cb_fs_save_done(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
-                 void *event_info)
+_cb_fs_ecrire_entry_save(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
+                           void *event_info)
 {
    Ecrire_Entry *inst = data;
-   const char *selected = event_info;
+   const char *filename = event_info;
 
-   if (selected)
-     save_do(selected, inst);
+   if (filename)
+     ecrire_entry_save(inst, filename);
 }
 
 static void
@@ -432,10 +450,10 @@ _cb_open(void *data, Evas_Object *obj EINA_UNUSED, void 
*event_info EINA_UNUSED)
 }
 
 void
-editor_save(Ecrire_Entry *inst, void *callback_func)
+ecrire_save(Ecrire_Entry *inst, void *callback_func)
 {
    if (inst->filename)
-     save_do(inst->filename, inst);
+     ecrire_entry_save(inst, inst->filename);
    else
      ui_file_open_save_dialog_open(inst->win, EINA_TRUE, callback_func, inst);
 }
@@ -444,20 +462,14 @@ static void
 _cb_save(void *data, Evas_Object *obj EINA_UNUSED, void *event_info 
EINA_UNUSED)
 {
    Ecrire_Entry *inst = data;
-   editor_save(inst, _cb_fs_save_done);
+   ecrire_save(inst, _cb_fs_ecrire_entry_save);
 }
 
 static void
 _cb_save_as(void *data, Evas_Object *obj EINA_UNUSED, void *event_info 
EINA_UNUSED)
 {
    Ecrire_Entry *inst = data;
-   ui_file_open_save_dialog_open(inst->win, EINA_TRUE, _cb_fs_save_done, inst);
-}
-
-static void
-_win_del_do(void *data EINA_UNUSED)
-{
-   elm_exit();
+   ui_file_open_save_dialog_open(inst->win, EINA_TRUE, 
_cb_fs_ecrire_entry_save, inst);
 }
 
 static void
@@ -471,7 +483,8 @@ _new_do(void *data)
      {
         elm_object_text_set(inst->entry, "");
         _init_entry(inst);
-        elm_object_item_disabled_set(inst->save_item, EINA_TRUE);
+        elm_object_item_disabled_set(inst->menu.save, EINA_TRUE);
+        elm_object_item_disabled_set(inst->toolbar.save, EINA_TRUE);
         _update_cur_file(NULL, inst);
      }
 }
@@ -560,8 +573,8 @@ _cb_key_down(void *data, Evas *e EINA_UNUSED, Evas_Object 
*obj, void *event)
      }
 }
 
-static void
-editor_font_set(Ecrire_Entry *inst, const char *font, int font_size)
+void
+ecrire_entry_font_set(Ecrire_Entry *inst, const char *font, int font_size)
 {
    const Evas_Object *tb = elm_entry_textblock_get(inst->entry);
    Eina_Strbuf *sbuf;
@@ -592,9 +605,9 @@ editor_font_set(Ecrire_Entry *inst, const char *font, int 
font_size)
 }
 
 void
-editor_font_choose(Ecrire_Entry *inst, const char *font, int size)
+ecrire_font_set_save(Ecrire_Entry *inst, const char *font, int size)
 {
-   editor_font_set(inst, font, size);
+   ecrire_entry_font_set(inst, font, size);
 
    eina_stringshare_replace(&_ent_cfg->font.name, font);
    _ent_cfg->font.size = size;
@@ -602,6 +615,46 @@ editor_font_choose(Ecrire_Entry *inst, const char *font, 
int size)
    ecrire_cfg_save();
 }
 
+
+static Evas_Object *
+_ecrire_toolbar_add(Ecrire_Entry *inst)
+{
+   Evas_Object *tb;
+   Elm_Object_Item *it;
+
+   tb = elm_toolbar_add(inst->win);
+   elm_toolbar_align_set(tb, 0);
+   elm_toolbar_horizontal_set(tb, 1);
+   elm_toolbar_icon_size_set(tb, 24);
+   evas_object_size_hint_align_set(tb, EVAS_HINT_FILL, EVAS_HINT_FILL);
+   evas_object_size_hint_weight_set(tb, EVAS_HINT_EXPAND, 0);
+   evas_object_show(tb);
+
+   elm_toolbar_item_append(tb, "document-new", _("New"), _cb_new, inst);
+   elm_toolbar_item_append(tb, "document-open", _("Open"), _cb_open, inst);
+   inst->toolbar.save = elm_toolbar_item_append(tb, "document-save", 
_("Save"), _cb_save, inst);
+   elm_toolbar_item_append(tb, "document-save-as", _("Save As"), _cb_save_as, 
inst);
+   it = elm_toolbar_item_append(tb, "separator", "", NULL, NULL);
+   elm_toolbar_item_separator_set(it, 1);
+   inst->toolbar.cut = elm_toolbar_item_append(tb, "edit-cut", _("Cut"), 
_cb_cut, inst);
+   inst->toolbar.copy = elm_toolbar_item_append(tb, "edit-copy", _("Copy"), 
_cb_copy, inst);
+   inst->toolbar.paste = elm_toolbar_item_append(tb, "edit-paste", _("Paste"), 
_cb_paste, inst);
+   it = elm_toolbar_item_append(tb, "separator", "", NULL, NULL);
+   elm_toolbar_item_separator_set(it, 1);
+   inst->toolbar.undo = elm_toolbar_item_append(tb, "edit-undo", _("Undo"), 
_cb_undo, inst);
+   inst->toolbar.redo = elm_toolbar_item_append(tb, "edit-redo", _("Redo"), 
_cb_redo, inst);
+   elm_toolbar_item_append(tb, "edit-find-replace", _("Find"), _cb_find, inst);
+   elm_toolbar_item_append(tb, "go-jump", _("Go to..."), _cb_goto_line, inst);
+   it = elm_toolbar_item_append(tb, "separator", "", NULL, NULL);
+   elm_toolbar_item_separator_set(it, 1);
+   elm_toolbar_item_append(tb, "preferences-system", _("Settings"), 
_cb_font_settings, inst);
+
+   elm_object_item_disabled_set(inst->toolbar.copy, EINA_TRUE);
+   elm_object_item_disabled_set(inst->toolbar.cut, EINA_TRUE);
+   elm_object_item_disabled_set(inst->toolbar.save, EINA_TRUE);
+   return tb;
+}
+
 static void
 _ecrire_menu_add(Ecrire_Entry *inst)
 {
@@ -612,40 +665,42 @@ _ecrire_menu_add(Ecrire_Entry *inst)
    it = elm_menu_item_add(menu, NULL, NULL, _("File"), NULL, NULL);
    elm_menu_item_add(menu, it, "document-new", _("New"), _cb_new, inst);
    elm_menu_item_add(menu, it, "document-open", _("Open"), _cb_open, inst);
-   inst->save_item =
+   inst->menu.save =
    elm_menu_item_add(menu, it, "document-save", _("Save"), _cb_save, inst);
    elm_menu_item_add(menu, it, "document-save-as", _("Save As"), _cb_save_as, 
inst);
    elm_menu_item_separator_add(menu, it);
    elm_menu_item_add(menu, it, "application-exit", _("Exit"), _cb_exit, inst);
 
    it = elm_menu_item_add(menu, NULL, NULL, _("Edit"), NULL, NULL);
-   inst->cut_item =
+   inst->menu.cut =
    elm_menu_item_add(menu, it, "edit-cut", _("Cut"), _cb_cut, inst);
-   inst->copy_item =
+   inst->menu.copy =
    elm_menu_item_add(menu, it, "edit-copy", _("Copy"), _cb_copy, inst);
-   inst->paste_item =
+   inst->menu.paste =
    elm_menu_item_add(menu, it, "edit-paste", _("Paste"), _cb_paste, inst);
    elm_menu_item_separator_add(menu, it);
-   inst->undo_item =
+   inst->menu.undo =
    elm_menu_item_add(menu, it, "edit-undo", _("Undo"), _cb_undo, inst);
-   inst->redo_item =
+   inst->menu.redo =
    elm_menu_item_add(menu, it, "edit-redo", _("Redo"), _cb_redo, inst);
    elm_menu_item_separator_add(menu, it);
    elm_menu_item_add(menu, it, "edit-find-replace", _("Find"), _cb_find, inst);
-   elm_menu_item_add(menu, it, "go-jump", _("Go to line.."), _cb_goto_line, 
inst);
+   elm_menu_item_add(menu, it, "go-jump", _("Go to line..."), _cb_goto_line, 
inst);
    elm_menu_item_separator_add(menu, it);
    elm_menu_item_add(menu, it, "preferences-system", _("Settings"), 
_cb_font_settings, inst);
 
    /* We don't have a selection when we start, make the items disabled */
-   elm_object_item_disabled_set(inst->copy_item, EINA_TRUE);
-   elm_object_item_disabled_set(inst->cut_item, EINA_TRUE);
-   elm_object_item_disabled_set(inst->save_item, EINA_TRUE);
+   elm_object_item_disabled_set(inst->menu.copy, EINA_TRUE);
+   elm_object_item_disabled_set(inst->menu.cut, EINA_TRUE);
+   elm_object_item_disabled_set(inst->menu.save, EINA_TRUE);
+
 }
 
 EAPI_MAIN int
 elm_main(int argc, char **argv)
 {
    Evas_Object *win, *pad, *fr, *bx, *entry, *cur_info;
+   Evas_Object *toolbar;
    Evas_Coord w = 600, h = 600;
    int c;
 
@@ -718,6 +773,7 @@ elm_main(int argc, char **argv)
 
    DBG("Opening filename: '%s'", inst->filename);
 
+   elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED);
    inst->win = win = elm_win_util_standard_add("erire", "Ecrire");
    elm_win_autodel_set(inst->win, EINA_FALSE);
 
@@ -726,6 +782,9 @@ elm_main(int argc, char **argv)
    evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
    evas_object_show(bx);
 
+   toolbar = _ecrire_toolbar_add(inst);
+   elm_box_pack_end(bx, toolbar);
+
    inst->frame = fr = elm_frame_add(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);
diff --git a/src/bin/meson.build b/src/bin/meson.build
index 5e761e6..46605fd 100644
--- a/src/bin/meson.build
+++ b/src/bin/meson.build
@@ -4,7 +4,7 @@ executable('ecrire', [
     'file_utils.c',
     'file_utils.h',
     'main.c',
-    'mess_header.h',
+    'Ecrire.h',
     'ui/alerts.c',
     'ui/file_related.c',
     'ui/settings.c',
diff --git a/src/bin/ui/alerts.c b/src/bin/ui/alerts.c
index 9104459..6131356 100644
--- a/src/bin/ui/alerts.c
+++ b/src/bin/ui/alerts.c
@@ -1,7 +1,7 @@
 #include "config.h"
 #include <Elementary.h>
 
-#include "../mess_header.h"
+#include "../Ecrire.h"
 
 static void *done_data;
 static void (*done_cb)(void *data);
@@ -11,19 +11,22 @@ _discard(void *data, Evas_Object *obj EINA_UNUSED, void 
*event_info EINA_UNUSED)
 {
    Ecrire_Entry *ent = done_data;
 
-   evas_object_del(data);
+   if (data)
+     evas_object_del(data);
    done_cb(ent);
 }
 
 static void
 _fs_save_done(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
-      void *event_info)
+              void *event_info)
 {
+   Ecrire_Entry *inst;
    const char *selected = event_info;
 
+   inst = done_data;
    if (selected)
      {
-        save_do(selected, done_data);
+        ecrire_entry_save(inst, selected);
         done_cb(data);
      }
 }
@@ -34,7 +37,7 @@ _save(void *data, Evas_Object *obj EINA_UNUSED, void 
*event_info EINA_UNUSED)
    Ecrire_Entry *ent = done_data;
 
    evas_object_del(data);
-   editor_save(ent, _fs_save_done);
+   ecrire_save(ent, _fs_save_done);
 }
 
 static void
diff --git a/src/bin/ui/file_related.c b/src/bin/ui/file_related.c
index 8374d61..ebd868b 100644
--- a/src/bin/ui/file_related.c
+++ b/src/bin/ui/file_related.c
@@ -1,7 +1,7 @@
 #include "config.h"
 #include <Elementary.h>
 
-#include "../mess_header.h"
+#include "../Ecrire.h"
 
 typedef struct _File_Selector_Data
 {
diff --git a/src/bin/ui/goto_dialog.c b/src/bin/ui/goto_dialog.c
index 3f01a13..c1ae743 100644
--- a/src/bin/ui/goto_dialog.c
+++ b/src/bin/ui/goto_dialog.c
@@ -1,9 +1,9 @@
 #include "config.h"
 #include <Elementary.h>
 
-#include "../mess_header.h"
+#include "../Ecrire.h"
 
-static Evas_Object *goto_win, *sent;
+static Evas_Object *goto_popup, *sent;
 
 static void
 _goto_do(Evas_Object *entry, const char *text)
@@ -14,86 +14,93 @@ _goto_do(Evas_Object *entry, const char *text)
 
    line = atoi(text);
 
+   evas_object_hide(goto_popup);
    if (line > 0)
      {
-        evas_object_hide(goto_win);
-       evas_textblock_cursor_line_set(mcur, line-1);
-       elm_entry_calc_force(entry);
-
-       elm_object_focus_set(entry, EINA_TRUE);
+        evas_textblock_cursor_line_set(mcur, line-1);
+        elm_entry_calc_force(entry);
+        evas_object_smart_callback_call(entry, "cursor,changed", NULL);
+        elm_object_focus_set(entry, EINA_TRUE);
      }
 }
 
 static void
-_goto_clicked(void *data,
-     Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
+_cb_goto_clicked(void *data, Evas_Object *obj EINA_UNUSED, void *event_info 
EINA_UNUSED)
 {
    _goto_do(data, elm_object_text_get(sent));
 }
 
 static void
-_my_win_del(void *data EINA_UNUSED, Evas_Object *obj, void *event_info)
+_cb_goto_key_down(void *data, Evas *e EINA_UNUSED, Evas_Object *obj 
EINA_UNUSED, void *event_info)
+{
+   Evas_Event_Key_Down *ev;
+
+   ev = event_info;
+
+   if (!strcmp(ev->keyname, "Return"))
+     {
+        _goto_do(data, elm_object_text_get(sent));
+     }
+}
+
+static void
+_my_parent_del(void *data EINA_UNUSED, Evas_Object *obj, void *event_info)
 {
    (void) obj;
    (void) event_info;
    /* Reset the stuff that need reseting */
-   goto_win = NULL;
+   goto_popup = NULL;
 }
 
 Evas_Object *
 ui_goto_dialog_open(Evas_Object *parent, Ecrire_Entry *ent)
 {
    Evas_Object *entry = ent->entry;
-   Evas_Object *win, *bg, *bx, *hbx, *btn;
+   Evas_Object *popup, *bx, *hbx, *btn;
 
-   if (goto_win)
+   if (goto_popup)
      {
-        evas_object_show(goto_win);
-        return goto_win;
+        evas_object_show(goto_popup);
+        return goto_popup;
      }
 
-   goto_win = win = elm_win_add(parent, "jump-to", ELM_WIN_TOOLBAR);
-   elm_win_autodel_set(win, EINA_TRUE);
-   elm_win_title_set(win, _("Jump to"));
-   evas_object_smart_callback_add(win, "delete,request", _my_win_del, entry);
-
-   bg = elm_bg_add(win);
-   elm_win_resize_object_add(win, bg);
-   evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-   evas_object_show(bg);
+   goto_popup = popup = elm_popup_add(parent);
+   elm_object_part_text_set(popup, "title,text", _("Go to line..."));
+   evas_object_smart_callback_add(popup, "dismissed", _my_parent_del, entry);
 
-   bx = elm_box_add(win);
-   elm_win_resize_object_add(win, bx);
+   bx = elm_box_add(parent);
    evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
    evas_object_show(bx);
 
-   hbx = elm_box_add(win);
+   hbx = elm_box_add(parent);
    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, EVAS_HINT_EXPAND);
    evas_object_show(hbx);
    elm_box_pack_end(bx, hbx);
 
-   sent = elm_entry_add(win);
+   sent = elm_entry_add(parent);
    elm_entry_scrollable_set(sent, EINA_TRUE);
    elm_entry_single_line_set(sent, EINA_TRUE);
+   elm_entry_editable_set(sent, EINA_TRUE);
    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);
+   evas_object_event_callback_add(sent, EVAS_CALLBACK_KEY_DOWN, 
_cb_goto_key_down, entry);
 
-   btn = elm_button_add(win);
+   btn = elm_button_add(parent);
    elm_object_text_set(btn, _("Go"));
    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);
+   evas_object_smart_callback_add(btn, "clicked", _cb_goto_clicked, entry);
+   elm_object_content_set(popup, bx);
 
-   /* Forcing it to be the min height. */
-   evas_object_resize(win, 300, 1);
-   evas_object_show(win);
+   elm_popup_orient_set(popup, ELM_POPUP_ORIENT_CENTER);
+   evas_object_show(popup);
 
-   return win;
+   return popup;
 }
 
diff --git a/src/bin/ui/search_dialog.c b/src/bin/ui/search_dialog.c
index 06dfd82..85bbea9 100644
--- a/src/bin/ui/search_dialog.c
+++ b/src/bin/ui/search_dialog.c
@@ -1,7 +1,7 @@
 #include "config.h"
 #include <Elementary.h>
 
-#include "../mess_header.h"
+#include "../Ecrire.h"
 
 static Evas_Object *search_win, *sent, *rent;
 static Eina_Bool forward = EINA_TRUE;
diff --git a/src/bin/ui/settings.c b/src/bin/ui/settings.c
index f162504..53b83f6 100644
--- a/src/bin/ui/settings.c
+++ b/src/bin/ui/settings.c
@@ -1,7 +1,7 @@
 #include "config.h"
 #include <Elementary.h>
 
-#include "../mess_header.h"
+#include "../Ecrire.h"
 
 Evas_Object *_settings_popup;
 
@@ -72,7 +72,7 @@ _cb_font_selected(void *data, Evas_Object *obj EINA_UNUSED,
      return;
 
    eina_stringshare_replace(&inst->font.name, selected);
-   editor_font_choose(inst, inst->font.name, inst->font.size);
+   ecrire_font_set_save(inst, inst->font.name, inst->font.size);
 }
 
 static void
@@ -84,7 +84,7 @@ _cb_spinner_delay_changed(void *data, Evas_Object *obj 
EINA_UNUSED,
    inst->font.size = elm_spinner_value_get(obj);
 
    if (inst->font.name)
-     editor_font_choose(inst, inst->font.name, inst->font.size);
+     ecrire_font_set_save(inst, inst->font.name, inst->font.size);
 }
 
 static void
@@ -102,11 +102,11 @@ _cb_check_changed(void *data, Evas_Object *obj,
    if (enabled)
      {
         inst->font.name = NULL;
-        editor_font_choose(inst, NULL, 0);
+        ecrire_font_set_save(inst, NULL, 0);
      }
    else if (inst->font.name)
      {
-        editor_font_choose(inst, inst->font.name, inst->font.size);
+        ecrire_font_set_save(inst, inst->font.name, inst->font.size);
      }
 }
 
@@ -121,7 +121,6 @@ _cb_btn_clicked(void *data, Evas_Object *obj,
 Evas_Object *
 ui_settings_open(Evas_Object *parent, Ecrire_Entry *inst)
 {
-   Evas_Object *entry = inst->entry;
    Evas_Object *pop, *tb, *rec, *bx, *hbx, *btn, *list, *lb, *sp, *ck;
 
    if (_settings_popup)
diff --git a/src/bin/ui/ui.h b/src/bin/ui/ui.h
index d35801b..ebf869b 100644
--- a/src/bin/ui/ui.h
+++ b/src/bin/ui/ui.h
@@ -1,7 +1,7 @@
 #ifndef _UI_H
 #define _UI_H
 
-#include "../mess_header.h"
+#include "../Ecrire.h"
 
 void ui_file_open_save_dialog_open(Evas_Object *parent, Eina_Bool save, 
Evas_Smart_Cb func, void *data);
 

-- 


Reply via email to