rimmed pushed a commit to branch eflete-1.18.

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

commit fc64cd0b3e6dd56e829c282fc4f7d36b88ab4da3
Author: Andrii Kroitor <an.kroi...@samsung.com>
Date:   Fri Sep 2 16:04:46 2016 +0300

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

diff --git a/src/bin/ui/workspace/group_navigator.c 
b/src/bin/ui/workspace/group_navigator.c
index 1375d89..5eef48f 100644
--- a/src/bin/ui/workspace/group_navigator.c
+++ b/src/bin/ui/workspace/group_navigator.c
@@ -71,6 +71,7 @@ typedef struct
    Resource_Name_Validator *program_name_validator;
    Resource_Name_Validator *group_data_name_validator;
 
+   Evas_Object *popup_win;
    struct {
         int copy_part, part_type, program_selected;
         Combobox_Item *state_selected, *item_selected;
@@ -778,12 +779,12 @@ _on_part_name_changed(void *data,
 
    if (resource_name_validator_status_get(pl->part_name_validator) != 
ELM_REG_NOERROR)
      {
-       popup_buttons_disabled_set(BTN_OK, true);
+       popup_button_disabled_set(pl->popup_win, BTN_OK, true);
        elm_object_signal_emit(obj, "validation,default,fail", "elm");
      }
    else
      {
-       popup_buttons_disabled_set(BTN_OK, false);
+       popup_button_disabled_set(pl->popup_win, BTN_OK, false);
        elm_object_signal_emit(obj, "validation,default,pass", "elm");
      }
 }
@@ -898,10 +899,13 @@ _program_validate(void *data,
 }
 
 static void
-_popup_add_part_ok_clicked(void *data,
-                           Evas_Object *obj __UNUSED__,
-                           void *event_info __UNUSED__)
+_popup_add_part_close_cb(void *data,
+                         Evas_Object *obj __UNUSED__,
+                         void *ei)
 {
+   Popup_Button pb = (Popup_Button)ei;
+   if (pb != BTN_OK) return;
+
    Edje_Part_Type type = EDJE_PART_TYPE_NONE;
    Part_List *pl = data;
    const char *name, *copy_name;
@@ -968,20 +972,8 @@ _popup_add_part_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_part_validator(void *data)
-{
-   Part_List *pl = (Part_List *) data;
-   _popup_add_part_ok_clicked(data, NULL, NULL);
-   if (resource_name_validator_status_get(pl->part_name_validator) != 
ELM_REG_NOERROR)
-     return false;
-   return true;
-}
-
-
 void
 group_navigator_part_add(Evas_Object *obj, Part *part)
 {
@@ -1088,7 +1080,7 @@ _combobox_item_pressed_cb(void *data __UNUSED__, 
Evas_Object *obj,
    elm_entry_cursor_end_set(obj);
 }
 
-Evas_Object *
+static Evas_Object *
 _add_part_content_get(void *data, Evas_Object **to_focus)
 {
    Combobox_Item *combobox_item;
@@ -1157,7 +1149,6 @@ _add_part_content_get(void *data, Evas_Object **to_focus)
    elm_box_pack_end(box, item);
 
    if (to_focus) *to_focus = pl->popup.entry_name;
-   popup_buttons_disabled_set(BTN_OK, true);
    pl->popup.box = box;
    return box;
 }
@@ -1173,11 +1164,13 @@ _on_menu_add_part_clicked(void *data __UNUSED__,
    assert(pl != NULL);
 
    title = eina_stringshare_printf(_("Add New Part to Group \"%s\""), 
pl->group->name);
-   Popup_Button button = popup_want_action(title, NULL, _add_part_content_get,
-                                           BTN_OK | BTN_CANCEL,
-                                           _popup_add_part_validator, pl);
-   if (BTN_CANCEL == button)
-     evas_object_del(pl->popup.box);
+   pl->popup_win = popup_add(title, NULL,
+                             BTN_OK | BTN_CANCEL,
+                             _add_part_content_get,
+                             pl);
+   evas_object_smart_callback_add(pl->popup_win, POPUP_CLOSE_CB, 
_popup_add_part_close_cb, pl);
+   popup_button_disabled_set(pl->popup_win, BTN_OK, true);
+
    eina_stringshare_del(title);
 }
 

-- 


Reply via email to