Changes by ACR
authorKyuho Jo <kyuho.jo@samsung.com>
Tue, 31 Mar 2015 11:21:36 +0000 (20:21 +0900)
committerKyuho Jo <kyuho.jo@samsung.com>
Tue, 31 Mar 2015 11:21:36 +0000 (20:21 +0900)
Change-Id: Ic05c95c0c5b16e2fc1a5efb3ae776f82dfdf9f3b
Signed-off-by: Kyuho Jo <kyuho.jo@samsung.com>
widget_viewer/include/widget_viewer.h
widget_viewer/include/widget_viewer_internal.h
widget_viewer/src/widget.c
widget_viewer/src/widget_internal.c
widget_viewer_evas/include/widget_viewer_evas.h
widget_viewer_evas/include/widget_viewer_evas_internal.h
widget_viewer_evas/src/widget_viewer_evas.c

index 9492e1e..87a4d96 100755 (executable)
@@ -15,6 +15,7 @@
  */
 
 #include <widget_service.h>
+#include <widget_service_internal.h>
 
 #ifndef __WIDGET_VIEWER_H
 #define __WIDGET_VIEWER_H
@@ -294,22 +295,6 @@ typedef struct widget_key_event_info {
 
 /**
  * @internal
- * @brief Text Event Information
- * @since_tizen 2.3
- */
-typedef struct widget_text_event {
-    const char *emission;
-    const char *source;
-    struct {
-        double sx;
-        double sy;
-        double ex;
-        double ey;
-    } geometry;
-} *widget_text_event_s;
-
-/**
- * @internal
  * @brief Structure for TEXT type widget contents handling opertators.
  * @since_tizen 2.3
  */
@@ -321,7 +306,7 @@ typedef struct widget_script_operators {
     int (*update_text)(widget_h handle, const char *id, const char *part, const char *data); /**< Update text content */
     int (*update_image)(widget_h handle, const char *id, const char *part, const char *data, const char *option); /**< Update image content */
     int (*update_script)(widget_h handle, const char *id, const char *new_id, const char *part, const char *file, const char *group); /**< Update script content */
-    int (*update_signal)(widget_h handle, const char *id, const char *emission, const char *signal); /**< Update signal */
+    int (*update_signal)(widget_h handle, const char *id, const char *signal_name, const char *signal); /**< Update signal */
     int (*update_drag)(widget_h handle, const char *id, const char *part, double dx, double dy); /**< Update drag info */
     int (*update_info_size)(widget_h handle, const char *id, int w, int h); /**< Update content size */
     int (*update_info_category)(widget_h handle, const char *id, const char *category); /**< Update content category info */
@@ -1174,7 +1159,7 @@ extern int widget_viewer_set_text_handler(widget_h handle, int gbar, widget_scri
  *    This function is Asynchronous, so you will get result of add requst from @a cb, if you failed to send request to create a new widget,
  *    This function will returns proper error code
  * @param[in] handle Handle of a widget instance
- * @param[in] emission Emission string
+ * @param[in] signal_name Emission string
  * @param[in] source Source string
  * @param[in] sx Start X
  * @param[in] sy Start Y
@@ -1190,7 +1175,7 @@ extern int widget_viewer_set_text_handler(widget_h handle, int gbar, widget_scri
  * @retval #WIDGET_STATUS_ERROR_NONE Successfully emitted
  * @see widget_ret_cb
  */
-extern int widget_viewer_emit_text_signal(widget_h handle, widget_text_event_s event_info, widget_ret_cb cb, void *data);
+extern int widget_viewer_emit_text_signal(widget_h handle, widget_text_signal_s event_info, widget_ret_cb cb, void *data);
 
 /**
  * @internal
index 939afed..379cdf7 100755 (executable)
@@ -18,6 +18,7 @@
 #define __WIDGET_VIEWER_INTERNAL_H
 
 #include "widget_viewer.h"
+#include "widget_buffer.h"
 
 struct cb_info {
     widget_ret_cb cb;
index 61c6b80..516bd43 100755 (executable)
@@ -3656,13 +3656,13 @@ EAPI const char *widget_viewer_get_title_string(widget_h handle)
        return handle->common->title;
 }
 
-EAPI int widget_viewer_emit_text_signal(widget_h handle, widget_text_event_s event_info, widget_ret_cb cb, void *data)
+EAPI int widget_viewer_emit_text_signal(widget_h handle, widget_text_signal_s event_info, widget_ret_cb cb, void *data)
 {
        struct packet *packet;
        struct cb_info *cbinfo;
        unsigned int cmd = CMD_TEXT_SIGNAL;
        int ret;
-       const char *emission;
+       const char *signal_name;
        const char *source;
 
        if (!handle || handle->state != WIDGET_STATE_CREATE) {
@@ -3689,9 +3689,9 @@ EAPI int widget_viewer_emit_text_signal(widget_h handle, widget_text_event_s eve
                return WIDGET_ERROR_INVALID_PARAMETER;
        }
 
-       emission = event_info->emission;
-       if (!emission) {
-               emission = "";
+       signal_name = event_info->signal_name;
+       if (!signal_name) {
+               signal_name = "";
        }
 
        source = event_info->source;
@@ -3701,7 +3701,7 @@ EAPI int widget_viewer_emit_text_signal(widget_h handle, widget_text_event_s eve
 
        packet = packet_create((const char *)&cmd, "ssssdddd",
                        handle->common->pkgname, handle->common->id,
-                       emission, source,
+                       signal_name, source,
                        event_info->geometry.sx, event_info->geometry.sy,
                        event_info->geometry.ex, event_info->geometry.ey);
        if (!packet) {
index 959a63a..c41277e 100755 (executable)
@@ -258,7 +258,7 @@ void _widget_set_size(struct widget_common *common, int w, int h)
 
        widget_service_get_size_type(w, h, &size_type);
        if (size_type != WIDGET_SIZE_TYPE_UNKNOWN) {
-               widget_service_get_need_of_mouse_event(common->pkgname, size_type, &common->widget.mouse_event);
+               widget_service_get_need_of_mouse_event(common->pkgname, size_type, (bool*)&common->widget.mouse_event);
        }
 }
 
index 32ae3c5..84b4789 100755 (executable)
@@ -65,15 +65,7 @@ typedef struct widget_evas_event_info {
     int error;                    /**< Error type - WIDGET_ERROR_XXX, refer the widget_errno.h */
 } widget_evas_event_info_s;
 
-/**
- * @sine_tizen 2.4
- * @brief Data structure for smart callback user parameter
- */
-typedef enum widget_evas_raw_event_type {
-    WIDGET_VIEWER_EVAS_RAW_DELETE = 0x00,
-    WIDGET_VIEWER_EVAS_RAW_CREATE = 0x02,
-    WIDGET_VIEWER_EVAS_RAW_MAX = 0xff,
-} widget_evas_raw_event_type_e;
+
 
 /**
  * \brief
@@ -95,13 +87,6 @@ typedef enum widget_evas_conf {
     WIDGET_VIEWER_EVAS_UNKNOWN = 0xFFFF
 } widget_evas_conf_e;
 
-typedef struct widget_evas_raw_event_info {
-    const char *pkgname;
-    enum widget_evas_raw_event_type type;
-    int error;
-    Evas_Object *widget;
-} widget_evas_raw_event_info_s;
-
 /**
  * @brief Initializes the widget system
  * @since_tizen 2.4
@@ -297,24 +282,6 @@ extern void widget_viewer_evas_activate_faulted_widget(Evas_Object *widget);
  */
 extern int widget_viewer_evas_is_faulted(Evas_Object *widget);
 
-/**
- * @brief Unregister a callback function for subscribing raw event.
- * @since_tizen 2.4
- * @param[in] type
- * @param[in] cb
- * @param[in] data
- * @return int
- */
-extern int widget_viewer_evas_unset_raw_event_callback(enum widget_evas_raw_event_type type, void (*cb)(struct widget_evas_raw_event_info *info, void *data), void *data);
-
-/**
- * @brief Register a callback function for subscribing raw event.
- * @since_tizen 2.4
- * @param[in] type
- * @param[in] cb
- * @param[in] data
- */
-extern int widget_viewer_evas_set_raw_event_callback(enum widget_evas_raw_event_type type, void (*cb)(struct widget_evas_raw_event_info *info, void *data), void *data);
 
 /**
  * @brief If you don't want change the visibility automatically, freeze it.\n
@@ -364,18 +331,16 @@ extern void widget_viewer_evas_set_permanent_delete(Evas_Object *widget, int fla
  * @since_tizen 2.3.1
  * @remarks
  *    This is an ASYNCHRONOUS API.
- *    This function is Asynchronous, so you will get the result from @a cb, if you failed to send request to create a new widget,
- *    This function will returns proper error code
- * @param[in] handle Handle of a widget instance
- * @param[in] emission Emission string
- * @param[in] source Source string
- * @param[in] sx Start X
- * @param[in] sy Start Y
- * @param[in] ex End X
- * @param[in] ey End Y
- * @param[in] cb Result callback
- * @param[in] data Callback data
- * @privlevel platform
+ *    This function is Asynchronous, so you will get the result from @a smart callback, if you failed to send a text signal,
+ *    this function will returns proper error code.
+ * @param[in] widget widget object
+ * @param[in] event_info.signal_name Emission string
+ * @param[in] event_info.source Source string
+ * @param[in] event_info.sx Start X
+ * @param[in] event_info.sy Start Y
+ * @param[in] event_info.ex End X
+ * @param[in] event_info.ey End Y
+ * @privlevel public
  * @privilege %http://tizen.org/privilege/widget.viewer
  * @return int
  * @retval #WIDGET_STATUS_ERROR_INVALID_PARAMETER Invalid parameters
@@ -383,7 +348,7 @@ extern void widget_viewer_evas_set_permanent_delete(Evas_Object *widget, int fla
  * @retval #WIDGET_STATUS_ERROR_NONE Successfully emitted
  * @see widget_ret_cb
  */
-extern int widget_viewer_evas_emit_text_signal(widget_h handle, widget_text_event_s event_info, widget_ret_cb cb, void *data);
+extern int widget_viewer_evas_emit_text_signal(Evas_Object *widget, widget_text_signal_s event_info, void *data);
 
 #ifdef __cplusplus
 }
index 0fcd01b..ffcc6b9 100644 (file)
@@ -43,6 +43,23 @@ typedef enum widget_access_result {
 } widget_access_result_e;
 
 /**
+ * @sine_tizen 2.4
+ * @brief Data structure for smart callback user parameter
+ */
+typedef enum widget_evas_raw_event_type {
+    WIDGET_VIEWER_EVAS_RAW_DELETE = 0x00,
+    WIDGET_VIEWER_EVAS_RAW_CREATE = 0x02,
+    WIDGET_VIEWER_EVAS_RAW_MAX = 0xff,
+} widget_evas_raw_event_type_e;
+
+typedef struct widget_evas_raw_event_info {
+    const char *pkgname;
+    enum widget_evas_raw_event_type type;
+    int error;
+    Evas_Object *widget;
+} widget_evas_raw_event_info_s;
+
+/**
  * @brief Close the Glance Bar if it is opened
  * @since_tizen 2.4
  * @param[in] widget widget object
@@ -163,6 +180,34 @@ extern int widget_viewer_evas_subscribe_category(const char *category);
 extern int widget_viewer_evas_unsubscribe_category(const char *category);
 
 extern int widget_viewer_evas_get_instance_id(Evas_Object *widget, char **instance_id);
+/**
+ * @brief Callback function for handling raw event
+ * @since_tizen 2.4
+ * @param[in] info
+ * @param[in] data
+ * @return void
+ */
+
+typedef void (*raw_event_cb)(struct widget_evas_raw_event_info *info, void *data);
+
+/**
+ * @brief Unregister a callback function for subscribing raw event.
+ * @since_tizen 2.4
+ * @param[in] type
+ * @param[in] cb
+ * @param[in] data
+ * @return int
+ */
+extern int widget_viewer_evas_unset_raw_event_callback(enum widget_evas_raw_event_type type, raw_event_cb cb, void *data);
+
+/**
+ * @brief Register a callback function for subscribing raw event.
+ * @since_tizen 2.4
+ * @param[in] type
+ * @param[in] cb
+ * @param[in] data
+ */
+extern int widget_viewer_evas_set_raw_event_callback(enum widget_evas_raw_event_type type, raw_event_cb cb, void *data);
 
 #ifdef __cplusplus
 }
index f8a0c0a..8147f6b 100755 (executable)
 
 #include <ail.h>
 
-#include <widget_service.h>
-#include <widget_service_internal.h>
+#include <widget_viewer.h>
+#include <widget_viewer_internal.h>
 #include <widget_viewer.h>
 #include <widget_errno.h>
-#include <widget_buffer.h>
+
 
 #if defined(LOG_TAG)
 #undef LOG_TAG
@@ -508,11 +508,11 @@ static void __widget_script_del_cb(void *cbdata, Evas *e, Evas_Object *obj, void
        }
 }
 
-static void script_signal_forwarder(void *cbdata, Evas_Object *obj, const char *emission, const char *source)
+static void script_signal_forwarder(void *cbdata, Evas_Object *obj, const char *signal_name, const char *source)
 {
        struct widget_data *data = cbdata;
-       struct widget_text_event event_info = {
-               .emission = emission,
+       struct widget_text_signal event_info = {
+               .signal_name = signal_name,
                .source = source,
                .geometry = {
                        .sx = 0.0f,
@@ -1250,7 +1250,7 @@ static void __widget_destroy_gbar_cb(struct widget *handle, int ret, void *cbdat
        widget_unref(data);
 }
 
-static void gbar_animation_done_cb(void *cbdata, Evas_Object *obj, const char *emission, const char *source)
+static void gbar_animation_done_cb(void *cbdata, Evas_Object *obj, const char *signal_name, const char *source)
 {
        Evas_Object *rect;
        struct widget_data *data = cbdata;
@@ -2178,7 +2178,7 @@ static int gbar_text_update_script(widget_h handle, const char *id, const char *
        return do_text_update_script(data, 1, layout, new_id, part, file, group);
 }
 
-static int gbar_text_update_signal(widget_h handle, const char *id, const char *emission, const char *signal)
+static int gbar_text_update_signal(widget_h handle, const char *id, const char *signal_name, const char *signal)
 {
        struct widget_data *data;
        Evas_Object *layout;
@@ -2194,7 +2194,7 @@ static int gbar_text_update_signal(widget_h handle, const char *id, const char *
                return WIDGET_ERROR_NOT_EXIST;
        }
 
-       elm_object_signal_emit(layout, signal, emission);
+       elm_object_signal_emit(layout, signal, signal_name);
        return WIDGET_ERROR_NONE;
 }
 
@@ -2937,7 +2937,7 @@ static void activate_ret_cb(struct widget *handle, int ret, void *cbdata)
        widget_unref(data);
 }
 
-static void __widget_animation_done_cb(void *cbdata, Evas_Object *obj, const char *emission, const char *source)
+static void __widget_animation_done_cb(void *cbdata, Evas_Object *obj, const char *signal_name, const char *source)
 {
        struct widget_data *data = cbdata;
 
@@ -2952,7 +2952,7 @@ static void __widget_animation_done_cb(void *cbdata, Evas_Object *obj, const cha
        }
 }
 
-static void __widget_turn_done_cb(void *cbdata, Evas_Object *obj, const char *emission, const char *source)
+static void __widget_turn_done_cb(void *cbdata, Evas_Object *obj, const char *signal_name, const char *source)
 {
        struct widget_data *data = cbdata;
        Evas_Object *overlay;
@@ -2969,7 +2969,7 @@ static void __widget_turn_done_cb(void *cbdata, Evas_Object *obj, const char *em
        }
 }
 
-static void __widget_overlay_clicked_cb(void *cbdata, Evas_Object *obj, const char *emission, const char *source)
+static void __widget_overlay_clicked_cb(void *cbdata, Evas_Object *obj, const char *signal_name, const char *source)
 {
        struct widget_data *data = cbdata;
 
@@ -2978,7 +2978,7 @@ static void __widget_overlay_clicked_cb(void *cbdata, Evas_Object *obj, const ch
                return;
        }
 
-       DbgPrint("Overlay is clicked: (%s) (%s)\n", emission, source);
+       DbgPrint("Overlay is clicked: (%s) (%s)\n", signal_name, source);
        if (!data->is.field.faulted) {
                /*!
                 * \todo
@@ -3795,7 +3795,7 @@ static int widget_text_update_script(widget_h handle, const char *id, const char
        return do_text_update_script(data, 0, layout, new_id, part, file, group);
 }
 
-static int widget_text_update_signal(widget_h handle, const char *id, const char *emission, const char *signal)
+static int widget_text_update_signal(widget_h handle, const char *id, const char *signal_name, const char *signal)
 {
        struct widget_data *data;
        Evas_Object *layout;
@@ -3811,7 +3811,7 @@ static int widget_text_update_signal(widget_h handle, const char *id, const char
                return WIDGET_ERROR_NOT_EXIST;
        }
 
-       elm_object_signal_emit(layout, signal, emission);
+       elm_object_signal_emit(layout, signal, signal_name);
        return WIDGET_ERROR_NONE;
 }
 
@@ -4737,9 +4737,9 @@ static void __widget_resize(Evas_Object *widget, Evas_Coord w, Evas_Coord h)
                DbgPrint("Added handle: %p (%p)\n", data->handle, data);
                widget_viewer_set_data(data->handle, widget);
                __widget_overlay_loading(data);
-               widget_service_get_need_of_touch_effect(data->widget_id, type, &need_of_touch_effect);
+               widget_service_get_need_of_touch_effect(data->widget_id, type, (bool*)&need_of_touch_effect);
                data->is.field.touch_effect = need_of_touch_effect;
-               widget_service_get_need_of_mouse_event(data->widget_id, type, &need_of_mouse_event);
+               widget_service_get_need_of_mouse_event(data->widget_id, type, (bool*)&need_of_mouse_event);
                data->is.field.mouse_event = need_of_mouse_event;
        } else {
                int ret;
@@ -4760,9 +4760,9 @@ static void __widget_resize(Evas_Object *widget, Evas_Coord w, Evas_Coord h)
                        widget_unref(data);
                } else if (ret == WIDGET_ERROR_NONE) {
                        DbgPrint("Resize request is successfully sent\n");
-                       widget_service_get_need_of_touch_effect(data->widget_id, type, &need_of_touch_effect);
+                       widget_service_get_need_of_touch_effect(data->widget_id, type, (bool*)&need_of_touch_effect);
                        data->is.field.touch_effect = need_of_touch_effect;
-                       widget_service_get_need_of_mouse_event(data->widget_id, type, &need_of_mouse_event);
+                       widget_service_get_need_of_mouse_event(data->widget_id, type, (bool*)&need_of_mouse_event);
                        data->is.field.mouse_event = need_of_mouse_event;
                } else {
                        widget_unref(data);
@@ -6706,7 +6706,7 @@ EAPI int widget_viewer_evas_is_faulted(Evas_Object *widget)
        return data->is.field.faulted;
 }
 
-EAPI int widget_viewer_evas_set_raw_event_callback(enum widget_evas_raw_event_type type, void (*cb)(struct widget_evas_raw_event_info *info, void *data), void *data)
+EAPI int widget_viewer_evas_set_raw_event_callback(enum widget_evas_raw_event_type type, raw_event_cb cb, void *data)
 {
        struct raw_event_cbdata *cbdata;
 
@@ -6734,7 +6734,7 @@ EAPI int widget_viewer_evas_set_raw_event_callback(enum widget_evas_raw_event_ty
        return WIDGET_ERROR_NONE;
 }
 
-EAPI int widget_viewer_evas_unset_raw_event_callback(enum widget_evas_raw_event_type type, void (*cb)(struct widget_evas_raw_event_info *info, void *data), void *data)
+EAPI int widget_viewer_evas_unset_raw_event_callback(enum widget_evas_raw_event_type type, raw_event_cb cb, void *data)
 {
        Eina_List *l;
        Eina_List *n;
@@ -6999,9 +6999,23 @@ EAPI int widget_viewer_evas_unsubscribe_category(const char *category)
        return WIDGET_ERROR_NOT_EXIST;
 }
 
-EAPI int widget_viewer_evas_emit_text_signal(widget_h handle, widget_text_event_s event_info, widget_ret_cb cb, void *data)
+void text_signal_cb(widget_h handle, int ret, void *data)
+{
+       /* TODO : add codes to invoke smart event callback function */
+}
+
+EAPI int widget_viewer_evas_emit_text_signal(Evas_Object *widget, widget_text_signal_s event_info, void *data)
 {
-       return widget_viewer_emit_text_signal(handle, event_info, cb, data);
+       struct widget_data *widget_data_from_evas;
+
+       widget_data_from_evas = get_smart_data(widget);
+
+       if (!widget_data_from_evas) {
+               ErrPrint("Invalid object\n");
+               return WIDGET_ERROR_INVALID_PARAMETER;
+       }
+
+       return widget_viewer_emit_text_signal(widget_data_from_evas->handle, event_info, text_signal_cb, data);
 }
 
 EAPI int widget_viewer_evas_get_instance_id(Evas_Object *widget, char **instance_id)