X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=atk-adaptor%2Fadaptors%2Fcomponent-adaptor.c;h=dd6a4b34688d6783fc6a8463b6e2273410cde4c1;hb=9700b1af8a276f7f858f0319bab64aa3d30a4cd5;hp=a0e16adf19a0097b70cc1ee0d4eee3a5586a28dd;hpb=62ef943cbe84b8293bd99910a6a01d432d122eb5;p=platform%2Fcore%2Fuifw%2Fat-spi2-atk.git diff --git a/atk-adaptor/adaptors/component-adaptor.c b/atk-adaptor/adaptors/component-adaptor.c index a0e16ad..dd6a4b3 100644 --- a/atk-adaptor/adaptors/component-adaptor.c +++ b/atk-adaptor/adaptors/component-adaptor.c @@ -24,8 +24,9 @@ #include #include +#include -#include "common/spi-dbus.h" +#include "spi-dbus.h" #include "object.h" #include "introspection.h" @@ -85,9 +86,10 @@ impl_GetAccessibleAtPoint (DBusConnection * bus, DBusMessage * message, atk_component_ref_accessible_at_point (component, x, y, (AtkCoordType) coord_type); reply = spi_object_return_reference (message, child); - g_object_unref (child); + if (child) + g_object_unref (child); - return child; + return reply; } static DBusMessage * @@ -183,28 +185,28 @@ impl_GetLayer (DBusConnection * bus, DBusMessage * message, void *user_data) switch (atklayer) { case ATK_LAYER_BACKGROUND: - rv = Accessibility_LAYER_BACKGROUND; + rv = ATSPI_LAYER_BACKGROUND; break; case ATK_LAYER_CANVAS: - rv = Accessibility_LAYER_CANVAS; + rv = ATSPI_LAYER_CANVAS; break; case ATK_LAYER_WIDGET: - rv = Accessibility_LAYER_WIDGET; + rv = ATSPI_LAYER_WIDGET; break; case ATK_LAYER_MDI: - rv = Accessibility_LAYER_MDI; + rv = ATSPI_LAYER_MDI; break; case ATK_LAYER_POPUP: - rv = Accessibility_LAYER_POPUP; + rv = ATSPI_LAYER_POPUP; break; case ATK_LAYER_OVERLAY: - rv = Accessibility_LAYER_OVERLAY; + rv = ATSPI_LAYER_OVERLAY; break; case ATK_LAYER_WINDOW: - rv = Accessibility_LAYER_WINDOW; + rv = ATSPI_LAYER_WINDOW; break; default: - rv = Accessibility_LAYER_INVALID; + rv = ATSPI_LAYER_INVALID; break; } reply = dbus_message_new_method_return (message); @@ -251,7 +253,7 @@ impl_GrabFocus (DBusConnection * bus, DBusMessage * message, void *user_data) reply = dbus_message_new_method_return (message); if (reply) { - dbus_message_append_args (reply, DBUS_TYPE_UINT32, &rv, + dbus_message_append_args (reply, DBUS_TYPE_BOOLEAN, &rv, DBUS_TYPE_INVALID); } return reply; @@ -291,6 +293,110 @@ impl_GetAlpha (DBusConnection * bus, DBusMessage * message, void *user_data) return reply; } +static DBusMessage * +impl_SetExtents (DBusConnection * bus, DBusMessage * message, void *user_data) +{ + AtkComponent *component = (AtkComponent *) user_data; + DBusMessageIter iter, iter_struct; + dbus_uint32_t coord_type; + dbus_int32_t x, y, width, height; + dbus_bool_t ret; + DBusMessage *reply; + + g_return_val_if_fail (ATK_IS_COMPONENT (user_data), + droute_not_yet_handled_error (message)); + + if (strcmp (dbus_message_get_signature (message), "(iiii)u") != 0) + { + return droute_invalid_arguments_error (message); + } + + dbus_message_iter_init (message, &iter); + dbus_message_iter_recurse (&iter, &iter_struct); + dbus_message_iter_get_basic (&iter_struct, &x); + dbus_message_iter_next (&iter_struct); + dbus_message_iter_get_basic (&iter_struct, &y); + dbus_message_iter_next (&iter_struct); + dbus_message_iter_get_basic (&iter_struct, &width); + dbus_message_iter_next (&iter_struct); + dbus_message_iter_get_basic (&iter_struct, &height); + dbus_message_iter_next (&iter_struct); + dbus_message_iter_next (&iter); + dbus_message_iter_get_basic (&iter, &coord_type); + + ret = atk_component_set_extents (component, x, y, width, height, coord_type); + + reply = dbus_message_new_method_return (message); + if (reply) + { + dbus_message_append_args (reply, DBUS_TYPE_BOOLEAN, &ret, + DBUS_TYPE_INVALID); + } + + return reply; +} + +static DBusMessage * +impl_SetPosition (DBusConnection * bus, DBusMessage * message, void *user_data) +{ + AtkComponent *component = (AtkComponent *) user_data; + dbus_uint32_t coord_type; + dbus_int32_t x, y; + dbus_bool_t ret; + DBusMessage *reply; + + g_return_val_if_fail (ATK_IS_COMPONENT (user_data), + droute_not_yet_handled_error (message)); + + if (!dbus_message_get_args + (message, NULL, DBUS_TYPE_INT32, &x, DBUS_TYPE_INT32, &y, + DBUS_TYPE_UINT32, &coord_type, DBUS_TYPE_INVALID)) + { + return droute_invalid_arguments_error (message); + } + + ret = atk_component_set_position (component, x, y, coord_type); + + reply = dbus_message_new_method_return (message); + if (reply) + { + dbus_message_append_args (reply, DBUS_TYPE_BOOLEAN, &ret, + DBUS_TYPE_INVALID); + } + + return reply; +} + +static DBusMessage * +impl_SetSize (DBusConnection * bus, DBusMessage * message, void *user_data) +{ + AtkComponent *component = (AtkComponent *) user_data; + dbus_int32_t width, height; + dbus_bool_t ret; + DBusMessage *reply; + + g_return_val_if_fail (ATK_IS_COMPONENT (user_data), + droute_not_yet_handled_error (message)); + + if (!dbus_message_get_args + (message, NULL, DBUS_TYPE_INT32, &width, DBUS_TYPE_INT32, &height, + DBUS_TYPE_INVALID)) + { + return droute_invalid_arguments_error (message); + } + + ret = atk_component_set_size (component, width, height); + + reply = dbus_message_new_method_return (message); + if (reply) + { + dbus_message_append_args (reply, DBUS_TYPE_BOOLEAN, &ret, + DBUS_TYPE_INVALID); + } + + return reply; +} + static DRouteMethod methods[] = { {impl_contains, "contains"}, {impl_GetAccessibleAtPoint, "GetAccessibleAtPoint"}, @@ -303,6 +409,9 @@ static DRouteMethod methods[] = { //{impl_registerFocusHandler, "registerFocusHandler"}, //{impl_deregisterFocusHandler, "deregisterFocusHandler"}, {impl_GetAlpha, "GetAlpha"}, + {impl_SetExtents, "SetExtents"}, + {impl_SetPosition, "SetPosition"}, + {impl_SetSize, "SetSize"}, {NULL, NULL} }; @@ -310,5 +419,5 @@ void spi_initialize_component (DRoutePath * path) { droute_path_add_interface (path, - SPI_DBUS_INTERFACE_COMPONENT, spi_org_a11y_atspi_Component, methods, NULL); + ATSPI_DBUS_INTERFACE_COMPONENT, spi_org_a11y_atspi_Component, methods, NULL); };