*/
#include <widget_service.h>
+#include <widget_service_internal.h>
#ifndef __WIDGET_VIEWER_H
#define __WIDGET_VIEWER_H
/**
* @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
*/
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 */
* 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
* @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
#define __WIDGET_VIEWER_INTERNAL_H
#include "widget_viewer.h"
+#include "widget_buffer.h"
struct cb_info {
widget_ret_cb cb;
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) {
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;
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) {
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);
}
}
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
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
*/
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
* @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
* @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
}
} 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
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
}
#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
}
}
-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,
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;
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;
return WIDGET_ERROR_NOT_EXIST;
}
- elm_object_signal_emit(layout, signal, emission);
+ elm_object_signal_emit(layout, signal, signal_name);
return WIDGET_ERROR_NONE;
}
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;
}
}
-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;
}
}
-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;
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
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;
return WIDGET_ERROR_NOT_EXIST;
}
- elm_object_signal_emit(layout, signal, emission);
+ elm_object_signal_emit(layout, signal, signal_name);
return WIDGET_ERROR_NONE;
}
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;
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);
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;
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;
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)