Line data Source code
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/. */
5 :
6 : #ifndef MOZILLA_A11Y_FormControlAccessible_H_
7 : #define MOZILLA_A11Y_FormControlAccessible_H_
8 :
9 : #include "BaseAccessibles.h"
10 :
11 : namespace mozilla {
12 : namespace a11y {
13 :
14 : /**
15 : * Generic class used for progress meters.
16 : */
17 : template<int Max>
18 : class ProgressMeterAccessible : public LeafAccessible
19 : {
20 : public:
21 0 : ProgressMeterAccessible(nsIContent* aContent, DocAccessible* aDoc) :
22 0 : LeafAccessible(aContent, aDoc)
23 : {
24 : // Ignore 'ValueChange' DOM event in lieu of @value attribute change
25 : // notifications.
26 0 : mStateFlags |= eHasNumericValue | eIgnoreDOMUIEvent;
27 0 : mType = eProgressType;
28 0 : }
29 :
30 : // Accessible
31 : virtual void Value(nsString& aValue) override;
32 : virtual mozilla::a11y::role NativeRole() override;
33 : virtual uint64_t NativeState() override;
34 :
35 : // Value
36 : virtual double MaxValue() const override;
37 : virtual double MinValue() const override;
38 : virtual double CurValue() const override;
39 : virtual double Step() const override;
40 : virtual bool SetCurValue(double aValue) override;
41 :
42 : // Widgets
43 : virtual bool IsWidget() const override;
44 :
45 : protected:
46 0 : virtual ~ProgressMeterAccessible() {}
47 : };
48 :
49 : /**
50 : * Generic class used for radio buttons.
51 : */
52 0 : class RadioButtonAccessible : public LeafAccessible
53 : {
54 :
55 : public:
56 : RadioButtonAccessible(nsIContent* aContent, DocAccessible* aDoc);
57 :
58 : // Accessible
59 : virtual mozilla::a11y::role NativeRole() override;
60 :
61 : // ActionAccessible
62 : virtual uint8_t ActionCount() override;
63 : virtual void ActionNameAt(uint8_t aIndex, nsAString& aName) override;
64 : virtual bool DoAction(uint8_t aIndex) override;
65 :
66 : enum { eAction_Click = 0 };
67 :
68 : // Widgets
69 : virtual bool IsWidget() const override;
70 : };
71 :
72 : } // namespace a11y
73 : } // namespace mozilla
74 :
75 : #endif
76 :
|