2003-02-14 Padraig O'Briain <padraig.obriain@sun.com>
authorpadraigo <padraigo@e2bd861d-eb25-0410-b326-f6ed22b6b98c>
Fri, 14 Feb 2003 13:44:15 +0000 (13:44 +0000)
committerpadraigo <padraigo@e2bd861d-eb25-0410-b326-f6ed22b6b98c>
Fri, 14 Feb 2003 13:44:15 +0000 (13:44 +0000)
* 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

ChangeLog
atk-bridge/bridge.c
cspi/spi_event.c
test/event-listener-test.c

index ea9ec27..8ed4a80 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,20 @@
 2003-02-14  Padraig O'Briain <padraig.obriain@sun.com>
 
+       * 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 <padraig.obriain@sun.com>
+
        * atk-bridge/Makefile.am: Correct typo in previous commit.
 
 2003-02-13  Padraig O'Briain <padraig.obriain@sun.com>
index c22d8de..b1666da 100644 (file)
@@ -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)
index 2eb1597..27ac522 100644 (file)
@@ -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
     {
index 247c6bf..ce9f273 100644 (file)
@@ -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);