From be2f9288bfa43de706c8abc2197c3660069ad0ae Mon Sep 17 00:00:00 2001 From: marcm Date: Sat, 13 Apr 2002 20:47:46 +0000 Subject: [PATCH] 2002-04-113 Marc Mulcahy * 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 | 11 +++++++++++ idl/Accessibility_State.idl | 2 +- libspi/accessible.c | 13 ++++++++++--- libspi/libspi.h | 1 + libspi/stateset.c | 7 +++++++ 5 files changed, 30 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index f500afc..82eefcc 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +2002-04-113 Marc Mulcahy + + * 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 * util/magnifier.c: diff --git a/idl/Accessibility_State.idl b/idl/Accessibility_State.idl index ecb7e73..566c70d 100644 --- a/idl/Accessibility_State.idl +++ b/idl/Accessibility_State.idl @@ -113,7 +113,7 @@ module Accessibility { typedef sequence StateSeq; - interface StateSet { + interface StateSet : Bonobo::Unknown { boolean contains (in StateType state); void add (in StateType state); void remove (in StateType state); diff --git a/libspi/accessible.c b/libspi/accessible.c index 4243a44..f83263e 100644 --- a/libspi/accessible.c +++ b/libspi/accessible.c @@ -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; } /* diff --git a/libspi/libspi.h b/libspi/libspi.h index 1da52f5..c97ec5c 100644 --- a/libspi/libspi.h +++ b/libspi/libspi.h @@ -32,6 +32,7 @@ #include #include #include +#include #include #include #include diff --git a/libspi/stateset.c b/libspi/stateset.c index ef9c58d..f3a08e3 100644 --- a/libspi/stateset.c +++ b/libspi/stateset.c @@ -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; -- 2.7.4