Bumping manifests a=b2g-bump
[gecko.git] / accessible / xul / XULFormControlAccessible.h
blob20fcb2b4a2802144760f5711efe3e61bcd69fabb
1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* This Source Code Form is subject to the terms of the Mozilla Public
3 * License, v. 2.0. If a copy of the MPL was not distributed with this
4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
6 #ifndef MOZILLA_A11Y_XULFormControlAccessible_H_
7 #define MOZILLA_A11Y_XULFormControlAccessible_H_
9 // NOTE: alphabetically ordered
10 #include "AccessibleWrap.h"
11 #include "FormControlAccessible.h"
12 #include "HyperTextAccessibleWrap.h"
13 #include "XULSelectControlAccessible.h"
15 namespace mozilla {
16 namespace a11y {
18 /**
19 * Used for XUL progressmeter element.
21 typedef ProgressMeterAccessible<100> XULProgressMeterAccessible;
23 /**
24 * Used for XUL button.
26 * @note Don't inherit from LeafAccessible - it doesn't allow children
27 * and a button can have a dropmarker child.
29 class XULButtonAccessible : public AccessibleWrap
31 public:
32 enum { eAction_Click = 0 };
33 XULButtonAccessible(nsIContent* aContent, DocAccessible* aDoc);
35 // nsISupports
36 NS_DECL_ISUPPORTS_INHERITED
38 // nsIAccessible
39 NS_IMETHOD GetActionName(uint8_t aIndex, nsAString& aName);
40 NS_IMETHOD DoAction(uint8_t index);
42 // Accessible
43 virtual mozilla::a11y::role NativeRole();
44 virtual uint64_t NativeState();
46 // ActionAccessible
47 virtual uint8_t ActionCount();
49 // Widgets
50 virtual bool IsWidget() const;
51 virtual bool IsActiveWidget() const;
52 virtual bool AreItemsOperable() const;
53 virtual Accessible* ContainerWidget() const;
55 virtual bool IsAcceptableChild(Accessible* aPossibleChild) const MOZ_OVERRIDE;
57 protected:
58 virtual ~XULButtonAccessible();
60 // XULButtonAccessible
61 bool ContainsMenu();
65 /**
66 * Used for XUL checkbox element.
68 class XULCheckboxAccessible : public LeafAccessible
70 public:
71 enum { eAction_Click = 0 };
72 XULCheckboxAccessible(nsIContent* aContent, DocAccessible* aDoc);
74 // nsIAccessible
75 NS_IMETHOD GetActionName(uint8_t aIndex, nsAString& aName);
76 NS_IMETHOD DoAction(uint8_t index);
78 // Accessible
79 virtual mozilla::a11y::role NativeRole();
80 virtual uint64_t NativeState();
82 // ActionAccessible
83 virtual uint8_t ActionCount();
86 /**
87 * Used for XUL dropmarker element.
89 class XULDropmarkerAccessible : public LeafAccessible
91 public:
92 enum { eAction_Click = 0 };
93 XULDropmarkerAccessible(nsIContent* aContent, DocAccessible* aDoc);
95 // nsIAccessible
96 NS_IMETHOD GetActionName(uint8_t aIndex, nsAString& aName);
97 NS_IMETHOD DoAction(uint8_t index);
99 // Accessible
100 virtual mozilla::a11y::role NativeRole();
101 virtual uint64_t NativeState();
103 // ActionAccessible
104 virtual uint8_t ActionCount();
106 private:
107 bool DropmarkerOpen(bool aToggleOpen);
111 * Used for XUL groupbox element.
113 class XULGroupboxAccessible MOZ_FINAL : public AccessibleWrap
115 public:
116 XULGroupboxAccessible(nsIContent* aContent, DocAccessible* aDoc);
118 // Accessible
119 virtual mozilla::a11y::role NativeRole();
120 virtual Relation RelationByType(RelationType aType) MOZ_OVERRIDE;
122 protected:
123 // Accessible
124 virtual ENameValueFlag NativeName(nsString& aName) MOZ_OVERRIDE;
128 * Used for XUL radio element (radio button).
130 class XULRadioButtonAccessible : public RadioButtonAccessible
133 public:
134 XULRadioButtonAccessible(nsIContent* aContent, DocAccessible* aDoc);
136 // Accessible
137 virtual uint64_t NativeState();
138 virtual uint64_t NativeInteractiveState() const;
140 // Widgets
141 virtual Accessible* ContainerWidget() const;
145 * Used for XUL radiogroup element.
147 class XULRadioGroupAccessible : public XULSelectControlAccessible
149 public:
150 XULRadioGroupAccessible(nsIContent* aContent, DocAccessible* aDoc);
152 // Accessible
153 virtual mozilla::a11y::role NativeRole();
154 virtual uint64_t NativeInteractiveState() const;
156 // Widgets
157 virtual bool IsWidget() const;
158 virtual bool IsActiveWidget() const;
159 virtual bool AreItemsOperable() const;
163 * Used for XUL statusbar element.
165 class XULStatusBarAccessible : public AccessibleWrap
167 public:
168 XULStatusBarAccessible(nsIContent* aContent, DocAccessible* aDoc);
170 // Accessible
171 virtual mozilla::a11y::role NativeRole();
175 * Used for XUL toolbarbutton element.
177 class XULToolbarButtonAccessible : public XULButtonAccessible
179 public:
180 XULToolbarButtonAccessible(nsIContent* aContent, DocAccessible* aDoc);
182 // Accessible
183 virtual void GetPositionAndSizeInternal(int32_t *aPosInSet,
184 int32_t *aSetSize);
186 // nsXULToolbarButtonAccessible
187 static bool IsSeparator(Accessible* aAccessible);
191 * Used for XUL toolbar element.
193 class XULToolbarAccessible : public AccessibleWrap
195 public:
196 XULToolbarAccessible(nsIContent* aContent, DocAccessible* aDoc);
198 // Accessible
199 virtual mozilla::a11y::role NativeRole();
201 protected:
202 // Accessible
203 virtual ENameValueFlag NativeName(nsString& aName) MOZ_OVERRIDE;
207 * Used for XUL toolbarseparator element.
209 class XULToolbarSeparatorAccessible : public LeafAccessible
211 public:
212 XULToolbarSeparatorAccessible(nsIContent* aContent,
213 DocAccessible* aDoc);
215 // Accessible
216 virtual mozilla::a11y::role NativeRole();
217 virtual uint64_t NativeState();
220 } // namespace a11y
221 } // namespace mozilla
223 #endif