/* * CORBA Accessibility::Accessible::getRelationSet method implementation */ static Accessibility_RelationSet * impl_accessibility_accessible_get_relation_set (PortableServer_Servant servant, CORBA_Environment *ev) { Accessibility_RelationSet *retval; gint n_relations = 0; gint i; AtkRelationSet *relation_set; AtkObject *object = get_atkobject_from_servant (servant); bonobo_return_val_if_fail (object != NULL, NULL, ev); relation_set = atk_object_ref_relation_set (object); if (relation_set) n_relations = atk_relation_set_get_n_relations (relation_set); retval = CORBA_sequence_Accessibility_Relation__alloc (); 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) { retval->_buffer[i] = CORBA_Object_duplicate ( BONOBO_OBJREF ( spi_relation_new (atk_relation_set_get_relation (relation_set, i))), NULL); } return retval; }
GnoCamCamera * gnocam_camera_new (Camera *camera, CORBA_Environment *ev) { GnoCamCamera *gc; BonoboStorageCamera *storage; bonobo_return_val_if_fail (camera, NULL, ev); g_message ("Creating storage..."); storage = bonobo_storage_camera_new (camera, "/", Bonobo_Storage_READ | Bonobo_Storage_WRITE, ev); if (BONOBO_EX (ev)) return (NULL); gc = g_object_new (GNOCAM_TYPE_CAMERA, NULL); gc->camera = camera; gp_camera_ref (camera); g_message ("Adding interfaces..."); bonobo_object_add_interface (BONOBO_OBJECT (gc), BONOBO_OBJECT (storage)); gc->priv->event_source = bonobo_event_source_new (); bonobo_object_add_interface (BONOBO_OBJECT (gc), BONOBO_OBJECT (gc->priv->event_source)); return (gc); }
/* * CORBA Accessibility::Accessible::getState method implementation */ static Accessibility_StateSet 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); atk_set = atk_object_ref_state_set (object); set = spi_state_set_new (atk_set); retval = CORBA_Object_duplicate ( BONOBO_OBJREF(set), NULL); g_object_unref (atk_set); return retval; }