From 2cfed7a8fc7e3e5a509237c9ea1473f62a219904 Mon Sep 17 00:00:00 2001 From: "seolhee, kim" Date: Thu, 7 Jul 2016 20:11:23 +0900 Subject: [PATCH] Add setup-wizard container fail event Change-Id: I90643fa486ea455d0a1e24bb81cadeb5dde2369e Signed-off-by: seolhee, kim --- tools/apps/setup-wizard/include/krate-setup.h | 2 ++ tools/apps/setup-wizard/include/setup-text.h | 5 ++++ tools/apps/setup-wizard/include/widget.h | 1 + tools/apps/setup-wizard/src/main.c | 6 +++- tools/apps/setup-wizard/src/ui.c | 41 ++++++++++++++++++++------- tools/apps/setup-wizard/src/widget.c | 18 ++++++++++-- 6 files changed, 60 insertions(+), 13 deletions(-) diff --git a/tools/apps/setup-wizard/include/krate-setup.h b/tools/apps/setup-wizard/include/krate-setup.h index 66fa072..a003d41 100644 --- a/tools/apps/setup-wizard/include/krate-setup.h +++ b/tools/apps/setup-wizard/include/krate-setup.h @@ -61,6 +61,7 @@ typedef struct { } appdata_s; typedef struct { + Evas_Object *win; Evas_Object *conform; Evas_Object *nf; char *edj_path; @@ -74,5 +75,6 @@ void _create_two_button_layout(Evas_Object *parent, Evas_Object *left_button, Ev int _send_zone_create_request(appdata_s *ad); int _send_zone_remove_request(appdata_s *ad); void _create_notification(app_control_h app_control); +void *zone_request_fail(void *ad); #endif /* __ZONE_SETUP_H__ */ diff --git a/tools/apps/setup-wizard/include/setup-text.h b/tools/apps/setup-wizard/include/setup-text.h index 4e8b7e6..7d96ad8 100644 --- a/tools/apps/setup-wizard/include/setup-text.h +++ b/tools/apps/setup-wizard/include/setup-text.h @@ -50,4 +50,9 @@ #define PREV_BUTTON "Previous" #define REMOVE_BUTTON "Remove" +#define OK_BUTTON "OK" +#define SETUP_POPUP_HEADER "Setup Wizard" +#define BODY_ZONE_CREATE_ERROR "Failed to create the Separated Zone." +#define BODY_ZONE_REMOVE_ERROR "Failed to remove the Separated Zone." + #endif /*__SETUP_TEXT_H__*/ diff --git a/tools/apps/setup-wizard/include/widget.h b/tools/apps/setup-wizard/include/widget.h index 040c969..de65535 100644 --- a/tools/apps/setup-wizard/include/widget.h +++ b/tools/apps/setup-wizard/include/widget.h @@ -32,6 +32,7 @@ Evas_Object *_create_button(Evas_Object *parent, const char *text, Evas_Smart_Cb Evas_Object *_create_textblock(Evas_Object *parent, const char *text, char *style); Evas_Object *_create_progressbar(Evas_Object *parent, const char *style); Evas_Object *_create_entry(Evas_Object *parent); +Evas_Object *_create_popup(Evas_Object *parent, const char *title, const char *body); Elm_Genlist_Item_Class *_create_genlist_item_class(char *style, Elm_Genlist_Item_Text_Get_Cb text_func, Elm_Genlist_Item_Content_Get_Cb content_func); Elm_Object_Item *_append_genlist_item(Evas_Object *genlist, Elm_Genlist_Item_Class *itc, Elm_Object_Select_Mode select_mode, void* data); diff --git a/tools/apps/setup-wizard/src/main.c b/tools/apps/setup-wizard/src/main.c index a3b3ff0..658ed80 100644 --- a/tools/apps/setup-wizard/src/main.c +++ b/tools/apps/setup-wizard/src/main.c @@ -19,7 +19,7 @@ #include "krate-setup.h" #include "widget.h" -static void __launch_zone_app(zone_manager_h zone_mgr, const char* zone_name, app_control_h app_control) +static void __launch_zone_app(zone_manager_h zone_mgr, const char *zone_name, app_control_h app_control) { zone_app_proxy_h zone_app; @@ -34,6 +34,10 @@ static void __zone_request_done(const char *from, const char *info, void *user_d char uri[PATH_MAX]; appdata_s *ad = (appdata_s *) user_data; + if (!strcmp(info, "Error")) { + ecore_main_loop_thread_safe_call_sync(zone_request_fail, ad); + return; + } if (!strcmp(ad->mode, "create")) { zone_manager_reset_zone_password(ad->zone_manager, ad->zone_name, ad->zone_password); diff --git a/tools/apps/setup-wizard/src/ui.c b/tools/apps/setup-wizard/src/ui.c index 0189711..c8a4937 100644 --- a/tools/apps/setup-wizard/src/ui.c +++ b/tools/apps/setup-wizard/src/ui.c @@ -33,7 +33,7 @@ static Eina_Bool __naviframe_pop_cb(void *data, Elm_Object_Item *it) return EINA_FALSE; } -static void __welcome_cancel_cb(void *data, Evas_Object *obj, void *event_info) +static void setup_wizard_cancel_cb(void *data, Evas_Object *obj, void *event_info) { appdata_s *ad = (appdata_s *)data; @@ -43,15 +43,17 @@ static void __welcome_cancel_cb(void *data, Evas_Object *obj, void *event_info) return; } -static void __welcome_next_cb(void *data, Evas_Object *obj, void *event_info) +static void setup_wizard_next_cb(void *data, Evas_Object *obj, void *event_info) { appdata_s *ad = (appdata_s *)data; if (!strcmp(ad->mode, "create")) { _create_security_view(ad); } else { - if (_send_zone_remove_request(ad) != 0) - ui_app_exit(); + if (_send_zone_remove_request(ad) != 0) { + ecore_main_loop_thread_safe_call_sync(zone_request_fail, ad); + return; + } _create_setup_view(ad); } @@ -94,9 +96,28 @@ static Eina_Bool __progressbar_timer_cb(void *data) return ECORE_CALLBACK_RENEW; } +void *zone_request_fail(void *user_data) +{ + Evas_Object *popup = NULL; + appdata_s *ad = (appdata_s *)user_data; + + if (!strcmp(ad->mode, "create")) + popup = _create_popup(ud.win, SETUP_POPUP_HEADER, BODY_ZONE_CREATE_ERROR); + else + popup = _create_popup(ud.win, SETUP_POPUP_HEADER, BODY_ZONE_REMOVE_ERROR); + + Evas_Object *btn = elm_button_add(popup); + elm_object_style_set(btn, "popup"); + elm_object_text_set(btn, OK_BUTTON); + evas_object_smart_callback_add(btn, "clicked", setup_wizard_cancel_cb, ad); + elm_object_part_content_set(popup, "button1", btn); + evas_object_show(popup); + + return NULL; +} + void _create_base_window(appdata_s *ad) { - Evas_Object *win; Evas_Object *layout; char edj_path[PATH_MAX] = "\0"; @@ -117,8 +138,8 @@ void _create_base_window(appdata_s *ad) free(res_path); /* Create main UI widget */ - win = _create_win(PACKAGE); - ud.conform = _create_conformant(win); + ud.win = _create_win(PACKAGE); + ud.conform = _create_conformant(ud.win); layout = _create_layout(ud.conform, NULL, NULL); elm_object_content_set(ud.conform, layout); ud.nf = elm_naviframe_add(layout); @@ -130,7 +151,7 @@ void _create_base_window(appdata_s *ad) elm_object_part_content_set(layout, "elm.swallow.content", ud.nf); eext_object_event_callback_add(ud.nf, EEXT_CALLBACK_BACK, eext_naviframe_back_cb, NULL); - evas_object_show(win); + evas_object_show(ud.win); return; } @@ -165,8 +186,8 @@ static void __create_welcome_view(appdata_s *ad) elm_object_part_content_set(layout, "content_layout", welcome_layout); - left_button = _create_button(layout, text[2], __welcome_cancel_cb, ad); - right_button = _create_button(layout, text[3], __welcome_next_cb, ad); + left_button = _create_button(layout, text[2], setup_wizard_cancel_cb, ad); + right_button = _create_button(layout, text[3], setup_wizard_next_cb, ad); _create_two_button_layout(layout, left_button, right_button); diff --git a/tools/apps/setup-wizard/src/widget.c b/tools/apps/setup-wizard/src/widget.c index 75b8ee9..426a404 100644 --- a/tools/apps/setup-wizard/src/widget.c +++ b/tools/apps/setup-wizard/src/widget.c @@ -16,7 +16,6 @@ * limitations under the License. * */ - #include "widget.h" static void __win_delete_request_cb(void *data , Evas_Object *obj , void *event_info) @@ -30,7 +29,9 @@ Evas_Object *_create_win(const char *package) elm_app_base_scale_set(1.8); - win = elm_win_util_standard_add(package, package); + win = elm_win_add(NULL, package, ELM_WIN_BASIC); + elm_win_indicator_mode_set(win, ELM_WIN_INDICATOR_SHOW); + elm_win_conformant_set(win, EINA_TRUE); elm_win_autodel_set(win, EINA_TRUE); elm_win_alpha_set(win, EINA_TRUE); @@ -158,3 +159,16 @@ Evas_Object *_create_entry(Evas_Object *parent) evas_object_show(entry); return entry; } + +Evas_Object *_create_popup(Evas_Object *parent, const char *title, const char *body) +{ + Evas_Object *popup = elm_popup_add(parent); + + evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + elm_object_style_set(popup, "default"); + elm_object_part_text_set(popup, "title,text", title); + elm_object_item_part_text_translatable_set(popup, "title,text", EINA_TRUE); + elm_object_text_set(popup, body); + + return popup; +} -- 2.7.4