[C# spinner]: supports Efl.Ui.Spinner compatibility 02/203702/4
authorTaehyub Kim <taehyub.kim@samsung.com>
Tue, 12 Feb 2019 04:30:25 +0000 (13:30 +0900)
committerTaehyub Kim <taehyub.kim@samsung.com>
Thu, 18 Apr 2019 02:15:49 +0000 (11:15 +0900)
Change-Id: I1e46377e9f0bf9cedd38c629435d740ed83b6b80

src/wearable/circle/efl_extension_circle_object_spinner.c

index 9e36c13225e3e7316cafde44aa9cb6f3633e6071..2415698255b68eca4d5ea484307adda4bc2ed5e4 100644 (file)
@@ -436,6 +436,18 @@ _eext_circle_object_spinner_disabled_cb(Eext_Circle_Object *obj)
      }
 }
 
+static void
+_efl_ui_spin_changed_cb(void *data EINA_UNUSED, const Efl_Event *ev)
+{
+   Eext_Circle_Object *circle_obj = (Eext_Circle_Object *)data;
+   Eext_Circle_Object_Spinner_Data *widget_data = (Eext_Circle_Object_Spinner_Data *)circle_obj->widget_data;
+
+   if (widget_data->rotary_event)
+     _eext_circle_object_spinner_mark_update(circle_obj, EINA_TRUE);
+   else
+     _eext_circle_object_spinner_update(circle_obj);
+}
+
 static void
 _eext_circle_object_spinner_init(Eext_Circle_Object *obj, Evas_Object *spinner)
 {
@@ -446,7 +458,8 @@ _eext_circle_object_spinner_init(Eext_Circle_Object *obj, Evas_Object *spinner)
    obj->widget_type = EEXT_CIRCLE_OBJECT_SPINNER_TYPE;
    obj->del_func = _eext_circle_object_spinner_del_cb;
    obj->disabled_func = _eext_circle_object_spinner_disabled_cb;
-   obj->visible_on_activate = EINA_TRUE;
+   //C# FIXME: If activate is true, efl ui spinner is not shown
+   //obj->visible_on_activate = EINA_TRUE;
 
    data = (Eext_Circle_Object_Spinner_Data *)calloc(1, sizeof(Eext_Circle_Object_Spinner_Data));
    obj->widget_data = (void *)data;
@@ -462,9 +475,18 @@ _eext_circle_object_spinner_init(Eext_Circle_Object *obj, Evas_Object *spinner)
 
    elm_spinner_editable_set(spinner, EINA_FALSE);
 
-   evas_object_smart_callback_add(spinner, "changed", _eext_circle_object_spinner_changed_cb, obj);
-   evas_object_smart_callback_add(spinner, "focused", _eext_circle_object_spinner_focused_cb, NULL);
-   evas_object_smart_callback_add(spinner, "unfocused", _eext_circle_object_spinner_unfocused_cb, NULL);
+   if (!strcmp(efl_class_name_get(spinner), "Spin"))
+     {
+        efl_event_callback_add(spinner, EFL_UI_SPIN_EVENT_CHANGED, _efl_ui_spin_changed_cb, obj);
+        //C# FIXME: consider focus / unfocus
+     }
+   else
+     {
+        evas_object_smart_callback_add(spinner, "changed", _eext_circle_object_spinner_changed_cb, obj);
+        evas_object_smart_callback_add(spinner, "focused", _eext_circle_object_spinner_focused_cb, NULL);
+        evas_object_smart_callback_add(spinner, "unfocused", _eext_circle_object_spinner_unfocused_cb, NULL);
+
+     }
 
    //for accessibility
    evas_object_smart_callback_add(elm_object_part_content_get(obj->widget_object, "elm.swallow.text_button"), "atspi,highlighted", _accessibility_spinner_highlighted_cb, obj);