rimmed pushed a commit to branch eflete-1.18.

http://git.enlightenment.org/tools/eflete.git/commit/?id=f935af12d9e3591b810a08fc57349e3b963e8cb0

commit f935af12d9e3591b810a08fc57349e3b963e8cb0
Author: Andrii Kroitor <an.kroi...@samsung.com>
Date:   Fri Sep 2 16:36:18 2016 +0300

    group_navigator: use async popup for item add
---
 src/bin/ui/workspace/group_navigator.c | 41 +++++++++++++---------------------
 1 file changed, 15 insertions(+), 26 deletions(-)

diff --git a/src/bin/ui/workspace/group_navigator.c 
b/src/bin/ui/workspace/group_navigator.c
index fa84b41..2e6555d 100644
--- a/src/bin/ui/workspace/group_navigator.c
+++ b/src/bin/ui/workspace/group_navigator.c
@@ -869,11 +869,11 @@ _item_validate(void *data,
          goto item_data_invalidated;
      }
 
-   popup_buttons_disabled_set(BTN_OK, false);
+   popup_button_disabled_set(pl->popup_win, BTN_OK, false);
    return;
 
 item_data_invalidated:
-   popup_buttons_disabled_set(BTN_OK, true);
+   popup_button_disabled_set(pl->popup_win, BTN_OK, true);
    return;
 }
 
@@ -1440,18 +1440,19 @@ _on_menu_add_state_clicked(void *data __UNUSED__,
 }
 
 static void
-_popup_add_item_ok_clicked(void *data,
-                           Evas_Object *obj __UNUSED__,
-                           void *event_info __UNUSED__)
+_popup_add_item_close_cb(void *data,
+                         Evas_Object *obj __UNUSED__,
+                         void *event_info)
 {
+   Popup_Button pb = (Popup_Button) event_info;
+   if (pb != BTN_OK) return;
+
    Part_List *pl = data;
    const char *name;
    Eina_Stringshare *msg;
    Change *change;
 
    assert(pl != NULL);
-
-
    assert(pl->part != NULL);
 
    name = elm_entry_entry_get(pl->popup.entry_name);
@@ -1462,17 +1463,6 @@ _popup_add_item_ok_clicked(void *data,
 
    history_change_add(pl->group->history, change);
    eina_stringshare_del(msg);
-   evas_object_del(pl->popup.box);
-}
-
-Eina_Bool
-_popup_add_item_validator(void *data)
-{
-   Part_List *pl = (Part_List *) data;
-   _popup_add_item_ok_clicked(data, NULL, NULL);
-   if (elm_validator_regexp_status_get(pl->name_validator) != ELM_REG_NOERROR)
-     return false;
-   return true;
 }
 
 void
@@ -1512,7 +1502,7 @@ group_navigator_part_item_add(Evas_Object *obj, Part 
*part, Eina_Stringshare * i
      }
 }
 
-Evas_Object *
+static Evas_Object *
 _add_item_content_get(void *data, Evas_Object **to_focus)
 {
    Part_List *pl = (Part_List *)data;
@@ -1522,7 +1512,7 @@ _add_item_content_get(void *data, Evas_Object **to_focus)
    Eina_List *l;
    unsigned int i = 0;
 
-   BOX_ADD(ap.popup, box, false, false);
+   BOX_ADD(ap.win, box, false, false);
    elm_box_padding_set(box, 0, 10);
 
    LAYOUT_PROP_ADD(box, _("Name"), "popup", "1swallow")
@@ -1561,7 +1551,6 @@ _add_item_content_get(void *data, Evas_Object **to_focus)
    elm_box_pack_end(box, item);
    pl->popup.box = box;
    if (to_focus) *to_focus = pl->popup.entry_name;
-   popup_buttons_disabled_set(BTN_OK, true);
 
    return pl->popup.box;
 }
@@ -1577,12 +1566,12 @@ _on_menu_add_item_clicked(void *data __UNUSED__,
    assert(pl->part != NULL);
 
    title = eina_stringshare_printf(_("Add New Item to Part \"%s\""), 
pl->part->name);
-   Popup_Button button = popup_want_action(title, NULL, _add_item_content_get,
-                                            BTN_OK | BTN_CANCEL,
-                                           _popup_add_item_validator, pl);
+   pl->popup_win = popup_add(title, NULL,
+                             BTN_OK | BTN_CANCEL,
+                             _add_item_content_get, pl);
+   evas_object_smart_callback_add(pl->popup_win, POPUP_CLOSE_CB, 
_popup_add_item_close_cb, pl);
+   popup_button_disabled_set(pl->popup_win, BTN_OK, true);
 
-   if (button == BTN_CANCEL)
-     evas_object_del(pl->popup.box);
    eina_stringshare_del(title);
 }
 

-- 


Reply via email to