From 927fbfbfc770911964944a06373cf526223ab5a5 Mon Sep 17 00:00:00 2001 From: "moon87.park" Date: Mon, 19 Oct 2015 11:40:18 +0900 Subject: [PATCH] [Telegram] Link the setting view with menu popup Change-Id: I4c368ef08aad3c0c3b515b1716cf57629a95ff8b --- TelegramTizen/src/tg_user_main_view.c | 50 ++++++++++++++++++++++++++++------- 1 file changed, 41 insertions(+), 9 deletions(-) diff --git a/TelegramTizen/src/tg_user_main_view.c b/TelegramTizen/src/tg_user_main_view.c index 950d150..5111254 100644 --- a/TelegramTizen/src/tg_user_main_view.c +++ b/TelegramTizen/src/tg_user_main_view.c @@ -1054,20 +1054,46 @@ static void _more_popup_rotate(void *data, Evas_Object *obj, void *event_info) } } -static void _ctxpopup_back_cb(void *data, Evas_Object *obj, void *event_info) +static void _ctxpopup_dismiss_cb(void *data, Evas_Object *obj, void *event_info) +{ + appdata_s *ad = data; + evas_object_del(ad->menu_popup); + ad->menu_popup = NULL; +} + +static void _ctxpopup_del_cb(void *data, Evas *e, Evas_Object *obj, void *event_info) { appdata_s *ad = data; - if (!ad->menu_popup || !ad->win) { + if (!ad) { + LOGE("ad is NULL"); + return; + } + + if (!ad->win) { + LOGE("window is NULL"); return; } evas_object_smart_callback_del(ad->win, "rotation,changed", _more_popup_rotate); - evas_object_smart_callback_del(ad->menu_popup, "dismissed", _ctxpopup_back_cb); - evas_object_del(ad->menu_popup); - ad->menu_popup = NULL; - + if (ad->menu_popup) { + evas_object_smart_callback_del(ad->menu_popup, "dismissed", _ctxpopup_dismiss_cb); + evas_object_del(ad->menu_popup); + ad->menu_popup = NULL; + } } +static void ctxpopup_settings_select_cb(void *data, Evas_Object *obj, void *event_info) +{ + appdata_s *ad = data; + if (!ad) { + LOGE("ad is NULL"); + return; + } + + _ctxpopup_dismiss_cb(ad, NULL, NULL); + + launch_settings_screen(ad); +} static void _create_more_popup(void *data, Evas_Object *obj, void *event_info) { @@ -1075,6 +1101,11 @@ static void _create_more_popup(void *data, Evas_Object *obj, void *event_info) Evas_Object *ctxpopup; appdata_s *ad = data; + if (!ad) { + LOGE("ad is NULL"); + return; + } + if (ad->current_app_state != TG_USER_MAIN_VIEW_STATE) { return; } @@ -1084,14 +1115,15 @@ static void _create_more_popup(void *data, Evas_Object *obj, void *event_info) elm_ctxpopup_auto_hide_disabled_set(ctxpopup, EINA_TRUE); eext_object_event_callback_add(ctxpopup, EEXT_CALLBACK_BACK, eext_ctxpopup_back_cb, NULL); eext_object_event_callback_add(ctxpopup, EEXT_CALLBACK_MORE, eext_ctxpopup_back_cb, NULL); + evas_object_event_callback_add(ctxpopup, EVAS_CALLBACK_DEL, _ctxpopup_del_cb, ad); - evas_object_smart_callback_add(ctxpopup, "dismissed", _ctxpopup_back_cb, ad); + evas_object_smart_callback_add(ctxpopup, "dismissed", _ctxpopup_dismiss_cb, ad); evas_object_smart_callback_add(ad->win, "rotation,changed", _more_popup_rotate, ad); it = elm_ctxpopup_item_append(ctxpopup, i18n_get_text("IDS_TGRAM_OPT_DELETE"), NULL, NULL, ad); it = elm_ctxpopup_item_append(ctxpopup, i18n_get_text("IDS_TGRAM_OPT_SEARCH"), NULL, NULL, ad); it = elm_ctxpopup_item_append(ctxpopup, i18n_get_text("IDS_TGRAM_OPT_CONTACTS"), NULL, NULL, ad); - it = elm_ctxpopup_item_append(ctxpopup, i18n_get_text("IDS_TGRAM_OPT_SETTINGS"), NULL, NULL, ad); + it = elm_ctxpopup_item_append(ctxpopup, i18n_get_text("IDS_TGRAM_OPT_SETTINGS"), NULL, ctxpopup_settings_select_cb, ad); //elm_object_item_domain_text_translatable_set(it, SETTING_PACKAGE, EINA_TRUE); elm_ctxpopup_direction_priority_set(ctxpopup, ELM_CTXPOPUP_DIRECTION_UP, ELM_CTXPOPUP_DIRECTION_UNKNOWN, ELM_CTXPOPUP_DIRECTION_UNKNOWN, ELM_CTXPOPUP_DIRECTION_UNKNOWN); @@ -1226,7 +1258,7 @@ void launch_user_main_view_cb(appdata_s* ad) evas_object_smart_callback_add(search_btn, "unpressed", on_search_icon_unpressed, search_icon); #endif - Elm_Object_Item *it = elm_naviframe_item_push(ad->nf, i18n_get_text("IDS_TGRAM_HEADER_TELEGRAM"), NULL, NULL, scroller, NULL); + elm_naviframe_item_push(ad->nf, i18n_get_text("IDS_TGRAM_HEADER_TELEGRAM"), NULL, NULL, scroller, NULL); #if 0 Elm_Object_Item* navi_item = elm_naviframe_item_push(ad->nf, "Telegram", NULL, NULL, scroller, NULL); -- 2.7.4