rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=5360deebecb9b808124f49b46fdc961e905bbb5b
commit 5360deebecb9b808124f49b46fdc961e905bbb5b Author: Mykyta Biliavskyi <m.biliavs...@samsung.com> Date: Wed Jun 29 14:40:26 2016 +0300 Group navigator: use unified popup API for "item add" dialog. --- src/bin/ui/workspace/group_navigator.c | 56 ++++++++++++++++++---------------- 1 file changed, 30 insertions(+), 26 deletions(-) diff --git a/src/bin/ui/workspace/group_navigator.c b/src/bin/ui/workspace/group_navigator.c index f0c0451..696ed55 100644 --- a/src/bin/ui/workspace/group_navigator.c +++ b/src/bin/ui/workspace/group_navigator.c @@ -1388,6 +1388,13 @@ _popup_add_item_ok_clicked(void *data, ecore_job_add(_job_popup_del, pl); } +Eina_Bool +_popup_add_item_validator(void *data) +{ + _popup_add_item_ok_clicked(data, NULL, NULL); + return true; +} + void group_navigator_part_item_add(Evas_Object *obj, Part *part, Eina_Stringshare * item_name) { @@ -1425,26 +1432,14 @@ group_navigator_part_item_add(Evas_Object *obj, Part *part, Eina_Stringshare * i } } -static void -_on_menu_add_item_clicked(void *data __UNUSED__, - Evas_Object *obj, - void *ei __UNUSED__) +Evas_Object * +_add_item_content_get(void *data) { - Part_List *pl = evas_object_data_get(obj, GROUP_NAVIGATOR_DATA); + Part_List *pl = (Part_List *)data; Group *group; - Eina_Stringshare *title; Evas_Object *box, *item; Eina_List *l; - assert(pl != NULL); - assert(pl->part != NULL); - - ap.popup = elm_popup_add(ap.win); - elm_popup_orient_set(ap.popup, ELM_POPUP_ORIENT_CENTER); - title = eina_stringshare_printf(_("Add New Item to Part \"%s\""), pl->part->name); - elm_object_part_text_set(ap.popup, "title,text", title); - eina_stringshare_del(title); - BOX_ADD(ap.popup, box, false, false); elm_box_padding_set(box, 0, 10); @@ -1472,20 +1467,29 @@ _on_menu_add_item_clicked(void *data __UNUSED__, elm_object_part_content_set(item, "elm.swallow.content", pl->popup.combobox); elm_box_pack_end(box, item); - elm_object_content_set(ap.popup, box); + pl->popup.box = box; - BUTTON_ADD(ap.popup, pl->popup.btn_add, _("Add")); - evas_object_smart_callback_add(pl->popup.btn_add, "clicked", _popup_add_item_ok_clicked, pl); - elm_object_part_content_set(ap.popup, "button1", pl->popup.btn_add); - elm_object_disabled_set(pl->popup.btn_add, true); + return pl->popup.box; +} - BUTTON_ADD(ap.popup, pl->popup.btn_cancel, _("Cancel")); - evas_object_smart_callback_add(pl->popup.btn_cancel, "clicked", _popup_cancel_clicked, pl); - elm_object_part_content_set(ap.popup, "button2", pl->popup.btn_cancel); +static void +_on_menu_add_item_clicked(void *data __UNUSED__, + Evas_Object *obj, + void *ei __UNUSED__) +{ + Part_List *pl = evas_object_data_get(obj, GROUP_NAVIGATOR_DATA); + Eina_Stringshare *title; + assert(pl != NULL); + assert(pl->part != NULL); - ui_menu_items_list_disable_set(ap.menu, MENU_ITEMS_LIST_MAIN, true); - elm_object_focus_set(pl->popup.entry_name, true); - evas_object_show(ap.popup); + 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, + NULL, BTN_OK | BTN_CANCEL, + _popup_add_item_validator, pl); + + if (button == BTN_CANCEL) + evas_object_del(pl->popup.box); + eina_stringshare_del(title); } static void --