Thu, 22 Jan 2015 13:21:57 +0100
Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6
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_FormControlAccessible_H_
7 #define MOZILLA_A11Y_FormControlAccessible_H_
9 #include "BaseAccessibles.h"
11 namespace mozilla {
12 namespace a11y {
14 /**
15 * Generic class used for progress meters.
16 */
17 template<int Max>
18 class ProgressMeterAccessible : public LeafAccessible
19 {
20 public:
21 ProgressMeterAccessible(nsIContent* aContent, DocAccessible* aDoc) :
22 LeafAccessible(aContent, aDoc)
23 {
24 // Ignore 'ValueChange' DOM event in lieu of @value attribute change
25 // notifications.
26 mStateFlags |= eHasNumericValue | eIgnoreDOMUIEvent;
27 mType = eProgressType;
28 }
30 NS_DECL_ISUPPORTS_INHERITED
32 // Accessible
33 virtual void Value(nsString& aValue);
34 virtual mozilla::a11y::role NativeRole();
35 virtual uint64_t NativeState();
37 // Value
38 virtual double MaxValue() const MOZ_OVERRIDE;
39 virtual double MinValue() const MOZ_OVERRIDE;
40 virtual double CurValue() const MOZ_OVERRIDE;
41 virtual double Step() const MOZ_OVERRIDE;
42 virtual bool SetCurValue(double aValue) MOZ_OVERRIDE;
44 // Widgets
45 virtual bool IsWidget() const;
46 };
48 /**
49 * Generic class used for radio buttons.
50 */
51 class RadioButtonAccessible : public LeafAccessible
52 {
54 public:
55 RadioButtonAccessible(nsIContent* aContent, DocAccessible* aDoc);
57 // nsIAccessible
58 NS_IMETHOD GetActionName(uint8_t aIndex, nsAString& aName);
59 NS_IMETHOD DoAction(uint8_t aIndex);
61 // Accessible
62 virtual mozilla::a11y::role NativeRole();
64 // ActionAccessible
65 virtual uint8_t ActionCount();
67 enum { eAction_Click = 0 };
69 // Widgets
70 virtual bool IsWidget() const;
71 };
73 } // namespace a11y
74 } // namespace mozilla
76 #endif