Avoid reentering spi_dbus_update_cache
[platform/core/uifw/at-spi2-atk.git] / cspi / spi_hyperlink.c
index 81c5fc5..45f7256 100644 (file)
@@ -2,7 +2,8 @@
  * AT-SPI - Assistive Technology Service Provider Interface
  * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
  *
- * Copyright 2001 Sun Microsystems Inc.
+ * Copyright 2001, 2002 Sun Microsystems Inc.,
+ * Copyright 2001, 2002 Ximian, Inc.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -43,7 +44,7 @@ AccessibleHyperlink_ref (AccessibleHyperlink *obj)
 void
 AccessibleHyperlink_unref (AccessibleHyperlink *obj)
 {
-  cspi_object_ref (obj);
+  cspi_object_unref (obj);
 }
 
 /**
@@ -61,12 +62,11 @@ AccessibleHyperlink_unref (AccessibleHyperlink *obj)
 long
 AccessibleHyperlink_getNAnchors (AccessibleHyperlink *obj)
 {
-  long retval;
+  dbus_int16_t retval;
 
   cspi_return_val_if_fail (obj != NULL, -1);
 
-  retval =
-    Accessibility_Hyperlink__get_nAnchors (CSPI_OBJREF (obj), cspi_ev ());
+  cspi_dbus_get_property (obj, spi_interface_hyperlink, "nAnchors", NULL, "n", &retval);
 
   cspi_return_val_if_ev ("getNAnchors", -1);
 
@@ -86,13 +86,12 @@ char *
 AccessibleHyperlink_getURI (AccessibleHyperlink *obj,
                             long int             i)
 {
+  dbus_int32_t d_i = i;
   char *retval;
 
   cspi_return_val_if_fail (obj != NULL, NULL);
 
-  retval =
-    Accessibility_Hyperlink_getURI (CSPI_OBJREF (obj),
-                                   (CORBA_long) i, cspi_ev ());
+  cspi_dbus_call (obj, spi_interface_hyperlink, "getURI", NULL, "i=>s", d_i, &retval);
 
   cspi_return_val_if_ev ("getURI", NULL);
 
@@ -113,11 +112,15 @@ Accessible*
 AccessibleHyperlink_getObject (AccessibleHyperlink *obj,
                                long int             i)
 {
+  dbus_int32_t d_i = i;
+  char *path;
+  Accessible *retval;
+
   cspi_return_val_if_fail (obj != NULL, NULL);
 
-  return cspi_object_add (
-    Accessibility_Hyperlink_getObject (CSPI_OBJREF (obj),
-                                      (CORBA_long) i, cspi_ev ()));
+  cspi_dbus_call (obj, spi_interface_hyperlink, "getObject", NULL, "i=>o", d_i, &path);
+  retval = cspi_ref_related_accessible (obj, path);
+  g_free (path);
 }
 
 /**
@@ -137,14 +140,16 @@ AccessibleHyperlink_getIndexRange (AccessibleHyperlink *obj,
                                    long int *startIndex,
                                    long int *endIndex)
 {
-  cspi_return_if_fail (obj != NULL);
+  dbus_int32_t si, ei;
 
-  *startIndex = (long)
-    Accessibility_Hyperlink__get_startIndex (CSPI_OBJREF (obj), cspi_ev ());
-  *endIndex = (long)
-    Accessibility_Hyperlink__get_endIndex (CSPI_OBJREF (obj), cspi_ev ());
+  cspi_return_if_fail (obj != NULL);
 
-  cspi_return_if_ev ("getIndexRange");
+  cspi_dbus_get_property (obj, spi_interface_hyperlink, "startIndex", NULL, "i", &si);
+ cspi_return_if_ev ("startIndex");
+  cspi_dbus_get_property (obj, spi_interface_hyperlink, "endIndex", NULL, "i", &ei);
+ cspi_return_if_ev ("endIndex");
+ *startIndex = si;
+ *endIndex = ei; 
 }
 
 /**
@@ -160,12 +165,11 @@ AccessibleHyperlink_getIndexRange (AccessibleHyperlink *obj,
 SPIBoolean
 AccessibleHyperlink_isValid (AccessibleHyperlink *obj)
 {
-  SPIBoolean retval;
+  dbus_bool_t retval;
 
   cspi_return_val_if_fail (obj != NULL, FALSE);
 
-  retval =
-    Accessibility_Hyperlink_isValid (CSPI_OBJREF (obj), cspi_ev ());
+  cspi_dbus_call (obj, spi_interface_hyperlink, "isValid", NULL, "=>b", &retval);
 
   cspi_return_val_if_ev ("isValid", FALSE);