eext_datetime: 4.0 UI implement. 57/142257/1
authorWoochan Lee <wc0917.lee@samsung.com>
Thu, 3 Aug 2017 07:23:00 +0000 (16:23 +0900)
committerWoochan Lee <wc0917.lee@samsung.com>
Thu, 3 Aug 2017 07:23:46 +0000 (16:23 +0900)
Blink start after value changed by rotary event.

Change-Id: Iefb98f8f8b4a660062ddc3e376cf062bf5e1ab5e

inc/wearable/circle/efl_extension_circle_private.h
src/wearable/circle/efl_extension_circle_object_datetime.c

index df87ba1d4d6482747b5e53dea0084f9bf7648f55..a6046c3a7b24c3bfac7b54f15de31653f2b167d7 100644 (file)
@@ -161,6 +161,7 @@ struct _Eext_Circle_Object_Datetime_Data {
    Elm_Datetime_Field_Type current_type;
    double rotary_angle;
    double type_current_angle;
+   Ecore_Timer *rotary_timer;
 
    Eina_Bool circle_changed : 1;
 };
index 225896883ead10f66ff1a2b71bc63d9a83aab80d..ec8ed4bce3395236ed4312571c0cd059ee54ba74 100644 (file)
@@ -46,6 +46,7 @@ static const double mark_height =23;
 static const double radius = 168.5; //BG_HEIGHT / 2 - mark_height / 2;
 static const double mark_radius = 2.000317; //1 / sqrt(1 - pow(mark_width / 2 / radius , 2)) * 2;
 static const double ANIMATION_DURATION = 0.3;
+static const double BLINK_DELAY = 0.3;
 
 static char *bg_file_name[] = {
    "date_picker_day_28_bg",
@@ -375,6 +376,20 @@ _date_update(Eext_Circle_Object *obj, Eina_Bool value_up)
    elm_datetime_value_set(datetime, &t);
 }
 
+static Eina_Bool
+_rotary_timer_cb(void *data)
+{
+   Eext_Circle_Object *circle_obj = (Eext_Circle_Object *)data;
+   Eext_Circle_Object_Datetime_Data *widget_data = (Eext_Circle_Object_Datetime_Data *)circle_obj->widget_data;
+   Evas_Object *selected_radio;
+
+   selected_radio = _eext_circle_object_datetime_selected_field_object_get(circle_obj->widget_object);
+   elm_layout_signal_emit(selected_radio, "elm,state,rotary,inactive", "eext");
+
+   widget_data->rotary_timer = NULL;
+   return ECORE_CALLBACK_CANCEL;
+}
+
 static Eina_Bool
 _rotary_changed_cb(void *data, Evas_Object *obj, Eext_Rotary_Event_Info* info)
 {
@@ -401,7 +416,7 @@ _rotary_changed_cb(void *data, Evas_Object *obj, Eext_Rotary_Event_Info* info)
      _date_update(circle_obj, EINA_FALSE);
 
    //for accessibility
-   Eext_Circle_Object_Datetime_Data *datetime_data = (Eext_Circle_Object_Datetime_Data *)circle_obj->widget_data;
+   Eext_Circle_Object_Datetime_Data *widget_data = (Eext_Circle_Object_Datetime_Data *)circle_obj->widget_data;
    Evas_Object *datetime = circle_obj->widget_object;
    struct tm t;
    char buf_read_text[255];
@@ -414,7 +429,7 @@ _rotary_changed_cb(void *data, Evas_Object *obj, Eext_Rotary_Event_Info* info)
    bindtextdomain (PACKAGE, LOCALE_DIR);
    elm_atspi_accessible_translation_domain_set(obj, PACKAGE);
 
-   switch(datetime_data->current_type)
+   switch(widget_data->current_type)
      {
         case ELM_DATETIME_DATE:
            snprintf(buf_read_text, sizeof(buf_read_text), "%2.0f",(double)t.tm_mday);
@@ -474,6 +489,14 @@ _rotary_changed_cb(void *data, Evas_Object *obj, Eext_Rotary_Event_Info* info)
    elm_atspi_bridge_utils_say(buf_read_text, EINA_TRUE, NULL, NULL);
    //
 
+   if (widget_data->rotary_timer)
+     {
+        ecore_timer_del(widget_data->rotary_timer);
+               widget_data->rotary_timer = NULL;
+        }
+
+   widget_data->rotary_timer = ecore_timer_add(BLINK_DELAY, _rotary_timer_cb, circle_obj);
+
    return EINA_TRUE;
 }