X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Fmh_view_main.c;h=9ac7f8ecca629370f6f8dea6c0f0a0bcbada2d40;hb=c02f08b35c7b6bdf3f189bdb1e09949855be7503;hp=b97aaf9aef3d0eee18eba7e1466198d6d70dbc9b;hpb=3e3613f29fdfc1804097c0df5a5fb09ac0a43a25;p=apps%2Fnative%2Fug-mobile-ap.git diff --git a/src/mh_view_main.c b/src/mh_view_main.c index b97aaf9..9ac7f8e 100755 --- a/src/mh_view_main.c +++ b/src/mh_view_main.c @@ -26,6 +26,10 @@ #include "mh_popup.h" #include "mh_string.h" +static void __ctx_move_more_ctxpopup(Evas_Object *ctx, mh_appdata_t *ad); +static void __ctx_delete_more_ctxpopup_cb(void *data, Evas *e, Evas_Object *obj, void *event_info); +static Eina_Bool rotate_flag = EINA_FALSE; + void _genlist_update_device_item(mh_appdata_t *ad); mh_appdata_t *g_ad = NULL; #define UPDATE_INTERVAL 1 @@ -619,14 +623,18 @@ static void __select_wifi_item(void *data, Evas_Object *obj, void *event_info) { __MOBILE_AP_FUNC_ENTER__; + Evas_Object *content; + Elm_Object_Item *item = (Elm_Object_Item *)event_info; + if (data == NULL) { ERR("The param is NULL\n"); return; } - mh_appdata_t *ad = (mh_appdata_t *)data; - elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE); - mh_draw_wifi_setup_view(ad); + elm_genlist_item_selected_set(item, EINA_FALSE); + + content = elm_object_item_part_content_get(item, "elm.icon"); + __wifi_onoff_changed_cb(data, content, NULL); __MOBILE_AP_FUNC_EXIT__; @@ -764,7 +772,7 @@ static void __back_btn_cb(void *data, Elm_Object_Item *navi_item) static char *__get_wifi_label(void *data, Evas_Object *obj, const char *part) { if (!strcmp("elm.text", part)) - return strdup(STR_WIFI_TETH); + return strdup(STR_MOBILE_HOTSPOT); return NULL; } @@ -937,7 +945,7 @@ static char *__get_help_label(void *data, Evas_Object *obj, const char *part) wifi_state = ad->main.hotspot_mode & VCONFKEY_MOBILE_HOTSPOT_MODE_WIFI; if (wifi_state && ad->setup.visibility == false) - hidden = STR_WIFI_TETH_HIDDEN; + hidden = STR_MOBILE_HOTSPOT_IS_HIDDEN; if (wifi_state && ad->setup.security_type != TETHERING_WIFI_SECURITY_TYPE_NONE) { snprintf(buf, MH_LABEL_LENGTH_MAX, @@ -953,7 +961,7 @@ static char *__get_help_label(void *data, Evas_Object *obj, const char *part) STR_PASSWORD, passphrase, security_type, - STR_PASSWORD_FOR_WIFI_TETH, + STR_ENTER_THE_PASSWORD_ON_THE_OTHER_DEVICE, hidden[0] != '\0' ? "
" : "", hidden); } else { @@ -1374,6 +1382,148 @@ void _main_callback_del(mh_appdata_t *ad) __MOBILE_AP_FUNC_EXIT__; } +static void __ctx_move_more_ctxpopup(Evas_Object *ctx, mh_appdata_t *ad) +{ + Evas_Coord w; + Evas_Coord h; + int pos = -1; + __MOBILE_AP_FUNC_ENTER__; + + elm_win_screen_size_get(ad->win, NULL, NULL, &w, &h); + pos = elm_win_rotation_get(ad->win); + + switch (pos) { + case 0: + case 180: + evas_object_move(ctx, w/2, h); + break; + case 90: + evas_object_move(ctx, h/2, w); + break; + case 270: + evas_object_move(ctx, h/2, w); + break; + } + __MOBILE_AP_FUNC_EXIT__; +} + +static void __rotate_more_ctxpopup_cb(void *data, Evas_Object *obj, void *event_info) +{ + __MOBILE_AP_FUNC_ENTER__; + + mh_appdata_t *ad = (mh_appdata_t *)data; + Evas_Object *ctx = ad->ctxpopup; + + __ctx_move_more_ctxpopup(ctx, ad); + evas_object_show(ctx); + + __MOBILE_AP_FUNC_EXIT__; +} + +static void __dismissed_more_ctxpopup_cb(void *data, Evas_Object *obj, void *event) +{ + __MOBILE_AP_FUNC_ENTER__; + + mh_appdata_t *ad = (mh_appdata_t *)data; + Evas_Object *ctx = ad->ctxpopup; + + if (!rotate_flag) { + evas_object_del(ctx); + ctx = NULL; + } else { + __ctx_move_more_ctxpopup(ctx, ad); + evas_object_show(ctx); + rotate_flag = EINA_FALSE; + } + __MOBILE_AP_FUNC_EXIT__; +} + +static void __ctx_delete_more_ctxpopup_cb(void *data, Evas *e, Evas_Object *obj, + void *event_info) +{ + Evas_Object *navi = (Evas_Object *)data; + Evas_Object *ctx = obj; + + if (navi == NULL) { + ERR("data is null\n"); + return; + } + __MOBILE_AP_FUNC_ENTER__; + + evas_object_smart_callback_del(ctx, "dismissed", + __dismissed_more_ctxpopup_cb); + evas_object_smart_callback_del(elm_object_top_widget_get(ctx), + "rotation,changed", __rotate_more_ctxpopup_cb); + evas_object_event_callback_del_full(ctx, EVAS_CALLBACK_DEL, + __ctx_delete_more_ctxpopup_cb, navi); + __MOBILE_AP_FUNC_EXIT__; +} + +static void __gl_configure_wifi_tethering(void *data, Evas_Object *obj, void *event_info) +{ + __MOBILE_AP_FUNC_ENTER__; + + if (data == NULL) { + ERR("The param is NULL\n"); + return; + } + mh_appdata_t *ad = (mh_appdata_t *)data; + + evas_object_del(ad->ctxpopup); + ad->ctxpopup = NULL; + + elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE); + mh_draw_wifi_setup_view(ad); + + __MOBILE_AP_FUNC_EXIT__; + + return; +} + +static void __create_ctxpopup_more_button(void *data, Evas_Object *obj, + void *event_info) +{ + mh_appdata_t *ad = (mh_appdata_t *)data; + Evas_Object *ctxpopup = NULL; + + if (ad == NULL) { + ERR("ad is null\n"); + return; + } + __MOBILE_AP_FUNC_ENTER__; + + ctxpopup = elm_ctxpopup_add(ad->win); + elm_ctxpopup_auto_hide_disabled_set(ctxpopup, EINA_TRUE); + + eext_object_event_callback_add(ctxpopup, EEXT_CALLBACK_BACK, + eext_ctxpopup_back_cb, ad); + eext_object_event_callback_add(ctxpopup, EEXT_CALLBACK_MORE, + eext_ctxpopup_back_cb, ad); + elm_object_style_set(ctxpopup, "more/default"); + evas_object_smart_callback_add(ctxpopup, "dismissed", + __dismissed_more_ctxpopup_cb, ad); + evas_object_smart_callback_add(elm_object_top_widget_get(ctxpopup), "rotation,changed", + __rotate_more_ctxpopup_cb, ad); + evas_object_event_callback_add(ctxpopup, EVAS_CALLBACK_DEL, + __ctx_delete_more_ctxpopup_cb, ad->naviframe); + + elm_ctxpopup_direction_priority_set(ctxpopup, ELM_CTXPOPUP_DIRECTION_UP, + ELM_CTXPOPUP_DIRECTION_DOWN, + ELM_CTXPOPUP_DIRECTION_UNKNOWN, + ELM_CTXPOPUP_DIRECTION_UNKNOWN); + + __ctx_move_more_ctxpopup(ctxpopup, ad); + elm_ctxpopup_item_append(ctxpopup, STR_CONFIGURE_MOBILE_HOTSPOT, + NULL, __gl_configure_wifi_tethering, ad); + + evas_object_show(ctxpopup); + + ad->ctxpopup = ctxpopup; + + __MOBILE_AP_FUNC_EXIT__; +} + + void _main_draw_contents(mh_appdata_t *ad) { INFO("+\n"); @@ -1395,6 +1545,8 @@ void _main_draw_contents(mh_appdata_t *ad) eext_object_event_callback_add(ad->naviframe, EEXT_CALLBACK_BACK, eext_naviframe_back_cb, NULL); + eext_object_event_callback_add(ad->naviframe, EEXT_CALLBACK_MORE, + __create_ctxpopup_more_button, ad); evas_object_smart_callback_add(ad->main.back_btn, "clicked", (Evas_Smart_Cb)__back_btn_cb, (void *)ad); elm_object_focus_allow_set(ad->main.back_btn, EINA_FALSE);