apply back key event on datetime picker
authorSunyeop Hwang <sunyeop.hwang@samsung.com>
Tue, 6 Aug 2013 08:44:31 +0000 (17:44 +0900)
committerSunyeop Hwang <sunyeop.hwang@samsung.com>
Tue, 6 Aug 2013 08:48:58 +0000 (17:48 +0900)
Change-Id: Iaf69e4d190cb33a1873f00a44a2e8756ddc3b566

setting-common/src/setting-common-draw-genlist.c

index a16e26e..9564ec8 100755 (executable)
@@ -19,6 +19,7 @@
 #include <utilX.h>
 #include <Ecore_X.h>
 #include <system_settings.h>
+#include <efl_assist.h>
 
 static Evas_Object *_gl_Gendial_content_get(void *data, Evas_Object *obj, const char *part);
 static char *_gl_Gendial_text_get(void *data, Evas_Object *obj, const char *part);
@@ -597,6 +598,20 @@ static Evas_Object *__add_slider(Setting_GenGroupItem_Data *item_data, Evas_Obje
        return li_slider;
 }
 
+static inline void _datefield_back_cb(void *data, Evas_Object *obj, const char *emission, const char *source)
+{
+       elm_object_signal_emit(obj, "picker,hide", "");
+}
+static void _datefield_edit_start_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       ea_object_event_callback_add(obj, EA_CALLBACK_BACK, _datefield_back_cb, NULL);
+}
+
+static void _datefield_edit_end_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       ea_object_event_callback_del(obj, EA_CALLBACK_BACK, _datefield_back_cb);
+}
+
 static Evas_Object *__add_datefield(Setting_GenGroupItem_Data *item_data, Evas_Object *parent)
 {
        retv_if(!item_data || !parent, NULL);
@@ -609,6 +624,9 @@ static Evas_Object *__add_datefield(Setting_GenGroupItem_Data *item_data, Evas_O
        evas_object_pass_events_set(datetimefield, 1);
        evas_object_propagate_events_set(datetimefield, 0);
 
+       evas_object_smart_callback_add(datetimefield, "edit,start", _datefield_edit_start_cb, NULL);
+        evas_object_smart_callback_add(datetimefield, "edit,end", _datefield_edit_end_cb, NULL);
+
        char date_format[MAX_DATETIME_FORMAT_LEN + 1] = {0, };
        const char *time_format = NULL;
        if (item_data->chk_status)//12 hours