From: padraigo Date: Fri, 14 Feb 2003 13:44:15 +0000 (+0000) Subject: 2003-02-14 Padraig O'Briain X-Git-Tag: AT_SPI2_ATK_2_12_0~1275 X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fat-spi2-atk.git;a=commitdiff_plain;h=0210eb491dc2d3e704e3fad467c5398c5b822d5f 2003-02-14 Padraig O'Briain * atk-bridge/bridge.c (spi_atk_bridge_init_event_type_consts): Look up "link-selected" for AtkHypertext (spi_atk_register_event_listener): Add signal listener for link-selected (spi_atk_bridge_signal_listener): Event event when link-selected signal is emitted. (bug #104622) * cspi/spi_event.c (cspi_internal_event_get_text): Call g_strdup() on returned string. (bug #105291) * test/event-listener-test.c: Add test for link-selected. git-svn-id: http://svn.gnome.org/svn/at-spi/trunk@402 e2bd861d-eb25-0410-b326-f6ed22b6b98c --- diff --git a/ChangeLog b/ChangeLog index ea9ec27..8ed4a80 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,20 @@ 2003-02-14 Padraig O'Briain + * atk-bridge/bridge.c + (spi_atk_bridge_init_event_type_consts): Look up "link-selected" for + AtkHypertext + (spi_atk_register_event_listener): Add signal listener for + link-selected + (spi_atk_bridge_signal_listener): Event event when link-selected + signal is emitted. (bug #104622) + + * cspi/spi_event.c (cspi_internal_event_get_text): Call g_strdup() + on returned string. (bug #105291) + + * test/event-listener-test.c: Add test for link-selected. + +2003-02-14 Padraig O'Briain + * atk-bridge/Makefile.am: Correct typo in previous commit. 2003-02-13 Padraig O'Briain diff --git a/atk-bridge/bridge.c b/atk-bridge/bridge.c index c22d8de..b1666da 100644 --- a/atk-bridge/bridge.c +++ b/atk-bridge/bridge.c @@ -2,8 +2,8 @@ * AT-SPI - Assistive Technology Service Provider Interface * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap) * - * Copyright 2001, 2002 Sun Microsystems Inc., - * Copyright 2001, 2002 Ximian, Inc. + * Copyright 2001, 2002, 2003 Sun Microsystems Inc., + * Copyright 2001, 2002, 2003 Ximian, Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public @@ -74,6 +74,8 @@ static guint atk_signal_active_descendant_changed; static guint atk_signal_column_deleted; */ +static guint atk_signal_link_selected; + static Accessibility_Registry spi_atk_bridge_get_registry (void); static void spi_atk_bridge_do_registration (void); static void spi_atk_bridge_toplevel_added (AtkObject *object, @@ -131,6 +133,8 @@ spi_atk_bridge_init_event_type_consts () atk_signal_active_descendant_changed = g_signal_lookup ("active_descendant_changed", ATK_TYPE_OBJECT); + atk_signal_link_selected = g_signal_lookup ("link_selected", + ATK_TYPE_HYPERTEXT); } static int @@ -360,6 +364,7 @@ spi_atk_register_event_listeners (void) add_signal_listener ("Gtk:AtkTable:column-reordered"); add_signal_listener ("Gtk:AtkTable:column-deleted"); add_signal_listener ("Gtk:AtkTable:model-changed"); + add_signal_listener ("Gtk:AtkHypertext:link-selected"); /* * May add the following listeners to implement preemptive key listening for GTK+ * @@ -741,6 +746,12 @@ spi_atk_bridge_signal_listener (GSignalInvocationHint *signal_hint, c_obj = BONOBO_OBJREF (s_ao); spi_init_any_object (&any, &c_obj); } + else if (signal_query.signal_id == atk_signal_link_selected) + { + if (G_VALUE_TYPE (param_values + 1) == G_TYPE_INT) + detail1 = g_value_get_int (param_values + 1); + spi_init_any_nil (&any); + } else { if (G_VALUE_TYPE (param_values + 1) == G_TYPE_INT) diff --git a/cspi/spi_event.c b/cspi/spi_event.c index 2eb1597..27ac522 100644 --- a/cspi/spi_event.c +++ b/cspi/spi_event.c @@ -2,8 +2,8 @@ * AT-SPI - Assistive Technology Service Provider Interface * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap) * - * Copyright 2001, 2002 Sun Microsystems Inc., - * Copyright 2001, 2002 Ximian, Inc. + * Copyright 2001, 2002, 2003 Sun Microsystems Inc., + * Copyright 2001, 2002, 2003 Ximian, Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public @@ -338,7 +338,7 @@ cspi_internal_event_get_text (const InternalEvent *e) any = (CORBA_any *) e->data; if (CORBA_TypeCode_equivalent (any->_type, TC_CORBA_string, NULL)) { - return * (char **) any->_value; + return g_strdup (* (char **) any->_value); } else { diff --git a/test/event-listener-test.c b/test/event-listener-test.c index 247c6bf..ce9f273 100644 --- a/test/event-listener-test.c +++ b/test/event-listener-test.c @@ -2,8 +2,8 @@ * AT-SPI - Assistive Technology Service Provider Interface * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap) * - * Copyright 2001, 2002 Sun Microsystems Inc., - * Copyright 2001, 2002 Ximian, Inc. + * Copyright 2001, 2002, 2003 Sun Microsystems Inc., + * Copyright 2001, 2002, 2003 Ximian, Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public @@ -29,12 +29,14 @@ static void traverse_accessible_tree (Accessible *accessible); static void report_event (const AccessibleEvent *event, void *user_data); static void report_detail_event (const AccessibleEvent *event, void *user_data); +static void report_detail1_event (const AccessibleEvent *event, void *user_data); static void report_text_event (const AccessibleEvent *event, void *user_data); static void timing_test_event (const AccessibleEvent *event, void *user_data); static SPIBoolean report_mouse_event (const AccessibleDeviceEvent *event, void *user_data); static AccessibleEventListener *generic_listener; static AccessibleEventListener *specific_listener; +static AccessibleEventListener *detail1_listener; static AccessibleEventListener *test_listener; static AccessibleEventListener *text_listener; static AccessibleDeviceListener *mouse_device_listener; @@ -96,6 +98,8 @@ main (int argc, char **argv) timing_test_event, NULL); mouse_device_listener = SPI_createAccessibleDeviceListener ( report_mouse_event, NULL); + detail1_listener = SPI_createAccessibleEventListener ( + report_detail1_event, NULL); SPI_registerGlobalEventListener (generic_listener, "focus:"); @@ -151,6 +155,8 @@ main (int argc, char **argv) "object:row-deleted"); SPI_registerGlobalEventListener (generic_listener, "object:model-changed"); + SPI_registerGlobalEventListener (detail1_listener, + "object:link-selected"); SPI_registerGlobalEventListener (generic_listener, "window:minimize"); SPI_registerGlobalEventListener (generic_listener, @@ -269,6 +275,15 @@ report_detail_event (const AccessibleEvent *event, void *user_data) } void +report_detail1_event (const AccessibleEvent *event, void *user_data) +{ + char *s = Accessible_getName (event->source); + fprintf (stderr, "(detail) %s %s %d\n", event->type, s, + event->detail1); + if (s) SPI_freeString (s); +} + +void report_text_event (const AccessibleEvent *event, void *user_data) { char *s = Accessible_getName (event->source);