Signal visible-data-changed support implemented for clock and datetime widgets
authorPatryk Kaczmarek <patryk.k@samsung.com>
Tue, 1 Oct 2013 13:12:07 +0000 (15:12 +0200)
committerPatryk Kaczmarek <patryk.k@samsung.com>
Tue, 1 Oct 2013 13:12:07 +0000 (15:12 +0200)
   * Commit add visible-data-changed signal emission while widget value is changed

eail/ChangeLog
eail/eail/eail_clock.c
eail/eail/eail_datetime.c

index 3ac437b..99a65c9 100644 (file)
@@ -10,3 +10,6 @@
 
         * Issues deteced by Static Code Analysis fixed
 
+2013-10-01
+
+       * Signal visible-data-changed support implemented for clock and datetime widgets
index e247aba..1bb9fa1 100644 (file)
@@ -25,6 +25,7 @@
 #include <Elementary.h>
 
 #include "eail_clock.h"
+#include "eail_utils.h"
 
 static void atk_value_interface_init(AtkValueIface *iface);
 
@@ -37,6 +38,23 @@ G_DEFINE_TYPE_WITH_CODE(EailClock,
                         G_IMPLEMENT_INTERFACE(ATK_TYPE_VALUE,
                                               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_clock_handle_changed_event(void *data,
+                                     Evas_Object *obj,
+                                     void *event_info)
+{
+   eail_emit_atk_signal
+                  (ATK_OBJECT(data), "visible-data-changed", ATK_TYPE_OBJECT);
+}
+
 /*
  * Implementation of the *AtkObject* interface
  */
@@ -50,9 +68,15 @@ G_DEFINE_TYPE_WITH_CODE(EailClock,
 static void
 eail_clock_initialize(AtkObject *obj, gpointer data)
 {
+   Evas_Object *nested_widget = NULL;
    ATK_OBJECT_CLASS(eail_clock_parent_class)->initialize(obj, data);
 
    obj->role = ATK_ROLE_TEXT;
+   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_clock_handle_changed_event, obj);
 }
 
 /**
index 7620714..72209ea 100644 (file)
@@ -26,6 +26,7 @@
 #include <Elementary.h>
 
 #include "eail_datetime.h"
+#include "eail_utils.h"
 
 static void atk_value_interface_init(AtkValueIface *iface);
 
@@ -39,6 +40,23 @@ G_DEFINE_TYPE_WITH_CODE(EailDatetime,
                                               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_datetime_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 EailDatetime object initialization
  *
  * @param obj EailDatetime instance
@@ -47,9 +65,15 @@ G_DEFINE_TYPE_WITH_CODE(EailDatetime,
 static void
 eail_datetime_initialize(AtkObject *obj, gpointer data)
 {
+   Evas_Object *nested_widget = NULL;
    ATK_OBJECT_CLASS(eail_datetime_parent_class)->initialize(obj, data);
 
    obj->role = ATK_ROLE_DATE_EDITOR;
+   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_datetime_handle_changed_event, obj);
 }
 
 /**