Bug 1139049 - turn EnumRoleAccessible into template, r=davidb

This commit is contained in:
Alexander Surkov 2015-03-04 18:45:17 -05:00
parent d19ee72543
commit 037ee0a387
3 changed files with 16 additions and 34 deletions

View File

@ -1055,13 +1055,13 @@ nsAccessibilityService::GetOrCreateAccessible(nsINode* aNode,
// A graphic elements: rect, circle, ellipse, line, path, polygon,
// polyline and image. A 'use' and 'text' graphic elements require
// special support.
newAcc = new EnumRoleAccessible(content, document, roles::GRAPHIC);
newAcc = new RoleTAccessible<roles::GRAPHIC>(content, document);
} else if (content->IsSVGElement(nsGkAtoms::svg)) {
newAcc = new EnumRoleAccessible(content, document, roles::DIAGRAM);
newAcc = new RoleTAccessible<roles::DIAGRAM>(content, document);
}
} else if (content->IsMathMLElement()) {
if (content->IsMathMLElement(nsGkAtoms::math))
newAcc = new EnumRoleAccessible(content, document, roles::EQUATION);
newAcc = new RoleTAccessible<roles::EQUATION>(content, document);
else
newAcc = new HyperTextAccessible(content, document);
}
@ -1307,14 +1307,14 @@ nsAccessibilityService::CreateAccessibleByType(nsIContent* aContent,
accessible = new XULMenuSeparatorAccessible(aContent, aDoc);
} else if(role.EqualsLiteral("xul:pane")) {
accessible = new EnumRoleAccessible(aContent, aDoc, roles::PANE);
accessible = new RoleTAccessible<roles::PANE>(aContent, aDoc);
} else if (role.EqualsLiteral("xul:panel")) {
if (aContent->AttrValueIs(kNameSpaceID_None, nsGkAtoms::noautofocus,
nsGkAtoms::_true, eCaseMatters))
accessible = new XULAlertAccessible(aContent, aDoc);
else
accessible = new EnumRoleAccessible(aContent, aDoc, roles::PANE);
accessible = new RoleTAccessible<roles::PANE>(aContent, aDoc);
} else if (role.EqualsLiteral("xul:progressmeter")) {
accessible = new XULProgressMeterAccessible(aContent, aDoc);
@ -1341,7 +1341,7 @@ nsAccessibilityService::CreateAccessibleByType(nsIContent* aContent,
accessible = new XULLabelAccessible(aContent, aDoc);
} else if (role.EqualsLiteral("xul:textbox")) {
accessible = new EnumRoleAccessible(aContent, aDoc, roles::SECTION);
accessible = new RoleTAccessible<roles::SECTION>(aContent, aDoc);
} else if (role.EqualsLiteral("xul:thumb")) {
accessible = new XULThumbAccessible(aContent, aDoc);
@ -1567,7 +1567,7 @@ nsAccessibilityService::CreateAccessibleByFrameType(nsIFrame* aFrame,
newAcc = new HTMLSelectListAccessible(aContent, document);
break;
case eHTMLMediaType:
newAcc = new EnumRoleAccessible(aContent, document, roles::GROUPING);
newAcc = new RoleTAccessible<roles::GROUPING>(aContent, document);
break;
case eHTMLRadioButtonType:
newAcc = new HTMLRadioButtonAccessible(aContent, document);

View File

@ -226,24 +226,6 @@ LinkableAccessible::UnbindFromParent()
AccessibleWrap::UnbindFromParent();
}
////////////////////////////////////////////////////////////////////////////////
// EnumRoleAccessible
////////////////////////////////////////////////////////////////////////////////
EnumRoleAccessible::
EnumRoleAccessible(nsIContent* aNode, DocAccessible* aDoc, roles::Role aRole) :
AccessibleWrap(aNode, aDoc), mRole(aRole)
{
}
NS_IMPL_ISUPPORTS_INHERITED0(EnumRoleAccessible, Accessible)
role
EnumRoleAccessible::NativeRole()
{
return mRole;
}
////////////////////////////////////////////////////////////////////////////////
// DummyAccessible
////////////////////////////////////////////////////////////////////////////////

View File

@ -91,23 +91,23 @@ protected:
};
/**
* A simple accessible that gets its enumerated role passed into constructor.
* A simple accessible that gets its enumerated role.
*/
class EnumRoleAccessible : public AccessibleWrap
template<a11y::role R>
class RoleTAccessible : public AccessibleWrap
{
public:
EnumRoleAccessible(nsIContent* aContent, DocAccessible* aDoc,
a11y::role aRole);
RoleTAccessible(nsIContent* aContent, DocAccessible* aDoc) :
AccessibleWrap(aContent, aDoc) { }
NS_DECL_ISUPPORTS_INHERITED
NS_IMETHOD QueryInterface(REFNSIID aIID, void** aPtr) MOZ_OVERRIDE
{ return Accessible::QueryInterface(aIID, aPtr); }
// Accessible
virtual a11y::role NativeRole() MOZ_OVERRIDE;
virtual a11y::role NativeRole() MOZ_OVERRIDE { return R; }
protected:
virtual ~EnumRoleAccessible() { }
a11y::role mRole;
virtual ~RoleTAccessible() { }
};