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); } --