* 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
role_table [ATK_ROLE_DIAL] = Accessibility_ROLE_DIAL;
role_table [ATK_ROLE_DIALOG] = Accessibility_ROLE_DIALOG;
role_table [ATK_ROLE_DIRECTORY_PANE] = Accessibility_ROLE_DIRECTORY_PANE;
+ role_table [ATK_ROLE_DRAWING_AREA] = Accessibility_ROLE_DRAWING_AREA;
role_table [ATK_ROLE_FILE_CHOOSER] = Accessibility_ROLE_FILE_CHOOSER;
role_table [ATK_ROLE_FILLER] = Accessibility_ROLE_FILLER;
role_table [ATK_ROLE_FONT_CHOOSER] = Accessibility_ROLE_FONT_CHOOSER;
role_table [ATK_ROLE_SCROLL_PANE] = Accessibility_ROLE_SCROLL_PANE;
role_table [ATK_ROLE_SEPARATOR] = Accessibility_ROLE_SEPARATOR;
role_table [ATK_ROLE_SLIDER] = Accessibility_ROLE_SLIDER;
- role_table [ATK_ROLE_SPLIT_PANE] = Accessibility_ROLE_SPLIT_PANE;
role_table [ATK_ROLE_SPIN_BUTTON] = Accessibility_ROLE_SPIN_BUTTON;
+ role_table [ATK_ROLE_SPLIT_PANE] = Accessibility_ROLE_SPLIT_PANE;
role_table [ATK_ROLE_STATUSBAR] = Accessibility_ROLE_STATUS_BAR;
role_table [ATK_ROLE_TABLE] = Accessibility_ROLE_TABLE;
role_table [ATK_ROLE_TABLE_CELL] = Accessibility_ROLE_TABLE_CELL;
- role_table [ATK_ROLE_TABLE_COLUMN_HEADER] =
- Accessibility_ROLE_COLUMN_HEADER;
- role_table [ATK_ROLE_TABLE_ROW_HEADER] = Accessibility_ROLE_ROW_HEADER;
- role_table [ATK_ROLE_TEAR_OFF_MENU_ITEM] =
- Accessibility_ROLE_TEAROFF_MENU_ITEM;
+ role_table [ATK_ROLE_TABLE_COLUMN_HEADER] = Accessibility_ROLE_TABLE_COLUMN_HEADER;
+ role_table [ATK_ROLE_TABLE_ROW_HEADER] = Accessibility_ROLE_TABLE_ROW_HEADER;
+ role_table [ATK_ROLE_TEAR_OFF_MENU_ITEM] = Accessibility_ROLE_TEAROFF_MENU_ITEM;
role_table [ATK_ROLE_TERMINAL] = Accessibility_ROLE_TERMINAL;
role_table [ATK_ROLE_TEXT] = Accessibility_ROLE_TEXT;
role_table [ATK_ROLE_TOGGLE_BUTTON] = Accessibility_ROLE_TOGGLE_BUTTON;
AtkObject *child;
AtkObject *object = get_atkobject_from_servant (servant);
- g_return_val_if_fail (object != NULL, 0);
+ g_return_val_if_fail (object != NULL, CORBA_OBJECT_NIL);
child = atk_object_ref_accessible_child (object, index);
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;
}
/*
relation_set = atk_object_ref_relation_set (object);
n_relations = atk_relation_set_get_n_relations (relation_set);
+
retval = CORBA_sequence_Accessibility_Relation__alloc ();
- CORBA_sequence_Accessibility_Relation_allocbuf (n_relations);
+ retval->_length = retval->_maximum = n_relations;
+ retval->_buffer = CORBA_sequence_Accessibility_Relation_allocbuf (n_relations);
+ CORBA_sequence_set_release (retval, CORBA_TRUE);
for (i = 0; i < n_relations; ++i)
{
ev);
}
- printf ("SpiAccessible get_relation_set.\n");
return retval;
}
impl_accessibility_accessible_get_role_name (PortableServer_Servant servant,
CORBA_Environment *ev)
{
+ const gchar *role_name;
AtkRole role;
AtkObject *object = get_atkobject_from_servant (servant);
role = atk_object_get_role (object);
- return CORBA_string_dup (atk_role_get_name (role));
+ role_name = atk_role_get_name (role);
+ if (role_name)
+ return CORBA_string_dup (role_name);
+ else
+ return CORBA_string_dup ("");
}
static void
SpiAccessible *
spi_accessible_new (AtkObject *o)
{
- return spi_accessible_construct (SPI_ACCESSIBLE_TYPE, o);
+ return spi_accessible_construct (SPI_ACCESSIBLE_TYPE, o);
}
SpiAccessible *
bonobo_object_ref (BONOBO_OBJECT (retval));
return retval;
}
-
else
{
retval = g_object_new (type, NULL);
}
else if (SPI_IS_REMOTE_OBJECT (o))
{
- retval = spi_remote_object_get_accessible (SPI_REMOTE_OBJECT (o));
+ retval = spi_remote_object_get_accessible (SPI_REMOTE_OBJECT (o));
}
else
{
- accessible = spi_accessible_new (o);
+ accessible = spi_accessible_construct (SPI_ACCESSIBLE_TYPE, o);
retval = CORBA_Object_duplicate (BONOBO_OBJREF (accessible), ev);
}