61 lines
2 KiB
C++
61 lines
2 KiB
C++
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
/* vim: set ts=2 et sw=2 tw=80: */
|
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
|
* You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
#include "xpcAccessibleGeneric.h"
|
|
|
|
#include "xpcAccessibleDocument.h"
|
|
|
|
using namespace mozilla::a11y;
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
// nsISupports
|
|
|
|
NS_INTERFACE_MAP_BEGIN(xpcAccessibleGeneric)
|
|
NS_INTERFACE_MAP_ENTRY(nsIAccessible)
|
|
NS_INTERFACE_MAP_ENTRY_CONDITIONAL(nsIAccessibleSelectable,
|
|
mSupportedIfaces & eSelectable)
|
|
NS_INTERFACE_MAP_ENTRY_CONDITIONAL(nsIAccessibleValue,
|
|
mSupportedIfaces & eValue)
|
|
NS_INTERFACE_MAP_ENTRY_CONDITIONAL(nsIAccessibleHyperLink,
|
|
mSupportedIfaces & eHyperLink)
|
|
NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsIAccessible)
|
|
NS_INTERFACE_MAP_END
|
|
|
|
NS_IMPL_ADDREF(xpcAccessibleGeneric)
|
|
NS_IMPL_RELEASE(xpcAccessibleGeneric)
|
|
|
|
xpcAccessibleGeneric::~xpcAccessibleGeneric() {
|
|
if (!mIntl) {
|
|
return;
|
|
}
|
|
|
|
xpcAccessibleDocument* xpcDoc = nullptr;
|
|
if (mIntl->IsLocal()) {
|
|
LocalAccessible* acc = mIntl->AsLocal();
|
|
if (!acc->IsDoc() && !acc->IsApplication()) {
|
|
xpcDoc = GetAccService()->GetXPCDocument(acc->Document());
|
|
xpcDoc->NotifyOfShutdown(acc);
|
|
}
|
|
} else {
|
|
RemoteAccessible* proxy = mIntl->AsRemote();
|
|
if (!proxy->IsDoc()) {
|
|
xpcDoc = GetAccService()->GetXPCDocument(proxy->Document());
|
|
xpcDoc->NotifyOfShutdown(proxy);
|
|
}
|
|
}
|
|
}
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
// nsIAccessible
|
|
|
|
LocalAccessible* xpcAccessibleGeneric::ToInternalAccessible() {
|
|
return mIntl->AsLocal();
|
|
}
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
// xpcAccessibleGeneric
|
|
|
|
void xpcAccessibleGeneric::Shutdown() { mIntl = nullptr; }
|