[Telegram] Create ctxpopup in main view 80/49680/3
authormoon87.park <moon87.park@samsung.com>
Mon, 19 Oct 2015 01:28:05 +0000 (10:28 +0900)
committermoon87.park <moon87.park@samsung.com>
Mon, 19 Oct 2015 02:07:15 +0000 (11:07 +0900)
Change-Id: Ib09f6f475fb46bae5715d8a4e12a6db500b9f1d5

TelegramTizen/src/telegramtizen.c
TelegramTizen/src/tg_messaging_view.c
TelegramTizen/src/tg_user_main_view.c
TelegramTizen/tg_utils/tg_common.h

index 6dceaa0..d9e0632 100644 (file)
@@ -2509,8 +2509,10 @@ void app_nf_back_cb(void *data, Evas_Object *obj, void *event_info)
                        elm_exit();
                        break;
                case TG_USER_MAIN_VIEW_STATE:
-                       elm_win_lower(ad->win);
-                       elm_exit();
+                       if (!ad->menu_popup) {
+                               elm_win_lower(ad->win);
+                               elm_exit();
+                       }
                        break;
                case TG_CHAT_MESSAGING_VIEW_STATE:
             // to be handled 
index 76bd776..e6cf0d4 100644 (file)
@@ -10,6 +10,7 @@
 #include "server_requests.h"
 #include <attach_panel.h>
 #include <mime_type.h>
+#include <Elementary.h>
 #include "tg_user_info_view.h"
 #include "tg_chat_info_view.h"
 
@@ -880,7 +881,7 @@ Evas_Object *on_message_item_content_get_cb(void *data, Evas_Object *obj, const
 
                        //elm_entry_magnifier_disabled_set(entry, EINA_TRUE);
                        // FIXME: Deprecated API
-                       elm_entry_selection_handler_disabled_set(entry, EINA_TRUE);
+                       //elm_entry_selection_handler_disabled_set(entry, EINA_TRUE);
 
                        //elm_object_theme_set(layout, ad->theme);
 
@@ -2566,7 +2567,7 @@ void launch_messaging_view_cb(appdata_s* ad, int user_id)
        evas_object_size_hint_weight_set(chat_conv_list, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
        evas_object_size_hint_align_set(chat_conv_list, EVAS_HINT_FILL, EVAS_HINT_FILL);
        // FIXME: Deprecated API
-       elm_genlist_realization_mode_set(chat_conv_list, EINA_TRUE);
+       //elm_genlist_realization_mode_set(chat_conv_list, EINA_TRUE);
        //evas_object_color_set(chat_conv_list, 255 , 255, 255, 255);
 
        evas_object_show(chat_conv_list);
index 401d204..950d150 100644 (file)
@@ -1031,6 +1031,82 @@ static void on_search_icon_unpressed(void *data, Evas_Object *obj, void *event_i
        elm_image_file_set(data, ui_utils_get_resource(TG_SEARCH_ICON), NULL);
 }
 
+static void _more_popup_rotate(void *data, Evas_Object *obj, void *event_info)
+{
+       int pos;
+       Evas_Coord w, h;
+       appdata_s *ad = data;
+
+       elm_win_screen_size_get(ad->win, NULL, NULL, &w, &h);
+       pos = elm_win_rotation_get(ad->win);
+
+       switch (pos) {
+       case 90:
+               evas_object_move(ad->menu_popup, 0, w);
+               break;
+       case 270:
+               evas_object_move(ad->menu_popup, h, w);
+               break;
+       case 180:
+       default:
+               evas_object_move(ad->menu_popup, 0, h);
+               break;
+    }
+}
+
+static void _ctxpopup_back_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       appdata_s *ad = data;
+
+       if (!ad->menu_popup || !ad->win) {
+               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;
+
+}
+
+
+static void _create_more_popup(void *data, Evas_Object *obj, void *event_info)
+{
+       Elm_Object_Item *it;
+       Evas_Object *ctxpopup;
+       appdata_s *ad = data;
+
+       if (ad->current_app_state != TG_USER_MAIN_VIEW_STATE) {
+               return;
+       }
+
+       ctxpopup = elm_ctxpopup_add(ad->nf);
+       elm_object_style_set(ctxpopup, "more/default");
+       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_smart_callback_add(ctxpopup, "dismissed", _ctxpopup_back_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);
+       //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);
+
+       if (ad->menu_popup) {
+               evas_object_del(ad->menu_popup);
+       }
+
+       ad->menu_popup = ctxpopup;
+
+       _more_popup_rotate(ad, NULL, NULL);
+
+       evas_object_show(ctxpopup);
+
+}
+
 void launch_user_main_view_cb(appdata_s* ad)
 {
        if (!ad)
@@ -1150,7 +1226,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_naviframe_item_push(ad->nf, "<font=Tizen:style=Bold color=#ffffff align=center><font_size=48>Telegram</font_size></font>", NULL, NULL, scroller, NULL);
+    Elm_Object_Item *it = 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, "<font=Tizen:style=Bold color=#ffffff align=center><font_size=48>Telegram</font_size></font>", NULL, NULL, scroller, NULL);
@@ -1161,7 +1237,9 @@ void launch_user_main_view_cb(appdata_s* ad)
        elm_object_item_part_content_set(navi_item, "title_left_btn", panel_btn);
 #endif
 
-       eext_object_event_callback_add(ad->nf, EEXT_CALLBACK_MORE, on_side_panel_requested, ad);
+//     eext_object_event_callback_add(ad->nf, EEXT_CALLBACK_MORE, on_messaging_menu_button_clicked, ad);
+
+       eext_object_event_callback_add(ad->nf, EEXT_CALLBACK_MORE, _create_more_popup, ad);
 }
 
 
index 6f0f965..0aedfd9 100644 (file)
@@ -556,6 +556,7 @@ typedef struct appdata {
        Evas_Object *floating_btn;
        Elm_Theme *theme;
        int screen_mode_for_fb; // for floating button icon
+       Evas_Object *menu_popup;
 } appdata_s;
 
 extern void show_toast(appdata_s* ad, char* value);