add support for visible-data-changed event in spinner widget
authorPatryk Kaczmarek <patryk.k@samsung.com>
Tue, 5 Nov 2013 09:14:49 +0000 (10:14 +0100)
committerPatryk Kaczmarek <patryk.k@samsung.com>
Tue, 5 Nov 2013 09:14:49 +0000 (10:14 +0100)
eail/eail/eail_spinner.c

index 7bdf00e..08ddb73 100644 (file)
@@ -25,6 +25,7 @@
 #include <Elementary.h>
 
 #include "eail_spinner.h"
+#include "eail_utils.h"
 
 static void atk_value_interface_init(AtkValueIface *iface);
 
@@ -38,6 +39,23 @@ G_DEFINE_TYPE_WITH_CODE(EailSpinner,
                                               atk_value_interface_init));
 
 /**
+* @brief handler for changed event
+*
+* @param data passed to callback
+* @param obj object that raised event
+* @param event_info additional event info
+*/
+
+void
+_eail_spinner_handle_changed_event(void *data,
+                                     Evas_Object *obj,
+                                     void *event_info)
+{
+   eail_emit_atk_signal
+                  (ATK_OBJECT(data), "visible-data-changed", ATK_TYPE_OBJECT);
+}
+
+/**
  * @brief EailSpinner interface initializer
  *
  * @param spinner EailSpinner instance
@@ -56,8 +74,15 @@ eail_spinner_init(EailSpinner *spinner)
 void
 eail_spinner_initialize(AtkObject *obj, gpointer data)
 {
+   Evas_Object *nested_widget = NULL;
    ATK_OBJECT_CLASS(eail_spinner_parent_class)->initialize(obj, data);
+
    obj->role = ATK_ROLE_SPIN_BUTTON;
+   g_return_if_fail(EAIL_IS_WIDGET(obj));
+
+   nested_widget = eail_widget_get_widget(EAIL_WIDGET(obj));
+   evas_object_smart_callback_add(nested_widget, "changed",
+                                  _eail_spinner_handle_changed_event, obj);
 }
 
 /**