static DBusMessage * impl_GetAttributes (DBusConnection * bus, DBusMessage * message, void *user_data) { AtkDocument *document = (AtkDocument *) user_data; DBusMessage *reply; AtkAttributeSet *attributes; DBusMessageIter iter; g_return_val_if_fail (ATK_IS_DOCUMENT (user_data), droute_not_yet_handled_error (message)); attributes = atk_document_get_attributes (document); reply = dbus_message_new_method_return (message); if (reply) { dbus_message_iter_init_append (reply, &iter); spi_object_append_attribute_set (&iter, attributes); } if (attributes) atk_attribute_set_free (attributes); return reply; }
void AXObjectCache::frameLoadingEventPlatformNotification(AccessibilityObject* object, AXLoadingEvent loadingEvent) { if (!object) return; AtkObject* axObject = object->wrapper(); if (!axObject || !ATK_IS_DOCUMENT(axObject)) return; switch (loadingEvent) { case AXObjectCache::AXLoadingStarted: atk_object_notify_state_change(axObject, ATK_STATE_BUSY, true); break; case AXObjectCache::AXLoadingReloaded: atk_object_notify_state_change(axObject, ATK_STATE_BUSY, true); g_signal_emit_by_name(axObject, "reload"); break; case AXObjectCache::AXLoadingFailed: g_signal_emit_by_name(axObject, "load-stopped"); atk_object_notify_state_change(axObject, ATK_STATE_BUSY, false); break; case AXObjectCache::AXLoadingFinished: g_signal_emit_by_name(axObject, "load-complete"); atk_object_notify_state_change(axObject, ATK_STATE_BUSY, false); break; } }
static DBusMessage * impl_GetAttributeValue (DBusConnection * bus, DBusMessage * message, void *user_data) { AtkDocument *document = (AtkDocument *) user_data; gchar *attributename; const gchar *atr; DBusMessage *reply; g_return_val_if_fail (ATK_IS_DOCUMENT (user_data), droute_not_yet_handled_error (message)); if (!dbus_message_get_args (message, NULL, DBUS_TYPE_STRING, &attributename, DBUS_TYPE_INVALID)) { return droute_invalid_arguments_error (message); } atr = atk_document_get_attribute_value (document, attributename); if (!atr) atr = ""; reply = dbus_message_new_method_return (message); if (reply) { dbus_message_append_args (reply, DBUS_TYPE_STRING, &atr, DBUS_TYPE_INVALID); } return reply; }
static dbus_bool_t impl_get_PageCount (DBusMessageIter * iter, void *user_data) { AtkDocument *document = (AtkDocument *) user_data; g_return_val_if_fail (ATK_IS_DOCUMENT (user_data), FALSE); return droute_return_v_int32 (iter, atk_document_get_page_count (document)); }
JSRetainPtr<JSStringRef> AccessibilityUIElement::documentURI() { if (!ATK_IS_DOCUMENT(m_element.get())) return JSStringCreateWithCharacters(0, 0); AtkRole role = atk_object_get_role(ATK_OBJECT(m_element.get())); if (role != ATK_ROLE_DOCUMENT_FRAME) return JSStringCreateWithCharacters(0, 0); return JSStringCreateWithUTF8CString(atk_document_get_attribute_value(ATK_DOCUMENT(m_element.get()), "URI")); }
JSStringRef AccessibilityUIElement::documentEncoding() { if (!ATK_IS_DOCUMENT(m_element)) return JSStringCreateWithCharacters(0, 0); AtkRole role = atk_object_get_role(ATK_OBJECT(m_element)); if (role != ATK_ROLE_DOCUMENT_FRAME) return JSStringCreateWithCharacters(0, 0); return JSStringCreateWithUTF8CString(atk_document_get_attribute_value(ATK_DOCUMENT(m_element), "Encoding")); }
static void notifyAccessibilityStatus(WebKitWebFrame* frame, WebKitLoadStatus loadStatus) { if (loadStatus != WEBKIT_LOAD_PROVISIONAL && loadStatus != WEBKIT_LOAD_FAILED && loadStatus != WEBKIT_LOAD_FINISHED) return; WebKitWebFramePrivate* priv = frame->priv; if (!priv->coreFrame || !priv->coreFrame->document()) return; RenderView* contentRenderer = priv->coreFrame->contentRenderer(); if (!contentRenderer) return; AXObjectCache* axObjectCache = priv->coreFrame->document()->axObjectCache(); if (!axObjectCache) return; AccessibilityObject* coreAxObject = axObjectCache->getOrCreate(contentRenderer); if (!coreAxObject) return; AtkObject* axObject = coreAxObject->wrapper(); if (!axObject || !ATK_IS_DOCUMENT(axObject)) return; switch (loadStatus) { case WEBKIT_LOAD_PROVISIONAL: g_signal_emit_by_name(axObject, "state-change", "busy", true); if (core(frame)->loader()->loadType() == FrameLoadTypeReload) g_signal_emit_by_name(axObject, "reload"); break; case WEBKIT_LOAD_FAILED: g_signal_emit_by_name(axObject, "load-stopped"); g_signal_emit_by_name(axObject, "state-change", "busy", false); break; case WEBKIT_LOAD_FINISHED: g_signal_emit_by_name(axObject, "load-complete"); g_signal_emit_by_name(axObject, "state-change", "busy", false); default: break; } }
static DBusMessage * impl_GetLocale (DBusConnection * bus, DBusMessage * message, void *user_data) { AtkDocument *document = (AtkDocument *) user_data; const gchar *lc; DBusMessage *reply; g_return_val_if_fail (ATK_IS_DOCUMENT (user_data), droute_not_yet_handled_error (message)); lc = atk_document_get_locale (document); if (!lc) lc = ""; reply = dbus_message_new_method_return (message); if (reply) { dbus_message_append_args (reply, DBUS_TYPE_STRING, &lc, DBUS_TYPE_INVALID); } return reply; }
SpiAccessible * spi_accessible_construct (GType type, AtkObject *o) { SpiAccessible *retval; CORBA_Environment ev; CORBA_exception_init (&ev); g_assert (o); g_assert (g_type_is_a (type, SPI_ACCESSIBLE_TYPE)); if ((retval = g_hash_table_lookup (get_public_refs (), o))) { bonobo_object_ref (BONOBO_OBJECT (retval)); return retval; } else { retval = g_object_new (type, NULL); spi_base_construct (SPI_BASE (retval), G_OBJECT(o)); } g_hash_table_insert (get_public_refs (), o, retval); g_signal_connect (G_OBJECT (retval), "destroy", G_CALLBACK (de_register_public_ref), NULL); /* aggregate appropriate SPI interfaces based on ATK interfaces */ if (ATK_IS_ACTION (o)) { bonobo_object_add_interface (bonobo_object (retval), BONOBO_OBJECT (spi_action_interface_new (o))); } if (ATK_IS_COMPONENT (o)) { bonobo_object_add_interface (bonobo_object (retval), BONOBO_OBJECT (spi_component_interface_new (o))); } if (ATK_IS_EDITABLE_TEXT (o)) { bonobo_object_add_interface (bonobo_object (retval), BONOBO_OBJECT(spi_editable_text_interface_new (o))); } else if (ATK_IS_TEXT (o)) { bonobo_object_add_interface (bonobo_object (retval), BONOBO_OBJECT (spi_text_interface_new (o))); } if (ATK_IS_HYPERTEXT (o)) { bonobo_object_add_interface (bonobo_object (retval), BONOBO_OBJECT (spi_hypertext_interface_new (o))); } if (ATK_IS_IMAGE (o)) { bonobo_object_add_interface (bonobo_object (retval), BONOBO_OBJECT (spi_image_interface_new (o))); } if (ATK_IS_SELECTION (o)) { bonobo_object_add_interface (bonobo_object (retval), BONOBO_OBJECT (spi_selection_interface_new (o))); } if (ATK_IS_TABLE (o)) { bonobo_object_add_interface (bonobo_object (retval), BONOBO_OBJECT (spi_table_interface_new (o))); } if (ATK_IS_VALUE (o)) { bonobo_object_add_interface (bonobo_object (retval), BONOBO_OBJECT (spi_value_interface_new (o))); } if (ATK_IS_STREAMABLE_CONTENT (o)) { bonobo_object_add_interface (bonobo_object (retval), BONOBO_OBJECT (spi_streamable_interface_new (o))); } if (ATK_IS_DOCUMENT (o)) /* We add collection interface to document */ { SpiDocument *doc = spi_document_interface_new (o); bonobo_object_add_interface (BONOBO_OBJECT (doc), BONOBO_OBJECT (spi_collection_interface_new (o))); bonobo_object_add_interface (bonobo_object (retval), BONOBO_OBJECT (doc)); } if (ATK_IS_HYPERLINK_IMPL (o)) { /* !!! the cast below is used instead of the ATK_HYPERLINK macro, since the object 'o' is not really a hyperlink, but is in fact an AtkHyperlinkImpl. Ouch. This works since it gets cast back to GObject, but it's nasty and needs to be cleaned up. */ bonobo_object_add_interface (bonobo_object (retval), BONOBO_OBJECT (spi_hyperlink_new ((AtkHyperlink*)o))); } return retval; }