ajwillia-ms pushed a commit to branch master.

http://git.enlightenment.org/tools/examples.git/commit/?id=c99595e00a0f99f1cd1b6fab91e4b913059c647f

commit c99595e00a0f99f1cd1b6fab91e4b913059c647f
Author: Andy Williams <a...@andywilliams.me>
Date:   Thu Dec 7 12:39:59 2017 +0000

    Let's use the window callback to avoid elm_policy needs
---
 apps/c/life/src/life_main.c             | 16 ++++++++++++----
 apps/c/texteditor/src/texteditor_main.c | 10 +++++-----
 tutorial/c/hello-gui/src/gui_main.c     | 10 +++++-----
 3 files changed, 22 insertions(+), 14 deletions(-)

diff --git a/apps/c/life/src/life_main.c b/apps/c/life/src/life_main.c
index 63f97f8..ba0b465 100644
--- a/apps/c/life/src/life_main.c
+++ b/apps/c/life/src/life_main.c
@@ -15,6 +15,13 @@ _life_win_resize(void *data EINA_UNUSED, const Efl_Event 
*event)
 }
 
 static void
+_life_win_quit(void *data EINA_UNUSED, const Efl_Event *event EINA_UNUSED)
+{
+   // quit the mainloop
+   efl_exit(0);
+}
+
+static void
 _life_win_touch(void *data EINA_UNUSED, const Efl_Event *event)
 {
    int cellx, celly, i;
@@ -59,10 +66,11 @@ _life_win_setup(void)
                  efl_ui_win_autodel_set(efl_added, EINA_TRUE));
    if (!win) return NULL;
 
-   // TODO
-   elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED);
-   w = 10 * LIFE_BOARD_WIDTH * efl_ui_scale_get(win);
-   h = 10 * LIFE_BOARD_HEIGHT * efl_ui_scale_get(win);
+   // when the user clicks "close" on a window there is a request to delete
+   efl_event_callback_add(win, EFL_UI_WIN_EVENT_DELETE_REQUEST, 
_life_win_quit, NULL);
+
+   w = 10 * LIFE_BOARD_WIDTH * efl_gfx_scale_get(win);
+   h = 10 * LIFE_BOARD_HEIGHT * efl_gfx_scale_get(win);
 
    life_board_init();
    life_render_init(win);
diff --git a/apps/c/texteditor/src/texteditor_main.c 
b/apps/c/texteditor/src/texteditor_main.c
index d0b0f5e..0029455 100644
--- a/apps/c/texteditor/src/texteditor_main.c
+++ b/apps/c/texteditor/src/texteditor_main.c
@@ -14,7 +14,7 @@ _gui_new_clicked_cb(void *data EINA_UNUSED, const Efl_Event 
*event EINA_UNUSED)
 }
 
 static void
-_gui_quit_clicked_cb(void *data EINA_UNUSED, const Efl_Event *event 
EINA_UNUSED)
+_gui_quit_cb(void *data EINA_UNUSED, const Efl_Event *event EINA_UNUSED)
 {
    efl_exit(0);
 }
@@ -52,7 +52,7 @@ _gui_toolbar_setup(Efl_Ui_Box *parent)
    efl_add(EFL_UI_BOX_CLASS, parent,
            efl_pack(bar, efl_added),
            efl_gfx_size_hint_weight_set(efl_added, 10, 0));
-   _gui_toolbar_button_add(bar, "Quit", "application-exit", 
_gui_quit_clicked_cb);
+   _gui_toolbar_button_add(bar, "Quit", "application-exit", _gui_quit_cb);
 }
 
 static void
@@ -65,6 +65,9 @@ _gui_setup()
                  efl_text_set(efl_added, "Text Editor"),
                  efl_ui_win_autodel_set(efl_added, EINA_TRUE));
 
+   // when the user clicks "close" on a window there is a request to delete
+   efl_event_callback_add(win, EFL_UI_WIN_EVENT_DELETE_REQUEST, _gui_quit_cb, 
NULL);
+
    box = efl_add(EFL_UI_BOX_CLASS, win,
                  efl_content_set(win, efl_added),
                  efl_gfx_size_hint_min_set(efl_added, EINA_SIZE2D(360, 240)));
@@ -83,9 +86,6 @@ _gui_setup()
 EAPI_MAIN void
 efl_main(void *data EINA_UNUSED, const Efl_Event *ev EINA_UNUSED)
 {
-   // TODO this to a efl_ui_policy method
-   elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED);
-
    _gui_setup();
 }
 EFL_MAIN()
diff --git a/tutorial/c/hello-gui/src/gui_main.c 
b/tutorial/c/hello-gui/src/gui_main.c
index a95e9d8..69b8b07 100644
--- a/tutorial/c/hello-gui/src/gui_main.c
+++ b/tutorial/c/hello-gui/src/gui_main.c
@@ -6,7 +6,7 @@
 #include <Efl_Ui.h>
 
 static void
-_gui_quit_clicked_cb(void *data EINA_UNUSED, const Efl_Event *event 
EINA_UNUSED)
+_gui_quit_cb(void *data EINA_UNUSED, const Efl_Event *event EINA_UNUSED)
 {
    efl_exit(0);
 }
@@ -21,6 +21,9 @@ _gui_setup()
                  efl_text_set(efl_added, "Hello World"),
                  efl_ui_win_autodel_set(efl_added, EINA_TRUE));
 
+   // when the user clicks "close" on a window there is a request to delete
+   efl_event_callback_add(win, EFL_UI_WIN_EVENT_DELETE_REQUEST, _gui_quit_cb, 
NULL);
+
    box = efl_add(EFL_UI_BOX_CLASS, win,
                 efl_content_set(win, efl_added),
                 efl_gfx_size_hint_min_set(efl_added, EINA_SIZE2D(360, 240)));
@@ -37,15 +40,12 @@ _gui_setup()
            efl_gfx_size_hint_weight_set(efl_added, 1.0, 0.1),
            efl_pack(box, efl_added),
            efl_event_callback_add(efl_added, EFL_UI_EVENT_CLICKED,
-                                  _gui_quit_clicked_cb, efl_added));
+                                  _gui_quit_cb, efl_added));
 }
 
 EAPI_MAIN void
 efl_main(void *data EINA_UNUSED, const Efl_Event *ev EINA_UNUSED)
 {
-   // TODO this to a efl_ui_policy method
-   elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED);
-
    _gui_setup();
 }
 EFL_MAIN()

-- 


Reply via email to