Skip to content

Commit

Permalink
Bug 1139049 - turn EnumRoleAccessible into template
Browse files Browse the repository at this point in the history
  • Loading branch information
rmottola committed Jul 3, 2019
1 parent 8d538ac commit 4285a88
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 33 deletions.
14 changes: 7 additions & 7 deletions accessible/base/nsAccessibilityService.cpp
Expand Up @@ -1050,13 +1050,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);
}
Expand Down Expand Up @@ -1296,14 +1296,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);
Expand All @@ -1330,7 +1330,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);
Expand Down Expand Up @@ -1556,7 +1556,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);
Expand Down
18 changes: 0 additions & 18 deletions accessible/generic/BaseAccessibles.cpp
Expand Up @@ -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
////////////////////////////////////////////////////////////////////////////////
Expand Down
16 changes: 8 additions & 8 deletions accessible/generic/BaseAccessibles.h
Expand Up @@ -93,21 +93,21 @@ class LinkableAccessible : public AccessibleWrap
/**
* A simple accessible that gets its enumerated role passed into constructor.
*/
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) override
{ return Accessible::QueryInterface(aIID, aPtr); }

// Accessible
virtual a11y::role NativeRole() override;
virtual a11y::role NativeRole() override { return R; }

protected:
virtual ~EnumRoleAccessible() { }

a11y::role mRole;
virtual ~RoleTAccessible() { }
};


Expand Down

0 comments on commit 4285a88

Please sign in to comment.