Bug 280262. Remove unneeded class nsGenericAccessible. Use nsAccessibleWrap for generic accessibles from now on. r=pkw, sr=jst

This commit is contained in:
aaronleventhal%moonset.net 2005-02-03 01:02:19 +00:00
Родитель 21d4b2141a
Коммит bf9489220d
5 изменённых файлов: 27 добавлений и 119 удалений

Просмотреть файл

@ -83,6 +83,7 @@ ACCESSIBILITY_ATOM(ul, "ul")
// Alphabetical list of attributes // Alphabetical list of attributes
ACCESSIBILITY_ATOM(accesskey, "accesskey") ACCESSIBILITY_ATOM(accesskey, "accesskey")
ACCESSIBILITY_ATOM(control, "control") ACCESSIBILITY_ATOM(control, "control")
ACCESSIBILITY_ATOM(disabled, "disabled")
ACCESSIBILITY_ATOM(_for, "for") ACCESSIBILITY_ATOM(_for, "for")
ACCESSIBILITY_ATOM(id, "id") ACCESSIBILITY_ATOM(id, "id")
ACCESSIBILITY_ATOM(name, "name") ACCESSIBILITY_ATOM(name, "name")

Просмотреть файл

@ -448,7 +448,8 @@ nsAccessibilityService::CreateHTMLAccessibleByMarkup(nsISupports *aFrame,
*aAccessible = new nsHTMLLinkAccessible(node, weakShell, frame); *aAccessible = new nsHTMLLinkAccessible(node, weakShell, frame);
} }
#endif #endif
else if (content->HasAttr(kNameSpaceID_None, nsAccessibilityAtoms::tabindex) else if (content->HasAttr(kNameSpaceID_None, nsAccessibilityAtoms::tabindex) ||
content->HasAttr(kNameSpaceID_XHTML2_Unofficial, nsAccessibilityAtoms::role)
#ifndef MOZ_ACCESSIBILITY_ATK #ifndef MOZ_ACCESSIBILITY_ATK
|| ||
tag == nsAccessibilityAtoms::blockquote || tag == nsAccessibilityAtoms::blockquote ||
@ -462,13 +463,7 @@ nsAccessibilityService::CreateHTMLAccessibleByMarkup(nsISupports *aFrame,
tag == nsAccessibilityAtoms::q tag == nsAccessibilityAtoms::q
#endif #endif
) { ) {
*aAccessible = new nsGenericAccessible(node, weakShell); *aAccessible = new nsAccessibleWrap(node, weakShell);
}
else {
nsAutoString role;
if (content->GetAttr(kNameSpaceID_XHTML2_Unofficial, nsAccessibilityAtoms::role, role) == NS_CONTENT_ATTR_HAS_VALUE) {
*aAccessible = new nsGenericAccessible(node, weakShell);
}
} }
NS_IF_ADDREF(*aAccessible); NS_IF_ADDREF(*aAccessible);
return NS_OK; return NS_OK;
@ -593,7 +588,7 @@ nsAccessibilityService::CreateHTMLGenericAccessible(nsISupports *aFrame, nsIAcce
if (NS_FAILED(rv)) if (NS_FAILED(rv))
return rv; return rv;
*_retval = new nsGenericAccessible(node, weakShell); *_retval = new nsAccessibleWrap(node, weakShell);
if (! *_retval) if (! *_retval)
return NS_ERROR_OUT_OF_MEMORY; return NS_ERROR_OUT_OF_MEMORY;

Просмотреть файл

@ -588,25 +588,26 @@ PRBool nsAccessible::IsPartiallyVisible(PRBool *aIsOffscreen)
/* readonly attribute wstring state; */ /* readonly attribute wstring state; */
NS_IMETHODIMP nsAccessible::GetState(PRUint32 *aState) NS_IMETHODIMP nsAccessible::GetState(PRUint32 *aState)
{ {
nsresult rv = NS_OK;
*aState = 0; *aState = 0;
nsCOMPtr<nsIDOMElement> currElement(do_QueryInterface(mDOMNode)); nsCOMPtr<nsIContent> content(do_QueryInterface(mDOMNode));
if (currElement) { if (!content) {
// Set STATE_UNAVAILABLE state based on disabled attribute return NS_ERROR_FAILURE; // Node shut down
// The disabled attribute is mostly used in XUL elements and HTML forms, but }
// if someone sets it on another attribute,
// it seems reasonable to consider it unavailable // Set STATE_UNAVAILABLE state based on disabled attribute
PRBool isDisabled = PR_FALSE; // The disabled attribute is mostly used in XUL elements and HTML forms, but
currElement->HasAttribute(NS_LITERAL_STRING("disabled"), &isDisabled); // if someone sets it on another attribute,
if (isDisabled) // it seems reasonable to consider it unavailable
*aState |= STATE_UNAVAILABLE; if (content->HasAttr(kNameSpaceID_None, nsAccessibilityAtoms::disabled)) {
else { *aState |= STATE_UNAVAILABLE;
*aState |= STATE_FOCUSABLE; }
nsCOMPtr<nsIDOMNode> focusedNode; else if (!mRoleMapEntry || content->IsFocusable()) {
if (gLastFocusedNode == mDOMNode) { // Default state is focusable unless role manually set
*aState |= STATE_FOCUSED; // Subclasses of nsAccessible will clear focusable state if necessary
} *aState |= STATE_FOCUSABLE;
if (gLastFocusedNode == mDOMNode) {
*aState |= STATE_FOCUSED;
} }
} }
@ -618,7 +619,7 @@ NS_IMETHODIMP nsAccessible::GetState(PRUint32 *aState)
*aState |= STATE_OFFSCREEN; *aState |= STATE_OFFSCREEN;
} }
return rv; return NS_OK;
} }
/* readonly attribute boolean focusedChild; */ /* readonly attribute boolean focusedChild; */
@ -1427,9 +1428,10 @@ NS_IMETHODIMP nsAccessible::GetKeyBinding(nsAString& _retval)
} }
/* unsigned long getRole (); */ /* unsigned long getRole (); */
NS_IMETHODIMP nsAccessible::GetRole(PRUint32 *_retval) NS_IMETHODIMP nsAccessible::GetRole(PRUint32 *aRole)
{ {
return NS_ERROR_NOT_IMPLEMENTED; *aRole = ROLE_NOTHING;
return NS_OK;
} }
/* PRUint8 getAccNumActions (); */ /* PRUint8 getAccNumActions (); */

Просмотреть файл

@ -325,74 +325,3 @@ NS_IMETHODIMP nsLinkableAccessible::Shutdown()
return nsAccessibleWrap::Shutdown(); return nsAccessibleWrap::Shutdown();
} }
//----------------
// nsGenericAccessible
//----------------
nsGenericAccessible::nsGenericAccessible(nsIDOMNode* aNode, nsIWeakReference* aShell) :
nsAccessibleWrap(aNode, aShell)
{
}
NS_IMPL_ISUPPORTS_INHERITED0(nsGenericAccessible, nsAccessible)
NS_IMETHODIMP nsGenericAccessible::TakeFocus()
{
nsCOMPtr<nsIContent> content(do_QueryInterface(mDOMNode));
if (!content || !mWeakShell) {
return NS_ERROR_FAILURE; // Node already shut down
}
content->SetFocus(nsCOMPtr<nsPresContext>(GetPresContext()));
return NS_OK;
}
NS_IMETHODIMP nsGenericAccessible::GetRole(PRUint32 *aRole)
{
*aRole = ROLE_NOTHING;
return NS_OK;
}
NS_IMETHODIMP nsGenericAccessible::GetState(PRUint32 *aState)
{
// XXX todo: use DHTML state attribs to fill in accessible states
nsAccessible::GetState(aState);
return NS_OK;
}
NS_IMETHODIMP nsGenericAccessible::GetValue(nsAString& aValue)
{
// XXX todo: use value attrib or property to fill in accessible value
return NS_ERROR_NOT_IMPLEMENTED;
}
/* PRUint8 getAccNumActions (); */
NS_IMETHODIMP nsGenericAccessible::GetNumActions(PRUint8 *aNumActions)
{
// XXX todo: use XML events to fill in accessible actions
*aNumActions = 0;
return NS_OK;
}
/* wstring getAccActionName (in PRUint8 index); */
NS_IMETHODIMP nsGenericAccessible::GetActionName(PRUint8 index, nsAString& _retval)
{
// XXX todo: use XML events to fill in accessible actions
return NS_ERROR_NOT_IMPLEMENTED;
}
/* void accDoAction (in PRUint8 index); */
NS_IMETHODIMP nsGenericAccessible::DoAction(PRUint8 index)
{
return NS_ERROR_NOT_IMPLEMENTED;
}

Просмотреть файл

@ -100,23 +100,4 @@ protected:
PRPackedBool mIsLinkVisited; PRPackedBool mIsLinkVisited;
}; };
/**
* A type of accessible for DOM nodes containing a non-negative tabindex
* (thus they're focusable), or a role attrib which defines how to expose them.
*/
class nsGenericAccessible : public nsAccessibleWrap
{
public:
nsGenericAccessible(nsIDOMNode* aNode, nsIWeakReference* aShell);
NS_DECL_ISUPPORTS_INHERITED
NS_IMETHOD TakeFocus();
NS_IMETHOD GetRole(PRUint32 *aRole);
NS_IMETHOD GetState(PRUint32 *aState);
NS_IMETHOD GetValue(nsAString& aValue);
NS_IMETHOD GetNumActions(PRUint8 *_retval);
NS_IMETHOD GetActionName(PRUint8 index, nsAString& _retval);
NS_IMETHOD DoAction(PRUint8 index);
};
#endif #endif