2 /* -*- Mode: Objective-C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
4 /* This Source Code Form is subject to the terms of the Mozilla Public
5 * License, v. 2.0. If a copy of the MPL was not distributed with this
6 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
8 #import "mozAccessible.h"
11 using namespace mozilla::a11y
;
14 * This rule matches all accessibles that satisfy the "boilerplate"
15 * pivot conditions and have a corresponding native accessible.
17 class RotorRule
: public PivotRule
{
19 explicit RotorRule(Accessible
* aDirectDescendantsFrom
,
20 const nsString
& aSearchText
);
21 explicit RotorRule(const nsString
& aSearchText
);
22 uint16_t Match(Accessible
* aAcc
) override
;
25 Accessible
* mDirectDescendantsFrom
;
26 const nsString
& mSearchText
;
30 * This rule matches all accessibles of a given role.
32 class RotorRoleRule
: public RotorRule
{
34 explicit RotorRoleRule(role aRole
, Accessible
* aDirectDescendantsFrom
,
35 const nsString
& aSearchText
);
36 explicit RotorRoleRule(role aRole
, const nsString
& aSearchText
);
37 uint16_t Match(Accessible
* aAcc
) override
;
43 class RotorMacRoleRule
: public RotorRule
{
45 explicit RotorMacRoleRule(NSString
* aRole
, const nsString
& aSearchText
);
46 explicit RotorMacRoleRule(NSString
* aRole
, Accessible
* aDirectDescendantsFrom
,
47 const nsString
& aSearchText
);
49 virtual uint16_t Match(Accessible
* aAcc
) override
;
55 class RotorControlRule final
: public RotorRule
{
57 explicit RotorControlRule(Accessible
* aDirectDescendantsFrom
,
58 const nsString
& aSearchText
);
59 explicit RotorControlRule(const nsString
& aSearchText
);
61 virtual uint16_t Match(Accessible
* aAcc
) override
;
64 class RotorTextEntryRule final
: public RotorRule
{
66 explicit RotorTextEntryRule(Accessible
* aDirectDescendantsFrom
,
67 const nsString
& aSearchText
);
68 explicit RotorTextEntryRule(const nsString
& aSearchText
);
70 virtual uint16_t Match(Accessible
* aAcc
) override
;
73 class RotorLinkRule
: public RotorRule
{
75 explicit RotorLinkRule(const nsString
& aSearchText
);
76 explicit RotorLinkRule(Accessible
* aDirectDescendantsFrom
,
77 const nsString
& aSearchText
);
79 virtual uint16_t Match(Accessible
* aAcc
) override
;
82 class RotorVisitedLinkRule final
: public RotorLinkRule
{
84 explicit RotorVisitedLinkRule(const nsString
& aSearchText
);
85 explicit RotorVisitedLinkRule(Accessible
* aDirectDescendantsFrom
,
86 const nsString
& aSearchText
);
88 virtual uint16_t Match(Accessible
* aAcc
) override
;
91 class RotorUnvisitedLinkRule final
: public RotorLinkRule
{
93 explicit RotorUnvisitedLinkRule(const nsString
& aSearchText
);
94 explicit RotorUnvisitedLinkRule(Accessible
* aDirectDescendantsFrom
,
95 const nsString
& aSearchText
);
97 virtual uint16_t Match(Accessible
* aAcc
) override
;
101 * This rule matches all accessibles that satisfy the "boilerplate"
102 * pivot conditions and have a corresponding native accessible.
104 class RotorNotMacRoleRule
: public RotorMacRoleRule
{
106 explicit RotorNotMacRoleRule(NSString
* aMacRole
,
107 Accessible
* aDirectDescendantsFrom
,
108 const nsString
& aSearchText
);
109 explicit RotorNotMacRoleRule(NSString
* aMacRole
, const nsString
& aSearchText
);
110 uint16_t Match(Accessible
* aAcc
) override
;
113 class RotorStaticTextRule
: public RotorRule
{
115 explicit RotorStaticTextRule(const nsString
& aSearchText
);
116 explicit RotorStaticTextRule(Accessible
* aDirectDescendantsFrom
,
117 const nsString
& aSearchText
);
119 virtual uint16_t Match(Accessible
* aAcc
) override
;
122 class RotorHeadingLevelRule
: public RotorRoleRule
{
124 explicit RotorHeadingLevelRule(int32_t aLevel
, const nsString
& aSearchText
);
125 explicit RotorHeadingLevelRule(int32_t aLevel
,
126 Accessible
* aDirectDescendantsFrom
,
127 const nsString
& aSearchText
);
129 virtual uint16_t Match(Accessible
* aAcc
) override
;
135 class RotorLiveRegionRule
: public RotorRule
{
137 explicit RotorLiveRegionRule(Accessible
* aDirectDescendantsFrom
,
138 const nsString
& aSearchText
)
139 : RotorRule(aDirectDescendantsFrom
, aSearchText
) {}
140 explicit RotorLiveRegionRule(const nsString
& aSearchText
)
141 : RotorRule(aSearchText
) {}
143 uint16_t Match(Accessible
* aAcc
) override
;