Bug 748724 - De-ns-ify nsRootAccessible, r=surkov, f=tbsaunde

--HG--
rename : accessible/src/atk/nsRootAccessibleWrap.cpp => accessible/src/atk/RootAccessibleWrap.cpp
rename : accessible/src/atk/nsRootAccessibleWrap.h => accessible/src/atk/RootAccessibleWrap.h
rename : accessible/src/base/nsRootAccessible.cpp => accessible/src/generic/RootAccessible.cpp
rename : accessible/src/base/nsRootAccessible.h => accessible/src/generic/RootAccessible.h
rename : accessible/src/mac/nsRootAccessibleWrap.h => accessible/src/mac/RootAccessibleWrap.h
rename : accessible/src/mac/nsRootAccessibleWrap.mm => accessible/src/mac/RootAccessibleWrap.mm
rename : accessible/src/msaa/nsRootAccessibleWrap.cpp => accessible/src/msaa/RootAccessibleWrap.cpp
rename : accessible/src/msaa/nsRootAccessibleWrap.h => accessible/src/msaa/RootAccessibleWrap.h
rename : accessible/src/other/nsRootAccessibleWrap.h => accessible/src/other/RootAccessibleWrap.h
This commit is contained in:
Mark Capella 2012-05-04 15:09:22 +09:00
parent 3b1ac85f56
commit 8405acdb47
35 changed files with 199 additions and 223 deletions

View File

@ -837,11 +837,11 @@ which is handled in <a
via the creation of an <a via the creation of an <a
href="http://lxr.mozilla.org/seamonkey/find?string=msaa/nsDocAccessibleWrap">nsDocAccessibleWrap</a> href="http://lxr.mozilla.org/seamonkey/find?string=msaa/nsDocAccessibleWrap">nsDocAccessibleWrap</a>
for an inner window or <a for an inner window or <a
href="http://lxr.mozilla.org/seamonkey/find?string=msaa/nsRootAccessibleWrap">nsRootAccessibleWrap</a> href="http://lxr.mozilla.org/seamonkey/find?string=msaa/RootAccessibleWrap">RootAccessibleWrap</a>
for a top level window. These classes implement both nsIAccessible, our for a top level window. These classes implement both nsIAccessible, our
cross platform API, as well as IAccessible, which is specific to cross platform API, as well as IAccessible, which is specific to
Windows/MSAA/COM. The cross-platform nsDocAccessible and Windows/MSAA/COM. The cross-platform nsDocAccessible and
nsRootAccessible classes they inherit from are then told to start RootAccessible classes they inherit from are then told to start
listening for DOM, page load and scroll events.&nbsp; These events cause listening for DOM, page load and scroll events.&nbsp; These events cause
MSAA-specific events, such as EVENT_OBJECT_FOCUS or MSAA-specific events, such as EVENT_OBJECT_FOCUS or
EVENT_OBJECT_STATECHANGE, to fire on UI and document objects within the EVENT_OBJECT_STATECHANGE, to fire on UI and document objects within the
@ -970,7 +970,7 @@ important one is EVENT_OBJECT_FOCUS.<br>
</p> </p>
<p>When a potential accessibility-related event occurs within <p>When a potential accessibility-related event occurs within
Mozilla, it is typically listened for by nsDocAccessible or Mozilla, it is typically listened for by nsDocAccessible or
nsRootAccessible. The event listeners on these classes call RootAccessible. The event listeners on these classes call
FireToolkitEvent(), which is implemented for every accessible. FireToolkitEvent(), which is implemented for every accessible.
Eventually, the event ends up at nsDocAccessibleWrap::FireToolkitEvent() Eventually, the event ends up at nsDocAccessibleWrap::FireToolkitEvent()
which calls NotifyWinEvent from the Win32 API. NotifyWinEvent is passed which calls NotifyWinEvent from the Win32 API. NotifyWinEvent is passed

View File

@ -52,7 +52,6 @@ CPPSRCS = \
nsAccessNodeWrap.cpp \ nsAccessNodeWrap.cpp \
nsAccessibleWrap.cpp \ nsAccessibleWrap.cpp \
nsDocAccessibleWrap.cpp \ nsDocAccessibleWrap.cpp \
nsRootAccessibleWrap.cpp \
ApplicationAccessibleWrap.cpp \ ApplicationAccessibleWrap.cpp \
nsMaiInterfaceComponent.cpp \ nsMaiInterfaceComponent.cpp \
nsMaiInterfaceAction.cpp \ nsMaiInterfaceAction.cpp \
@ -66,6 +65,7 @@ CPPSRCS = \
nsMaiInterfaceTable.cpp \ nsMaiInterfaceTable.cpp \
nsMaiInterfaceDocument.cpp \ nsMaiInterfaceDocument.cpp \
nsMaiInterfaceImage.cpp \ nsMaiInterfaceImage.cpp \
RootAccessibleWrap.cpp \
$(NULL) $(NULL)
EXPORTS = \ EXPORTS = \
@ -74,7 +74,6 @@ EXPORTS = \
nsAccessNodeWrap.h \ nsAccessNodeWrap.h \
nsAccessibleWrap.h \ nsAccessibleWrap.h \
nsDocAccessibleWrap.h \ nsDocAccessibleWrap.h \
nsRootAccessibleWrap.h \
nsTextAccessibleWrap.h \ nsTextAccessibleWrap.h \
nsXULMenuAccessibleWrap.h \ nsXULMenuAccessibleWrap.h \
nsXULListboxAccessibleWrap.h \ nsXULListboxAccessibleWrap.h \

View File

@ -38,11 +38,14 @@
* *
* ***** END LICENSE BLOCK ***** */ * ***** END LICENSE BLOCK ***** */
#include "nsMai.h" #include "RootAccessibleWrap.h"
#include "nsRootAccessibleWrap.h"
nsNativeRootAccessibleWrap::nsNativeRootAccessibleWrap(AtkObject *aAccessible): #include "nsMai.h"
nsRootAccessible(nsnull, nsnull, nsnull)
using namespace mozilla::a11y;
NativeRootAccessibleWrap::NativeRootAccessibleWrap(AtkObject* aAccessible):
RootAccessible(nsnull, nsnull, nsnull)
{ {
// XXX: mark the object as defunct to ensure no single internal method is // XXX: mark the object as defunct to ensure no single internal method is
// running on it. // running on it.
@ -52,7 +55,7 @@ nsNativeRootAccessibleWrap::nsNativeRootAccessibleWrap(AtkObject *aAccessible):
mAtkObject = aAccessible; mAtkObject = aAccessible;
} }
nsNativeRootAccessibleWrap::~nsNativeRootAccessibleWrap() NativeRootAccessibleWrap::~NativeRootAccessibleWrap()
{ {
g_object_unref(mAtkObject); g_object_unref(mAtkObject);
mAtkObject = nsnull; mAtkObject = nsnull;

View File

@ -38,23 +38,30 @@
* *
* ***** END LICENSE BLOCK ***** */ * ***** END LICENSE BLOCK ***** */
#ifndef __NS_ROOT_ACCESSIBLE_WRAP_H__ #ifndef mozilla_a11y_RootAccessibleWrap_h__
#define __NS_ROOT_ACCESSIBLE_WRAP_H__ #define mozilla_a11y_RootAccessibleWrap_h__
#include "nsRootAccessible.h" #include "RootAccessible.h"
typedef nsRootAccessible nsRootAccessibleWrap; namespace mozilla {
namespace a11y {
/* nsNativeRootAccessibleWrap is the accessible class for gtk+ native window. typedef RootAccessible RootAccessibleWrap;
* The instance of nsNativeRootAccessibleWrap is a child of MaiAppRoot instance.
/* NativeRootAccessibleWrap is the accessible class for gtk+ native window.
* The instance of NativeRootAccessibleWrap is a child of MaiAppRoot instance.
* It is added into root when the toplevel window is created, and removed * It is added into root when the toplevel window is created, and removed
* from root when the toplevel window is destroyed. * from root when the toplevel window is destroyed.
*/ */
class nsNativeRootAccessibleWrap: public nsRootAccessible class NativeRootAccessibleWrap : public RootAccessible
{ {
public: public:
nsNativeRootAccessibleWrap(AtkObject *aAccessible); NativeRootAccessibleWrap(AtkObject* aAccessible);
~nsNativeRootAccessibleWrap(); virtual ~NativeRootAccessibleWrap();
}; };
#endif /* __NS_ROOT_ACCESSIBLE_WRAP_H__ */ } // namespace a11y
} // namespace mozilla
#endif /* mozilla_a11y_Root_Accessible_Wrap_h__ */

View File

@ -45,8 +45,7 @@
#include "InterfaceInitFuncs.h" #include "InterfaceInitFuncs.h"
#include "nsAccUtils.h" #include "nsAccUtils.h"
#include "nsIAccessibleRelation.h" #include "nsIAccessibleRelation.h"
#include "nsRootAccessible.h" #include "RootAccessible.h"
#include "nsDocAccessibleWrap.h"
#include "nsIAccessibleValue.h" #include "nsIAccessibleValue.h"
#include "nsMai.h" #include "nsMai.h"
#include "nsMaiHyperlink.h" #include "nsMaiHyperlink.h"
@ -55,6 +54,7 @@
#include "prprf.h" #include "prprf.h"
#include "nsStateMap.h" #include "nsStateMap.h"
#include "Relation.h" #include "Relation.h"
#include "RootAccessible.h"
#include "States.h" #include "States.h"
#include "mozilla/Util.h" #include "mozilla/Util.h"
@ -1040,7 +1040,7 @@ nsAccessibleWrap::FirePlatformEvent(AccEvent* aEvent)
case nsIAccessibleEvent::EVENT_FOCUS: case nsIAccessibleEvent::EVENT_FOCUS:
{ {
MAI_LOG_DEBUG(("\n\nReceived: EVENT_FOCUS\n")); MAI_LOG_DEBUG(("\n\nReceived: EVENT_FOCUS\n"));
nsRootAccessible* rootAccWrap = accWrap->RootAccessible(); a11y::RootAccessible* rootAccWrap = accWrap->RootAccessible();
if (rootAccWrap && rootAccWrap->mActivated) { if (rootAccWrap && rootAccWrap->mActivated) {
atk_focus_tracker_notify(atkObj); atk_focus_tracker_notify(atkObj);
// Fire state change event for focus // Fire state change event for focus
@ -1233,9 +1233,7 @@ nsAccessibleWrap::FirePlatformEvent(AccEvent* aEvent)
case nsIAccessibleEvent::EVENT_WINDOW_ACTIVATE: case nsIAccessibleEvent::EVENT_WINDOW_ACTIVATE:
{ {
MAI_LOG_DEBUG(("\n\nReceived: EVENT_WINDOW_ACTIVATED\n")); MAI_LOG_DEBUG(("\n\nReceived: EVENT_WINDOW_ACTIVATED\n"));
nsRootAccessible *rootAcc = accessible->AsRoot()->mActivated = true;
static_cast<nsRootAccessible *>(accessible);
rootAcc->mActivated = true;
guint id = g_signal_lookup ("activate", MAI_TYPE_ATK_OBJECT); guint id = g_signal_lookup ("activate", MAI_TYPE_ATK_OBJECT);
g_signal_emit(atkObj, id, 0); g_signal_emit(atkObj, id, 0);
@ -1246,9 +1244,7 @@ nsAccessibleWrap::FirePlatformEvent(AccEvent* aEvent)
case nsIAccessibleEvent::EVENT_WINDOW_DEACTIVATE: case nsIAccessibleEvent::EVENT_WINDOW_DEACTIVATE:
{ {
MAI_LOG_DEBUG(("\n\nReceived: EVENT_WINDOW_DEACTIVATED\n")); MAI_LOG_DEBUG(("\n\nReceived: EVENT_WINDOW_DEACTIVATED\n"));
nsRootAccessible *rootAcc = accessible->AsRoot()->mActivated = false;
static_cast<nsRootAccessible *>(accessible);
rootAcc->mActivated = false;
guint id = g_signal_lookup ("deactivate", MAI_TYPE_ATK_OBJECT); guint id = g_signal_lookup ("deactivate", MAI_TYPE_ATK_OBJECT);
g_signal_emit(atkObj, id, 0); g_signal_emit(atkObj, id, 0);
} break; } break;

View File

@ -40,8 +40,8 @@
#include "Accessible-inl.h" #include "Accessible-inl.h"
#include "nsAccessibilityService.h" #include "nsAccessibilityService.h"
#include "nsAccUtils.h" #include "nsAccUtils.h"
#include "nsRootAccessible.h"
#include "Role.h" #include "Role.h"
#include "RootAccessible.h"
#include "nsEventStateManager.h" #include "nsEventStateManager.h"
#include "nsFocusManager.h" #include "nsFocusManager.h"
@ -157,7 +157,7 @@ FocusManager::NotifyOfDOMFocus(nsISupports* aTarget)
if (document) { if (document) {
// Set selection listener for focused element. // Set selection listener for focused element.
if (targetNode->IsElement()) { if (targetNode->IsElement()) {
nsRootAccessible* root = document->RootAccessible(); RootAccessible* root = document->RootAccessible();
nsCaretAccessible* caretAcc = root->GetCaretAccessible(); nsCaretAccessible* caretAcc = root->GetCaretAccessible();
caretAcc->SetControlSelectionListener(targetNode->AsElement()); caretAcc->SetControlSelectionListener(targetNode->AsElement());
} }

View File

@ -68,7 +68,6 @@ CPPSRCS = \
nsAccTreeWalker.cpp \ nsAccTreeWalker.cpp \
nsBaseWidgetAccessible.cpp \ nsBaseWidgetAccessible.cpp \
nsEventShell.cpp \ nsEventShell.cpp \
nsRootAccessible.cpp \
nsCaretAccessible.cpp \ nsCaretAccessible.cpp \
nsTextAccessible.cpp \ nsTextAccessible.cpp \
nsTextEquivUtils.cpp \ nsTextEquivUtils.cpp \

View File

@ -42,7 +42,7 @@
#include "nsAccessibilityService.h" #include "nsAccessibilityService.h"
#include "nsAccUtils.h" #include "nsAccUtils.h"
#include "nsARIAMap.h" #include "nsARIAMap.h"
#include "nsRootAccessibleWrap.h" #include "RootAccessibleWrap.h"
#include "States.h" #include "States.h"
#include "nsCURILoader.h" #include "nsCURILoader.h"
@ -356,7 +356,7 @@ nsAccDocManager::AddListeners(nsIDocument *aDocument,
} }
nsDocAccessible* nsDocAccessible*
nsAccDocManager::CreateDocOrRootAccessible(nsIDocument *aDocument) nsAccDocManager::CreateDocOrRootAccessible(nsIDocument* aDocument)
{ {
// Ignore temporary, hiding, resource documents and documents without // Ignore temporary, hiding, resource documents and documents without
// docshell. // docshell.
@ -391,7 +391,7 @@ nsAccDocManager::CreateDocOrRootAccessible(nsIDocument *aDocument)
// We only create root accessibles for the true root, otherwise create a // We only create root accessibles for the true root, otherwise create a
// doc accessible. // doc accessible.
nsRefPtr<nsDocAccessible> docAcc = isRootDoc ? nsRefPtr<nsDocAccessible> docAcc = isRootDoc ?
new nsRootAccessibleWrap(aDocument, rootElm, presShell) : new RootAccessibleWrap(aDocument, rootElm, presShell) :
new nsDocAccessibleWrap(aDocument, rootElm, presShell); new nsDocAccessibleWrap(aDocument, rootElm, presShell);
// Cache the document accessible into document cache. // Cache the document accessible into document cache.

View File

@ -42,7 +42,7 @@
#include "nsAccessibilityService.h" #include "nsAccessibilityService.h"
#include "nsAccUtils.h" #include "nsAccUtils.h"
#include "nsCoreUtils.h" #include "nsCoreUtils.h"
#include "nsRootAccessible.h" #include "RootAccessible.h"
#include "nsIDocShell.h" #include "nsIDocShell.h"
#include "nsIDocShellTreeItem.h" #include "nsIDocShellTreeItem.h"
@ -59,6 +59,8 @@
#include "nsPresContext.h" #include "nsPresContext.h"
#include "mozilla/Services.h" #include "mozilla/Services.h"
using namespace mozilla::a11y;
/* For documentation of the accessibility architecture, /* For documentation of the accessibility architecture,
* see http://lxr.mozilla.org/seamonkey/source/accessible/accessible-docs.html * see http://lxr.mozilla.org/seamonkey/source/accessible/accessible-docs.html
*/ */
@ -204,7 +206,7 @@ void nsAccessNode::ShutdownXPAccessibility()
NotifyA11yInitOrShutdown(false); NotifyA11yInitOrShutdown(false);
} }
nsRootAccessible* RootAccessible*
nsAccessNode::RootAccessible() const nsAccessNode::RootAccessible() const
{ {
nsCOMPtr<nsIDocShellTreeItem> docShellTreeItem = nsCOMPtr<nsIDocShellTreeItem> docShellTreeItem =

View File

@ -57,7 +57,12 @@ class ApplicationAccessible;
class nsAccessNode; class nsAccessNode;
class nsDocAccessible; class nsDocAccessible;
class nsIAccessibleDocument; class nsIAccessibleDocument;
class nsRootAccessible;
namespace mozilla {
namespace a11y {
class RootAccessible;
}
}
class nsIPresShell; class nsIPresShell;
class nsPresContext; class nsPresContext;
@ -93,7 +98,7 @@ public:
/** /**
* Return the root document accessible for this accessnode. * Return the root document accessible for this accessnode.
*/ */
nsRootAccessible* RootAccessible() const; mozilla::a11y::RootAccessible* RootAccessible() const;
/** /**
* Initialize the access node object, add it to the cache. * Initialize the access node object, add it to the cache.

View File

@ -57,11 +57,11 @@
#include "nsHTMLTableAccessibleWrap.h" #include "nsHTMLTableAccessibleWrap.h"
#include "nsHTMLTextAccessible.h" #include "nsHTMLTextAccessible.h"
#include "nsHyperTextAccessibleWrap.h" #include "nsHyperTextAccessibleWrap.h"
#include "nsRootAccessibleWrap.h"
#include "nsXFormsFormControlsAccessible.h" #include "nsXFormsFormControlsAccessible.h"
#include "nsXFormsWidgetsAccessible.h" #include "nsXFormsWidgetsAccessible.h"
#include "OuterDocAccessible.h" #include "OuterDocAccessible.h"
#include "Role.h" #include "Role.h"
#include "RootAccessibleWrap.h"
#include "States.h" #include "States.h"
#include "Statistics.h" #include "Statistics.h"
#ifdef XP_WIN #ifdef XP_WIN
@ -657,7 +657,7 @@ nsAccessibilityService::PresShellActivated(nsIPresShell* aPresShell)
if (DOMDoc) { if (DOMDoc) {
nsDocAccessible* document = GetDocAccessibleFromCache(DOMDoc); nsDocAccessible* document = GetDocAccessibleFromCache(DOMDoc);
if (document) { if (document) {
nsRootAccessible* rootDocument = document->RootAccessible(); RootAccessible* rootDocument = document->RootAccessible();
NS_ASSERTION(rootDocument, "Entirely broken tree: no root document!"); NS_ASSERTION(rootDocument, "Entirely broken tree: no root document!");
if (rootDocument) if (rootDocument)
rootDocument->DocumentActivated(document); rootDocument->DocumentActivated(document);
@ -1728,15 +1728,15 @@ nsAccessibilityService::CreateHTMLAccessibleByMarkup(nsIFrame* aFrame,
nsAccessible* nsAccessible*
nsAccessibilityService::AddNativeRootAccessible(void* aAtkAccessible) nsAccessibilityService::AddNativeRootAccessible(void* aAtkAccessible)
{ {
#ifdef MOZ_ACCESSIBILITY_ATK #ifdef MOZ_ACCESSIBILITY_ATK
ApplicationAccessible* applicationAcc = ApplicationAccessible* applicationAcc =
nsAccessNode::GetApplicationAccessible(); nsAccessNode::GetApplicationAccessible();
if (!applicationAcc) if (!applicationAcc)
return nsnull; return nsnull;
nsRefPtr<nsNativeRootAccessibleWrap> nativeRootAcc = nsRefPtr<NativeRootAccessibleWrap> nativeRootAcc =
new nsNativeRootAccessibleWrap((AtkObject*)aAtkAccessible); new NativeRootAccessibleWrap(static_cast<AtkObject*>(aAtkAccessible));
if (!nativeRootAcc) if (!nativeRootAcc)
return nsnull; return nsnull;
@ -1745,7 +1745,7 @@ nsAccessibilityService::AddNativeRootAccessible(void* aAtkAccessible)
#endif #endif
return nsnull; return nsnull;
} }
void void
nsAccessibilityService::RemoveNativeRootAccessible(nsAccessible* aAccessible) nsAccessibilityService::RemoveNativeRootAccessible(nsAccessible* aAccessible)

View File

@ -50,10 +50,10 @@
#include "nsAccTreeWalker.h" #include "nsAccTreeWalker.h"
#include "nsIAccessibleRelation.h" #include "nsIAccessibleRelation.h"
#include "nsEventShell.h" #include "nsEventShell.h"
#include "nsRootAccessible.h"
#include "nsTextEquivUtils.h" #include "nsTextEquivUtils.h"
#include "Relation.h" #include "Relation.h"
#include "Role.h" #include "Role.h"
#include "RootAccessible.h"
#include "States.h" #include "States.h"
#include "StyleInfo.h" #include "StyleInfo.h"
@ -257,8 +257,7 @@ nsAccessible::GetRootDocument(nsIAccessibleDocument **aRootDocument)
{ {
NS_ENSURE_ARG_POINTER(aRootDocument); NS_ENSURE_ARG_POINTER(aRootDocument);
nsRootAccessible* rootDocument = RootAccessible(); NS_IF_ADDREF(*aRootDocument = RootAccessible());
NS_IF_ADDREF(*aRootDocument = rootDocument);
return NS_OK; return NS_OK;
} }

View File

@ -489,7 +489,7 @@ public:
inline bool IsMenuPopup() const { return mFlags & eMenuPopupAccessible; } inline bool IsMenuPopup() const { return mFlags & eMenuPopupAccessible; }
inline bool IsRoot() const { return mFlags & eRootAccessible; } inline bool IsRoot() const { return mFlags & eRootAccessible; }
nsRootAccessible* AsRoot(); mozilla::a11y::RootAccessible* AsRoot();
virtual mozilla::a11y::TableAccessible* AsTable() { return nsnull; } virtual mozilla::a11y::TableAccessible* AsTable() { return nsnull; }

View File

@ -41,6 +41,7 @@
#include "nsAccUtils.h" #include "nsAccUtils.h"
#include "nsCoreUtils.h" #include "nsCoreUtils.h"
#include "nsIAccessibleEvent.h" #include "nsIAccessibleEvent.h"
#include "RootAccessible.h"
#include "nsCaret.h" #include "nsCaret.h"
#include "nsIDOMDocument.h" #include "nsIDOMDocument.h"
@ -49,15 +50,16 @@
#include "nsIDOMHTMLTextAreaElement.h" #include "nsIDOMHTMLTextAreaElement.h"
#include "nsIFrame.h" #include "nsIFrame.h"
#include "nsIPresShell.h" #include "nsIPresShell.h"
#include "nsRootAccessible.h"
#include "nsISelectionPrivate.h" #include "nsISelectionPrivate.h"
#include "nsServiceManagerUtils.h" #include "nsServiceManagerUtils.h"
class nsIWidget; class nsIWidget;
using namespace mozilla::a11y;
NS_IMPL_ISUPPORTS1(nsCaretAccessible, nsISelectionListener) NS_IMPL_ISUPPORTS1(nsCaretAccessible, nsISelectionListener)
nsCaretAccessible::nsCaretAccessible( nsRootAccessible *aRootAccessible): nsCaretAccessible::nsCaretAccessible(RootAccessible* aRootAccessible) :
mLastCaretOffset(-1), mRootAccessible(aRootAccessible) mLastCaretOffset(-1), mRootAccessible(aRootAccessible)
{ {
} }
@ -68,8 +70,8 @@ nsCaretAccessible::~nsCaretAccessible()
void nsCaretAccessible::Shutdown() void nsCaretAccessible::Shutdown()
{ {
// The caret accessible isn't shut down until the nsRootAccessible owning it is shut down // The caret accessible isn't shut down until the RootAccessible owning it is shut down
// Each nsDocAccessible, including the nsRootAccessible, is responsible for clearing the // Each nsDocAccessible, including the RootAccessible, is responsible for clearing the
// doc selection listeners they registered in this nsCaretAccessible // doc selection listeners they registered in this nsCaretAccessible
ClearControlSelectionListener(); // Clear the selection listener for the currently focused control ClearControlSelectionListener(); // Clear the selection listener for the currently focused control

View File

@ -43,11 +43,9 @@
#include "nsISelectionListener.h" #include "nsISelectionListener.h"
class nsRootAccessible;
/* /*
* This special accessibility class is for the caret, which is really the currently focused selection. * This special accessibility class is for the caret, which is really the currently focused selection.
* There is only 1 visible caret per top level window (nsRootAccessible), * There is only 1 visible caret per top level window (RootAccessible),
* However, there may be several visible selections. * However, there may be several visible selections.
* *
* The important selections are the one owned by each document, and the one in the currently focused control. * The important selections are the one owned by each document, and the one in the currently focused control.
@ -59,8 +57,8 @@ class nsRootAccessible;
* For ATK and Iaccessible2, the caret accessible is used to fire * For ATK and Iaccessible2, the caret accessible is used to fire
* caret move and selection change events. * caret move and selection change events.
* *
* The caret accessible is owned by the nsRootAccessible for the top level window that it's in. * The caret accessible is owned by the RootAccessible for the top level window that it's in.
* The nsRootAccessible needs to tell the nsCaretAccessible about focus changes via * The RootAccessible needs to tell the nsCaretAccessible about focus changes via
* setControlSelectionListener(). * setControlSelectionListener().
* Each nsDocAccessible needs to tell the nsCaretAccessible owned by the root to * Each nsDocAccessible needs to tell the nsCaretAccessible owned by the root to
* listen for selection events via addDocSelectionListener() and then needs to remove the * listen for selection events via addDocSelectionListener() and then needs to remove the
@ -72,7 +70,7 @@ class nsCaretAccessible : public nsISelectionListener
public: public:
NS_DECL_ISUPPORTS NS_DECL_ISUPPORTS
nsCaretAccessible(nsRootAccessible *aRootAccessible); nsCaretAccessible(mozilla::a11y::RootAccessible* aRootAccessible);
virtual ~nsCaretAccessible(); virtual ~nsCaretAccessible();
void Shutdown(); void Shutdown();
@ -155,7 +153,7 @@ private:
nsRefPtr<nsHyperTextAccessible> mLastTextAccessible; nsRefPtr<nsHyperTextAccessible> mLastTextAccessible;
PRInt32 mLastCaretOffset; PRInt32 mLastCaretOffset;
nsRootAccessible *mRootAccessible; mozilla::a11y::RootAccessible* mRootAccessible;
}; };
#endif #endif

View File

@ -43,9 +43,9 @@
#include "nsAccessiblePivot.h" #include "nsAccessiblePivot.h"
#include "nsAccTreeWalker.h" #include "nsAccTreeWalker.h"
#include "nsAccUtils.h" #include "nsAccUtils.h"
#include "nsRootAccessible.h"
#include "nsTextEquivUtils.h" #include "nsTextEquivUtils.h"
#include "Role.h" #include "Role.h"
#include "RootAccessible.h"
#include "States.h" #include "States.h"
#include "nsIMutableArray.h" #include "nsIMutableArray.h"
@ -764,7 +764,7 @@ nsresult nsDocAccessible::AddEventListeners()
nsCOMPtr<nsIDocShellTreeItem> rootTreeItem; nsCOMPtr<nsIDocShellTreeItem> rootTreeItem;
docShellTreeItem->GetRootTreeItem(getter_AddRefs(rootTreeItem)); docShellTreeItem->GetRootTreeItem(getter_AddRefs(rootTreeItem));
if (rootTreeItem) { if (rootTreeItem) {
nsRootAccessible* rootAccessible = RootAccessible(); a11y::RootAccessible* rootAccessible = RootAccessible();
NS_ENSURE_TRUE(rootAccessible, NS_ERROR_FAILURE); NS_ENSURE_TRUE(rootAccessible, NS_ERROR_FAILURE);
nsRefPtr<nsCaretAccessible> caretAccessible = rootAccessible->GetCaretAccessible(); nsRefPtr<nsCaretAccessible> caretAccessible = rootAccessible->GetCaretAccessible();
if (caretAccessible) { if (caretAccessible) {
@ -811,7 +811,7 @@ nsresult nsDocAccessible::RemoveEventListeners()
NS_RELEASE_THIS(); // Kung fu death grip NS_RELEASE_THIS(); // Kung fu death grip
} }
nsRootAccessible* rootAccessible = RootAccessible(); a11y::RootAccessible* rootAccessible = RootAccessible();
if (rootAccessible) { if (rootAccessible) {
nsRefPtr<nsCaretAccessible> caretAccessible = rootAccessible->GetCaretAccessible(); nsRefPtr<nsCaretAccessible> caretAccessible = rootAccessible->GetCaretAccessible();
if (caretAccessible) if (caretAccessible)

View File

@ -19,6 +19,7 @@ CPPSRCS = \
ARIAGridAccessible.cpp \ ARIAGridAccessible.cpp \
FormControlAccessible.cpp \ FormControlAccessible.cpp \
OuterDocAccessible.cpp \ OuterDocAccessible.cpp \
RootAccessible.cpp \
$(NULL) $(NULL)
# we don't want the shared lib, but we want to force the creation of a static lib. # we don't want the shared lib, but we want to force the creation of a static lib.
@ -29,6 +30,8 @@ include $(topsrcdir)/config/rules.mk
LOCAL_INCLUDES = \ LOCAL_INCLUDES = \
-I$(srcdir)/../xpcom \ -I$(srcdir)/../xpcom \
-I$(srcdir)/../base \ -I$(srcdir)/../base \
-I$(srcdir)/../html \
-I$(srcdir)/../xul \
-I$(srcdir)/../../../layout/generic \ -I$(srcdir)/../../../layout/generic \
-I$(srcdir)/../../../layout/xul/base/src \ -I$(srcdir)/../../../layout/xul/base/src \
$(NULL) $(NULL)

View File

@ -35,6 +35,8 @@
* *
* ***** END LICENSE BLOCK ***** */ * ***** END LICENSE BLOCK ***** */
#include "RootAccessible.h"
#include "mozilla/Util.h" #include "mozilla/Util.h"
#define CreateEvent CreateEventA #define CreateEvent CreateEventA
@ -76,7 +78,6 @@
#include "nsPIDOMWindow.h" #include "nsPIDOMWindow.h"
#include "nsIWebBrowserChrome.h" #include "nsIWebBrowserChrome.h"
#include "nsReadableUtils.h" #include "nsReadableUtils.h"
#include "nsRootAccessible.h"
#include "nsIPrivateDOMEvent.h" #include "nsIPrivateDOMEvent.h"
#include "nsFocusManager.h" #include "nsFocusManager.h"
@ -92,20 +93,20 @@ using namespace mozilla::a11y;
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
// nsISupports // nsISupports
NS_IMPL_ISUPPORTS_INHERITED1(nsRootAccessible, nsDocAccessible, nsIAccessibleDocument) NS_IMPL_ISUPPORTS_INHERITED1(RootAccessible, nsDocAccessible, nsIAccessibleDocument)
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
// Constructor/desctructor // Constructor/destructor
nsRootAccessible:: RootAccessible::
nsRootAccessible(nsIDocument* aDocument, nsIContent* aRootContent, RootAccessible(nsIDocument* aDocument, nsIContent* aRootContent,
nsIPresShell* aPresShell) : nsIPresShell* aPresShell) :
nsDocAccessibleWrap(aDocument, aRootContent, aPresShell) nsDocAccessibleWrap(aDocument, aRootContent, aPresShell)
{ {
mFlags |= eRootAccessible; mFlags |= eRootAccessible;
} }
nsRootAccessible::~nsRootAccessible() RootAccessible::~RootAccessible()
{ {
} }
@ -113,7 +114,7 @@ nsRootAccessible::~nsRootAccessible()
// nsAccessible // nsAccessible
ENameValueFlag ENameValueFlag
nsRootAccessible::Name(nsString& aName) RootAccessible::Name(nsString& aName)
{ {
aName.Truncate(); aName.Truncate();
@ -129,7 +130,7 @@ nsRootAccessible::Name(nsString& aName)
} }
role role
nsRootAccessible::NativeRole() RootAccessible::NativeRole()
{ {
// If it's a <dialog> or <wizard>, use roles::DIALOG instead // If it's a <dialog> or <wizard>, use roles::DIALOG instead
dom::Element *root = mDocument->GetRootElement(); dom::Element *root = mDocument->GetRootElement();
@ -147,9 +148,10 @@ nsRootAccessible::NativeRole()
return nsDocAccessibleWrap::NativeRole(); return nsDocAccessibleWrap::NativeRole();
} }
// nsRootAccessible protected member // RootAccessible protected member
#ifdef MOZ_XUL #ifdef MOZ_XUL
PRUint32 nsRootAccessible::GetChromeFlags() PRUint32
RootAccessible::GetChromeFlags()
{ {
// Return the flag set for the top level window as defined // Return the flag set for the top level window as defined
// by nsIWebBrowserChrome::CHROME_WINDOW_[FLAGNAME] // by nsIWebBrowserChrome::CHROME_WINDOW_[FLAGNAME]
@ -171,7 +173,7 @@ PRUint32 nsRootAccessible::GetChromeFlags()
#endif #endif
PRUint64 PRUint64
nsRootAccessible::NativeState() RootAccessible::NativeState()
{ {
PRUint64 states = nsDocAccessibleWrap::NativeState(); PRUint64 states = nsDocAccessibleWrap::NativeState();
@ -231,7 +233,8 @@ const char* const docEvents[] = {
"DOMMenuBarInactive" "DOMMenuBarInactive"
}; };
nsresult nsRootAccessible::AddEventListeners() nsresult
RootAccessible::AddEventListeners()
{ {
// nsIDOMEventTarget interface allows to register event listeners to // nsIDOMEventTarget interface allows to register event listeners to
// receive untrusted events (synthetic events generated by untrusted code). // receive untrusted events (synthetic events generated by untrusted code).
@ -256,7 +259,8 @@ nsresult nsRootAccessible::AddEventListeners()
return nsDocAccessible::AddEventListeners(); return nsDocAccessible::AddEventListeners();
} }
nsresult nsRootAccessible::RemoveEventListeners() nsresult
RootAccessible::RemoveEventListeners()
{ {
nsCOMPtr<nsIDOMEventTarget> target(do_QueryInterface(mDocument)); nsCOMPtr<nsIDOMEventTarget> target(do_QueryInterface(mDocument));
if (target) { if (target) {
@ -284,13 +288,13 @@ nsresult nsRootAccessible::RemoveEventListeners()
// public // public
nsCaretAccessible* nsCaretAccessible*
nsRootAccessible::GetCaretAccessible() RootAccessible::GetCaretAccessible()
{ {
return mCaretAccessible; return mCaretAccessible;
} }
void void
nsRootAccessible::DocumentActivated(nsDocAccessible* aDocument) RootAccessible::DocumentActivated(nsDocAccessible* aDocument)
{ {
} }
@ -298,7 +302,7 @@ nsRootAccessible::DocumentActivated(nsDocAccessible* aDocument)
// nsIDOMEventListener // nsIDOMEventListener
NS_IMETHODIMP NS_IMETHODIMP
nsRootAccessible::HandleEvent(nsIDOMEvent* aDOMEvent) RootAccessible::HandleEvent(nsIDOMEvent* aDOMEvent)
{ {
nsCOMPtr<nsIDOMNSEvent> DOMNSEvent(do_QueryInterface(aDOMEvent)); nsCOMPtr<nsIDOMNSEvent> DOMNSEvent(do_QueryInterface(aDOMEvent));
nsCOMPtr<nsIDOMEventTarget> DOMEventTarget; nsCOMPtr<nsIDOMEventTarget> DOMEventTarget;
@ -335,16 +339,16 @@ nsRootAccessible::HandleEvent(nsIDOMEvent* aDOMEvent)
// Root accessible exists longer than any of its descendant documents so // Root accessible exists longer than any of its descendant documents so
// that we are guaranteed notification is processed before root accessible // that we are guaranteed notification is processed before root accessible
// is destroyed. // is destroyed.
document->HandleNotification<nsRootAccessible, nsIDOMEvent> document->HandleNotification<RootAccessible, nsIDOMEvent>
(this, &nsRootAccessible::ProcessDOMEvent, aDOMEvent); (this, &RootAccessible::ProcessDOMEvent, aDOMEvent);
} }
return NS_OK; return NS_OK;
} }
// nsRootAccessible protected // RootAccessible protected
void void
nsRootAccessible::ProcessDOMEvent(nsIDOMEvent* aDOMEvent) RootAccessible::ProcessDOMEvent(nsIDOMEvent* aDOMEvent)
{ {
nsCOMPtr<nsIDOMNSEvent> DOMNSEvent(do_QueryInterface(aDOMEvent)); nsCOMPtr<nsIDOMNSEvent> DOMNSEvent(do_QueryInterface(aDOMEvent));
nsCOMPtr<nsIDOMEventTarget> DOMEventTarget; nsCOMPtr<nsIDOMEventTarget> DOMEventTarget;
@ -534,7 +538,7 @@ nsRootAccessible::ProcessDOMEvent(nsIDOMEvent* aDOMEvent)
// nsAccessNode // nsAccessNode
void void
nsRootAccessible::Shutdown() RootAccessible::Shutdown()
{ {
// Called manually or by nsAccessNode::LastRelease() // Called manually or by nsAccessNode::LastRelease()
if (!PresShell()) if (!PresShell())
@ -545,7 +549,7 @@ nsRootAccessible::Shutdown()
// nsIAccessible method // nsIAccessible method
Relation Relation
nsRootAccessible::RelationByType(PRUint32 aType) RootAccessible::RelationByType(PRUint32 aType)
{ {
if (!mDocument || aType != nsIAccessibleRelation::RELATION_EMBEDS) if (!mDocument || aType != nsIAccessibleRelation::RELATION_EMBEDS)
return nsDocAccessibleWrap::RelationByType(aType); return nsDocAccessibleWrap::RelationByType(aType);
@ -575,7 +579,7 @@ nsRootAccessible::RelationByType(PRUint32 aType)
// Protected members // Protected members
void void
nsRootAccessible::HandlePopupShownEvent(nsAccessible* aAccessible) RootAccessible::HandlePopupShownEvent(nsAccessible* aAccessible)
{ {
roles::Role role = aAccessible->Role(); roles::Role role = aAccessible->Role();
@ -613,7 +617,7 @@ nsRootAccessible::HandlePopupShownEvent(nsAccessible* aAccessible)
} }
void void
nsRootAccessible::HandlePopupHidingEvent(nsINode* aPopupNode) RootAccessible::HandlePopupHidingEvent(nsINode* aPopupNode)
{ {
// Get popup accessible. There are cases when popup element isn't accessible // Get popup accessible. There are cases when popup element isn't accessible
// but an underlying widget is and behaves like popup, an example is // but an underlying widget is and behaves like popup, an example is
@ -718,7 +722,7 @@ nsRootAccessible::HandlePopupHidingEvent(nsINode* aPopupNode)
#ifdef MOZ_XUL #ifdef MOZ_XUL
void void
nsRootAccessible::HandleTreeRowCountChangedEvent(nsIDOMEvent* aEvent, RootAccessible::HandleTreeRowCountChangedEvent(nsIDOMEvent* aEvent,
nsXULTreeAccessible* aAccessible) nsXULTreeAccessible* aAccessible)
{ {
nsCOMPtr<nsIDOMDataContainerEvent> dataEvent(do_QueryInterface(aEvent)); nsCOMPtr<nsIDOMDataContainerEvent> dataEvent(do_QueryInterface(aEvent));
@ -745,7 +749,7 @@ nsRootAccessible::HandleTreeRowCountChangedEvent(nsIDOMEvent* aEvent,
} }
void void
nsRootAccessible::HandleTreeInvalidatedEvent(nsIDOMEvent* aEvent, RootAccessible::HandleTreeInvalidatedEvent(nsIDOMEvent* aEvent,
nsXULTreeAccessible* aAccessible) nsXULTreeAccessible* aAccessible)
{ {
nsCOMPtr<nsIDOMDataContainerEvent> dataEvent(do_QueryInterface(aEvent)); nsCOMPtr<nsIDOMDataContainerEvent> dataEvent(do_QueryInterface(aEvent));

View File

@ -35,8 +35,8 @@
* *
* ***** END LICENSE BLOCK ***** */ * ***** END LICENSE BLOCK ***** */
#ifndef _nsRootAccessible_H_ #ifndef mozilla_a11y_RootAccessible_h__
#define _nsRootAccessible_H_ #define mozilla_a11y_RootAccessible_h__
#include "nsCaretAccessible.h" #include "nsCaretAccessible.h"
#include "nsDocAccessibleWrap.h" #include "nsDocAccessibleWrap.h"
@ -50,17 +50,18 @@
class nsXULTreeAccessible; class nsXULTreeAccessible;
class Relation; class Relation;
const PRInt32 SCROLL_HASH_START_SIZE = 6; namespace mozilla {
namespace a11y {
class nsRootAccessible : public nsDocAccessibleWrap, class RootAccessible : public nsDocAccessibleWrap,
public nsIDOMEventListener public nsIDOMEventListener
{ {
NS_DECL_ISUPPORTS_INHERITED NS_DECL_ISUPPORTS_INHERITED
public: public:
nsRootAccessible(nsIDocument* aDocument, nsIContent* aRootContent, RootAccessible(nsIDocument* aDocument, nsIContent* aRootContent,
nsIPresShell* aPresShell); nsIPresShell* aPresShell);
virtual ~nsRootAccessible(); virtual ~RootAccessible();
// nsIDOMEventListener // nsIDOMEventListener
NS_IMETHOD HandleEvent(nsIDOMEvent* aEvent); NS_IMETHOD HandleEvent(nsIDOMEvent* aEvent);
@ -74,7 +75,7 @@ public:
virtual mozilla::a11y::role NativeRole(); virtual mozilla::a11y::role NativeRole();
virtual PRUint64 NativeState(); virtual PRUint64 NativeState();
// nsRootAccessible // RootAccessible
nsCaretAccessible* GetCaretAccessible(); nsCaretAccessible* GetCaretAccessible();
/** /**
@ -117,11 +118,14 @@ protected:
nsRefPtr<nsCaretAccessible> mCaretAccessible; nsRefPtr<nsCaretAccessible> mCaretAccessible;
}; };
inline nsRootAccessible* } // namespace a11y
} // namespace mozilla
inline mozilla::a11y::RootAccessible*
nsAccessible::AsRoot() nsAccessible::AsRoot()
{ {
return mFlags & eRootAccessible ? return mFlags & eRootAccessible ?
static_cast<nsRootAccessible*>(this) : nsnull; static_cast<mozilla::a11y::RootAccessible*>(this) : nsnull;
} }
#endif #endif

View File

@ -50,7 +50,6 @@ LIBXUL_LIBRARY = 1
CMMSRCS = nsAccessNodeWrap.mm \ CMMSRCS = nsAccessNodeWrap.mm \
nsDocAccessibleWrap.mm \ nsDocAccessibleWrap.mm \
nsRootAccessibleWrap.mm \
nsAccessibleWrap.mm \ nsAccessibleWrap.mm \
mozAccessible.mm \ mozAccessible.mm \
mozDocAccessible.mm \ mozDocAccessible.mm \
@ -58,6 +57,7 @@ CMMSRCS = nsAccessNodeWrap.mm \
mozTextAccessible.mm \ mozTextAccessible.mm \
mozHTMLAccessible.mm \ mozHTMLAccessible.mm \
MacUtils.mm \ MacUtils.mm \
RootAccessibleWrap.mm \
$(NULL) $(NULL)
@ -67,7 +67,6 @@ EXPORTS = \
nsTextAccessibleWrap.h \ nsTextAccessibleWrap.h \
nsAccessibleWrap.h \ nsAccessibleWrap.h \
nsDocAccessibleWrap.h \ nsDocAccessibleWrap.h \
nsRootAccessibleWrap.h \
nsXULMenuAccessibleWrap.h \ nsXULMenuAccessibleWrap.h \
nsXULListboxAccessibleWrap.h \ nsXULListboxAccessibleWrap.h \
nsXULTreeGridAccessibleWrap.h \ nsXULTreeGridAccessibleWrap.h \

View File

@ -40,19 +40,22 @@
* see http://lxr.mozilla.org/seamonkey/source/accessible/accessible-docs.html * see http://lxr.mozilla.org/seamonkey/source/accessible/accessible-docs.html
*/ */
#ifndef _nsRootAccessibleWrap_H_ #ifndef mozilla_a11y_RootAccessibleWrap_h__
#define _nsRootAccessibleWrap_H_ #define mozilla_a11y_RootAccessibleWrap_h__
#include "nsRootAccessible.h" #include "RootAccessible.h"
namespace mozilla {
namespace a11y {
struct objc_class; struct objc_class;
class nsRootAccessibleWrap : public nsRootAccessible class RootAccessibleWrap : public RootAccessible
{ {
public: public:
nsRootAccessibleWrap(nsIDocument* aDocument, nsIContent* aRootContent, RootAccessibleWrap(nsIDocument* aDocument, nsIContent* aRootContent,
nsIPresShell* aPresShell); nsIPresShell* aPresShell);
virtual ~nsRootAccessibleWrap(); virtual ~RootAccessibleWrap();
Class GetNativeType (); Class GetNativeType ();
@ -61,5 +64,7 @@ public:
void GetNativeWidget (void **aOutView); void GetNativeWidget (void **aOutView);
}; };
} // namespace a11y
} // namespace mozilla
#endif #endif

View File

@ -36,7 +36,7 @@
* *
* ***** END LICENSE BLOCK ***** */ * ***** END LICENSE BLOCK ***** */
#include "nsRootAccessibleWrap.h" #include "RootAccessibleWrap.h"
#include "mozDocAccessible.h" #include "mozDocAccessible.h"
@ -45,19 +45,21 @@
#include "nsIWidget.h" #include "nsIWidget.h"
#include "nsIViewManager.h" #include "nsIViewManager.h"
nsRootAccessibleWrap:: using namespace mozilla::a11y;
nsRootAccessibleWrap(nsIDocument* aDocument, nsIContent* aRootContent,
RootAccessibleWrap::
RootAccessibleWrap(nsIDocument* aDocument, nsIContent* aRootContent,
nsIPresShell* aPresShell) : nsIPresShell* aPresShell) :
nsRootAccessible(aDocument, aRootContent, aPresShell) RootAccessible(aDocument, aRootContent, aPresShell)
{ {
} }
nsRootAccessibleWrap::~nsRootAccessibleWrap() RootAccessibleWrap::~RootAccessibleWrap()
{ {
} }
Class Class
nsRootAccessibleWrap::GetNativeType () RootAccessibleWrap::GetNativeType()
{ {
NS_OBJC_BEGIN_TRY_ABORT_BLOCK_NIL; NS_OBJC_BEGIN_TRY_ABORT_BLOCK_NIL;
@ -67,7 +69,7 @@ nsRootAccessibleWrap::GetNativeType ()
} }
void void
nsRootAccessibleWrap::GetNativeWidget (void **aOutView) RootAccessibleWrap::GetNativeWidget(void** aOutView)
{ {
nsIFrame *frame = GetFrame(); nsIFrame *frame = GetFrame();
if (frame) { if (frame) {

View File

@ -45,9 +45,9 @@
#include "nsIAccessibleRelation.h" #include "nsIAccessibleRelation.h"
#include "nsIAccessibleText.h" #include "nsIAccessibleText.h"
#include "nsIAccessibleEditableText.h" #include "nsIAccessibleEditableText.h"
#include "nsRootAccessible.h"
#include "Relation.h" #include "Relation.h"
#include "Role.h" #include "Role.h"
#include "RootAccessible.h"
#include "mozilla/Services.h" #include "mozilla/Services.h"
#include "nsRect.h" #include "nsRect.h"
@ -353,7 +353,7 @@ GetNativeFromGeckoAccessible(nsIAccessible *anAccessible)
// (which might be the owning NSWindow in the application, for example). // (which might be the owning NSWindow in the application, for example).
// //
// get the native root accessible, and tell it to return its first parent unignored accessible. // get the native root accessible, and tell it to return its first parent unignored accessible.
nsRootAccessible* root = mGeckoAccessible->RootAccessible(); RootAccessible* root = mGeckoAccessible->RootAccessible();
id nativeParent = GetNativeFromGeckoAccessible(static_cast<nsIAccessible*>(root)); id nativeParent = GetNativeFromGeckoAccessible(static_cast<nsIAccessible*>(root));
NSAssert1 (nativeParent, @"!!! we can't find a parent for %@", self); NSAssert1 (nativeParent, @"!!! we can't find a parent for %@", self);

View File

@ -44,7 +44,7 @@
/* /*
The root accessible. There is one per window. The root accessible. There is one per window.
Created by the nsRootAccessibleWrap. Created by the RootAccessibleWrap.
*/ */
@interface mozRootAccessible : mozAccessible @interface mozRootAccessible : mozAccessible
{ {

View File

@ -36,16 +36,20 @@
* *
* ***** END LICENSE BLOCK ***** */ * ***** END LICENSE BLOCK ***** */
#include "nsRootAccessibleWrap.h"
#include "nsObjCExceptions.h" #include "nsObjCExceptions.h"
#include "RootAccessibleWrap.h"
#import "mozDocAccessible.h" #import "mozDocAccessible.h"
#import "mozView.h" #import "mozView.h"
static id <mozAccessible, mozView> getNativeViewFromRootAccessible (nsAccessible *accessible) using namespace mozilla::a11y;
static id <mozAccessible, mozView>
getNativeViewFromRootAccessible(nsAccessible* aAccessible)
{ {
nsRootAccessibleWrap *root = static_cast<nsRootAccessibleWrap*>(accessible); RootAccessibleWrap* root =
static_cast<RootAccessibleWrap*>(aAccessible->AsRoot());
id <mozAccessible, mozView> nativeView = nil; id <mozAccessible, mozView> nativeView = nil;
root->GetNativeWidget ((void**)&nativeView); root->GetNativeWidget ((void**)&nativeView);
return nativeView; return nativeView;

View File

@ -55,7 +55,6 @@ CPPSRCS = \
nsTextAccessibleWrap.cpp \ nsTextAccessibleWrap.cpp \
nsDocAccessibleWrap.cpp \ nsDocAccessibleWrap.cpp \
nsHTMLWin32ObjectAccessible.cpp \ nsHTMLWin32ObjectAccessible.cpp \
nsRootAccessibleWrap.cpp \
nsXULMenuAccessibleWrap.cpp \ nsXULMenuAccessibleWrap.cpp \
nsXULListboxAccessibleWrap.cpp \ nsXULListboxAccessibleWrap.cpp \
nsXULTreeGridAccessibleWrap.cpp \ nsXULTreeGridAccessibleWrap.cpp \
@ -75,6 +74,7 @@ CPPSRCS = \
CAccessibleTableCell.cpp \ CAccessibleTableCell.cpp \
CAccessibleValue.cpp \ CAccessibleValue.cpp \
Compatibility.cpp \ Compatibility.cpp \
RootAccessibleWrap.cpp \
$(NULL) $(NULL)
EXPORTS = \ EXPORTS = \
@ -83,7 +83,6 @@ EXPORTS = \
nsAccessibleWrap.h \ nsAccessibleWrap.h \
nsTextAccessibleWrap.h \ nsTextAccessibleWrap.h \
nsDocAccessibleWrap.h \ nsDocAccessibleWrap.h \
nsRootAccessibleWrap.h \
nsHTMLWin32ObjectAccessible.h \ nsHTMLWin32ObjectAccessible.h \
nsXULMenuAccessibleWrap.h \ nsXULMenuAccessibleWrap.h \
nsXULListboxAccessibleWrap.h \ nsXULListboxAccessibleWrap.h \

View File

@ -36,7 +36,7 @@
* *
* ***** END LICENSE BLOCK ***** */ * ***** END LICENSE BLOCK ***** */
#include "nsRootAccessibleWrap.h" #include "RootAccessibleWrap.h"
#include "Compatibility.h" #include "Compatibility.h"
#include "nsWinUtils.h" #include "nsWinUtils.h"
@ -49,22 +49,22 @@ using namespace mozilla::a11y;
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
// Constructor/desctructor // Constructor/desctructor
nsRootAccessibleWrap:: RootAccessibleWrap::
nsRootAccessibleWrap(nsIDocument* aDocument, nsIContent* aRootContent, RootAccessibleWrap(nsIDocument* aDocument, nsIContent* aRootContent,
nsIPresShell* aPresShell) : nsIPresShell* aPresShell) :
nsRootAccessible(aDocument, aRootContent, aPresShell) RootAccessible(aDocument, aRootContent, aPresShell)
{ {
} }
nsRootAccessibleWrap::~nsRootAccessibleWrap() RootAccessibleWrap::~RootAccessibleWrap()
{ {
} }
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
// nsRootAccessible // RootAccessible
void void
nsRootAccessibleWrap::DocumentActivated(nsDocAccessible* aDocument) RootAccessibleWrap::DocumentActivated(nsDocAccessible* aDocument)
{ {
if (Compatibility::IsDolphin() && if (Compatibility::IsDolphin() &&
nsCoreUtils::IsTabDocument(aDocument->GetDocumentNode())) { nsCoreUtils::IsTabDocument(aDocument->GetDocumentNode())) {

View File

@ -37,20 +37,26 @@
* *
* ***** END LICENSE BLOCK ***** */ * ***** END LICENSE BLOCK ***** */
#ifndef _nsRootAccessibleWrap_H_ #ifndef mozilla_a11y_RootAccessibleWrap_h__
#define _nsRootAccessibleWrap_H_ #define mozilla_a11y_RootAccessibleWrap_h__
#include "nsRootAccessible.h" #include "RootAccessible.h"
class nsRootAccessibleWrap : public nsRootAccessible namespace mozilla {
namespace a11y {
class RootAccessibleWrap : public RootAccessible
{ {
public: public:
nsRootAccessibleWrap(nsIDocument* aDocument, nsIContent* aRootContent, RootAccessibleWrap(nsIDocument* aDocument, nsIContent* aRootContent,
nsIPresShell* aPresShell); nsIPresShell* aPresShell);
virtual ~nsRootAccessibleWrap(); virtual ~RootAccessibleWrap();
// nsRootAccessible // RootAccessible
virtual void DocumentActivated(nsDocAccessible* aDocument); virtual void DocumentActivated(nsDocAccessible* aDocument);
}; };
} // namespace a11y
} // namespace mozilla
#endif #endif

View File

@ -45,8 +45,8 @@
#include "Compatibility.h" #include "Compatibility.h"
#include "nsAccessibilityService.h" #include "nsAccessibilityService.h"
#include "nsCoreUtils.h" #include "nsCoreUtils.h"
#include "nsRootAccessible.h"
#include "nsWinUtils.h" #include "nsWinUtils.h"
#include "RootAccessible.h"
#include "Statistics.h" #include "Statistics.h"
#include "nsAttrName.h" #include "nsAttrName.h"

View File

@ -54,6 +54,7 @@
#include "Accessible2_i.c" #include "Accessible2_i.c"
#include "AccessibleRole.h" #include "AccessibleRole.h"
#include "AccessibleStates.h" #include "AccessibleStates.h"
#include "RootAccessible.h"
#include "nsIMutableArray.h" #include "nsIMutableArray.h"
#include "nsIDOMDocument.h" #include "nsIDOMDocument.h"
@ -61,7 +62,6 @@
#include "nsIScrollableFrame.h" #include "nsIScrollableFrame.h"
#include "nsINameSpaceManager.h" #include "nsINameSpaceManager.h"
#include "nsINodeInfo.h" #include "nsINodeInfo.h"
#include "nsRootAccessible.h"
#include "nsIServiceManager.h" #include "nsIServiceManager.h"
#include "nsTextFormatter.h" #include "nsTextFormatter.h"
#include "nsIView.h" #include "nsIView.h"
@ -1880,7 +1880,7 @@ void nsAccessibleWrap::UpdateSystemCaret()
// off-screen model can follow the caret // off-screen model can follow the caret
::DestroyCaret(); ::DestroyCaret();
nsRootAccessible* rootAccessible = RootAccessible(); a11y::RootAccessible* rootAccessible = RootAccessible();
if (!rootAccessible) { if (!rootAccessible) {
return; return;
} }

View File

@ -42,9 +42,9 @@
#include "nsDocAccessibleWrap.h" #include "nsDocAccessibleWrap.h"
#include "ISimpleDOMDocument_i.c" #include "ISimpleDOMDocument_i.c"
#include "nsIAccessibilityService.h" #include "nsIAccessibilityService.h"
#include "nsRootAccessible.h"
#include "nsWinUtils.h" #include "nsWinUtils.h"
#include "Role.h" #include "Role.h"
#include "RootAccessible.h"
#include "Statistics.h" #include "Statistics.h"
#include "nsIDocShell.h" #include "nsIDocShell.h"
@ -57,6 +57,7 @@
#include "nsIViewManager.h" #include "nsIViewManager.h"
#include "nsIWebNavigation.h" #include "nsIWebNavigation.h"
using namespace mozilla;
using namespace mozilla::a11y; using namespace mozilla::a11y;
/* For documentation of the accessibility architecture, /* For documentation of the accessibility architecture,
@ -280,7 +281,7 @@ nsDocAccessibleWrap::DoInitialUpdate()
mozilla::dom::TabChild* tabChild = mozilla::dom::TabChild* tabChild =
mozilla::dom::GetTabChildFrom(mDocument->GetShell()); mozilla::dom::GetTabChildFrom(mDocument->GetShell());
nsRootAccessible* rootDocument = RootAccessible(); a11y::RootAccessible* rootDocument = RootAccessible();
mozilla::WindowsHandle nativeData = nsnull; mozilla::WindowsHandle nativeData = nsnull;
if (tabChild) if (tabChild)

View File

@ -41,8 +41,8 @@
#include "nsWinUtils.h" #include "nsWinUtils.h"
#include "Compatibility.h" #include "Compatibility.h"
#include "nsIWinAccessNode.h" #include "nsDocAccessible.h"
#include "nsRootAccessible.h" #include "nsCoreUtils.h"
#include "mozilla/Preferences.h" #include "mozilla/Preferences.h"
#include "nsArrayUtils.h" #include "nsArrayUtils.h"

View File

@ -50,7 +50,6 @@ LIBXUL_LIBRARY = 1
CPPSRCS = \ CPPSRCS = \
nsAccessNodeWrap.cpp \ nsAccessNodeWrap.cpp \
nsAccessibleWrap.cpp \ nsAccessibleWrap.cpp \
nsRootAccessibleWrap.cpp \
$(NULL) $(NULL)
EXPORTS = \ EXPORTS = \
@ -59,7 +58,6 @@ EXPORTS = \
nsTextAccessibleWrap.h \ nsTextAccessibleWrap.h \
nsAccessibleWrap.h \ nsAccessibleWrap.h \
nsDocAccessibleWrap.h \ nsDocAccessibleWrap.h \
nsRootAccessibleWrap.h \
nsXULMenuAccessibleWrap.h \ nsXULMenuAccessibleWrap.h \
nsXULListboxAccessibleWrap.h \ nsXULListboxAccessibleWrap.h \
nsXULTreeGridAccessibleWrap.h \ nsXULTreeGridAccessibleWrap.h \

View File

@ -40,18 +40,17 @@
* see http://lxr.mozilla.org/seamonkey/source/accessible/accessible-docs.html * see http://lxr.mozilla.org/seamonkey/source/accessible/accessible-docs.html
*/ */
#ifndef _nsRootAccessibleWrap_H_ #ifndef mozilla_a11y_RootAccessibleWrap_h__
#define _nsRootAccessibleWrap_H_ #define mozilla_a11y_RootAccessibleWrap_h__
#include "nsRootAccessible.h" #include "RootAccessible.h"
class nsRootAccessibleWrap: public nsRootAccessible namespace mozilla {
{ namespace a11y {
public:
nsRootAccessibleWrap(nsIDocument* aDocument, nsIContent* aRootContent,
nsIPresShell* aPresShell);
virtual ~nsRootAccessibleWrap();
};
typedef RootAccessible RootAccessibleWrap;
} // namespace a11y
} // namespace mozilla
#endif #endif

View File

@ -1,58 +0,0 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* ***** BEGIN LICENSE BLOCK *****
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
*
* The contents of this file are subject to the Mozilla Public License Version
* 1.1 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
* for the specific language governing rights and limitations under the
* License.
*
* The Original Code is mozilla.org code.
*
* The Initial Developer of the Original Code is
* Netscape Communications Corporation.
* Portions created by the Initial Developer are Copyright (C) 2003
* the Initial Developer. All Rights Reserved.
*
* Contributor(s):
* Original Author: Aaron Leventhal (aaronl@netscape.com)
*
* Alternatively, the contents of this file may be used under the terms of
* either of the GNU General Public License Version 2 or later (the "GPL"),
* or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
* in which case the provisions of the GPL or the LGPL are applicable instead
* of those above. If you wish to allow use of your version of this file only
* under the terms of either the GPL or the LGPL, and not to allow others to
* use your version of this file under the terms of the MPL, indicate your
* decision by deleting the provisions above and replace them with the notice
* and other provisions required by the GPL or the LGPL. If you do not delete
* the provisions above, a recipient may use your version of this file under
* the terms of any one of the MPL, the GPL or the LGPL.
*
* ***** END LICENSE BLOCK ***** */
#include "nsCOMPtr.h"
#include "nsRootAccessibleWrap.h"
#include "nsIServiceManager.h"
#include "nsIAccessibilityService.h"
////////////////////////////////////////////////////////////////////////////////
// nsRootAccessibleWrap
////////////////////////////////////////////////////////////////////////////////
nsRootAccessibleWrap::
nsRootAccessibleWrap(nsIDocument* aDocument, nsIContent* aRootContent,
nsIPresShell* aPresShell) :
nsRootAccessible(aDocument, aRootContent, aPresShell)
{
}
nsRootAccessibleWrap::~nsRootAccessibleWrap()
{
}