2002-04-113 Marc Mulcahy <marc.mulcahy@sun.com>
authormarcm <marcm@e2bd861d-eb25-0410-b326-f6ed22b6b98c>
Sat, 13 Apr 2002 20:47:46 +0000 (20:47 +0000)
committermarcm <marcm@e2bd861d-eb25-0410-b326-f6ed22b6b98c>
Sat, 13 Apr 2002 20:47:46 +0000 (20:47 +0000)
* idl/Accessibility_State.idl: Made StateSet inherit from BonoboUnknown.

* libspi/accessible.c: Added implementation fo
Accessibility_Accessible_get_state.

* libspi/libspi.h: Added stateset.h to the list of includes.

* libspi/stateset.c: Fixed broken implementation.

git-svn-id: http://svn.gnome.org/svn/at-spi/trunk@268 e2bd861d-eb25-0410-b326-f6ed22b6b98c

ChangeLog
idl/Accessibility_State.idl
libspi/accessible.c
libspi/libspi.h
libspi/stateset.c

index f500afc..82eefcc 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2002-04-113  Marc Mulcahy <marc.mulcahy@sun.com>
+
+       * idl/Accessibility_State.idl: Made StateSet inherit from BonoboUnknown.
+
+       * libspi/accessible.c: Added implementation fo
+       Accessibility_Accessible_get_state.
+       
+       * libspi/libspi.h: Added stateset.h to the list of includes.
+
+       * libspi/stateset.c: Fixed broken implementation.
+
 2002-04-13  Bill Haneman <bill.haneman@sun.com>
 
         * util/magnifier.c:
index ecb7e73..566c70d 100644 (file)
@@ -113,7 +113,7 @@ module Accessibility {
 
   typedef sequence <StateType> StateSeq;
 
-  interface StateSet {
+  interface StateSet : Bonobo::Unknown {
     boolean            contains (in StateType state);
     void               add (in StateType state);
     void               remove (in StateType state);
index 4243a44..f83263e 100644 (file)
@@ -306,13 +306,20 @@ impl_accessibility_accessible_get_state (PortableServer_Servant servant,
                                         CORBA_Environment     *ev)
 {
   AtkObject *object = get_atkobject_from_servant (servant);
+  AtkStateSet *atk_set;
+  SpiStateSet *set;
+  Accessibility_StateSet retval;
 
   bonobo_return_val_if_fail (object != NULL, NULL, ev);
 
-  printf ("SpiAccessible get_state.\n");
+  atk_set = atk_object_ref_state_set (object);
+  
+  set = spi_state_set_new (atk_set);
+  retval = bonobo_object_dup_ref (
+                                 BONOBO_OBJREF(set),
+                                 ev);
 
-  /* TODO: implement the bonobo stateset class */
-  return (Accessibility_StateSet) NULL;
+  return retval;
 }
 
 /*
index 1da52f5..c97ec5c 100644 (file)
@@ -32,6 +32,7 @@
 #include <libspi/image.h>
 #include <libspi/relation.h>
 #include <libspi/selection.h>
+#include <libspi/stateset.h>
 #include <libspi/table.h>
 #include <libspi/text.h>
 #include <libspi/value.h>
index ef9c58d..f3a08e3 100644 (file)
@@ -36,6 +36,12 @@ spi_init_state_type_tables (void)
 {
   gint i;
 
+  if (accessible_state_types || atk_state_types)
+    return FALSE;
+  if (!accessible_state_types)
+    accessible_state_types = g_new (Accessibility_StateType, Accessibility_STATE_LAST_DEFINED);
+  if (!atk_state_types)
+    atk_state_types = g_new (AtkStateType, ATK_STATE_LAST_DEFINED);
   g_return_val_if_fail (accessible_state_types, FALSE);
   g_return_val_if_fail (atk_state_types, FALSE);
   
@@ -347,6 +353,7 @@ spi_state_set_class_init (SpiStateSetClass *klass)
 {
   POA_Accessibility_StateSet__epv *epv = &klass->epv;
 
+  spi_init_state_type_tables ();
   epv->contains = impl_contains;
   epv->add = impl_add;
   epv->remove = impl_remove;