[naviframe][access] set access info callback for prev button properly
authorShinwoo Kim <cinoo.kim@samsung.com>
Wed, 15 May 2013 08:46:43 +0000 (17:46 +0900)
committerSungho Kwak <sungho1.kwak@samsung.com>
Mon, 27 May 2013 05:17:05 +0000 (14:17 +0900)
Change-Id: Ib889dfa31d40c392cdb2e6be18c9abd57f63fa1d

Conflicts:

src/lib/elc_naviframe.c

src/lib/elc_naviframe.c

index 36c1978..e823a99 100644 (file)
@@ -511,10 +511,41 @@ _item_content_set(Elm_Naviframe_Item *it,
      (content, EVAS_CALLBACK_DEL, _item_content_del_cb, it);
 }
 
+//Tizen Only: Temporary code. block the focus for the back button for
+//H/W Key event support.
+static void
+_hide_button_prop_set(Elm_Naviframe_Item *it, Evas_Object *prev_btn)
+{
+   if (it->dispmode == EVAS_DISPLAY_MODE_COMPRESS)
+     {
+        elm_object_signal_emit(prev_btn, "elm,state,display,compress", "elm");
+        evas_object_propagate_events_set(prev_btn, EINA_FALSE);
+        elm_object_focus_allow_set(prev_btn, EINA_FALSE);
+     }
+   else
+     {
+        elm_object_signal_emit(prev_btn, "elm,state,display,default", "elm");
+        evas_object_propagate_events_set(prev_btn, EINA_TRUE);
+        elm_object_focus_allow_set(prev_btn, EINA_TRUE);
+     }
+}
+
+char *
+_access_prev_btn_info_cb(void *data, Evas_Object *obj __UNUSED__)
+{
+   Elm_Naviframe_Item *it = (Elm_Naviframe_Item *)data;
+
+   if (it->dispmode == EVAS_DISPLAY_MODE_COMPRESS)
+     return strdup(E_("Close Keyboard"));
+   else
+     return strdup(E_("Back"));
+}
+
 static void
 _item_title_prev_btn_set(Elm_Naviframe_Item *it,
                          Evas_Object *btn)
 {
+   const char* txt;
    if (it->title_prev_btn == btn) return;
    if (it->title_prev_btn) evas_object_del(it->title_prev_btn);
    it->title_prev_btn = btn;
@@ -524,6 +555,20 @@ _item_title_prev_btn_set(Elm_Naviframe_Item *it,
    elm_object_signal_emit(VIEW(it), "elm,state,prev_btn,show", "elm");
    evas_object_event_callback_add
      (btn, EVAS_CALLBACK_DEL, _item_title_prev_btn_del_cb, it);
+<<<<<<< HEAD
+=======
+   evas_object_smart_callback_add
+     (btn, SIG_CLICKED, _on_item_back_btn_clicked, WIDGET(it));
+
+   _hide_button_prop_set(it, btn);
+
+   txt = elm_layout_text_get(btn, NULL);
+   if (txt && (strlen(txt) > 0)) return;
+
+    _elm_access_callback_set
+      (_elm_access_object_get(btn), ELM_ACCESS_INFO,
+       _access_prev_btn_info_cb, it);
+>>>>>>> ea5fd05... [naviframe][access] set access info callback for prev button properly
 }
 
 static void
@@ -1111,17 +1156,6 @@ _item_dispmode_set(Elm_Naviframe_Item *it, Evas_Display_Mode dispmode)
    it->dispmode = dispmode;
 }
 
-static char *
-_access_prev_btn_info_cb(void *data, Evas_Object *obj __UNUSED__)
-{
-   Elm_Naviframe_Item *it = (Elm_Naviframe_Item *)data;
-
-   if (it->dispmode == EVAS_DISPLAY_MODE_COMPRESS)
-     return strdup(E_("Close Keyboard"));
-   else
-     return strdup(E_("Back"));
-}
-
 static Elm_Naviframe_Item *
 _item_new(Evas_Object *obj,
           const Elm_Naviframe_Item *prev_it,
@@ -1180,14 +1214,7 @@ _item_new(Evas_Object *obj,
      }
 
    if (prev_btn)
-     {
-        _item_content_set_hook((Elm_Object_Item *)it, PREV_BTN_PART, prev_btn);
-
-        if (!elm_layout_text_get(prev_btn, NULL))
-          _elm_access_callback_set
-            (_elm_access_object_get(prev_btn), ELM_ACCESS_INFO,
-             _access_prev_btn_info_cb, it);
-     }
+     _item_content_set_hook((Elm_Object_Item *)it, PREV_BTN_PART, prev_btn);
 
    if (next_btn)
      {