/src/mozilla-central/accessible/base/nsEventShell.h
Line | Count | Source (jump to first uncovered line) |
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 _nsEventShell_H_ |
7 | | #define _nsEventShell_H_ |
8 | | |
9 | | #include "AccEvent.h" |
10 | | |
11 | | namespace mozilla { |
12 | | template<typename T> class StaticRefPtr; |
13 | | } |
14 | | class nsIPersistentProperties; |
15 | | |
16 | | /** |
17 | | * Used for everything about events. |
18 | | */ |
19 | | class nsEventShell |
20 | | { |
21 | | public: |
22 | | |
23 | | /** |
24 | | * Fire the accessible event. |
25 | | */ |
26 | | static void FireEvent(mozilla::a11y::AccEvent* aEvent); |
27 | | |
28 | | /** |
29 | | * Fire accessible event of the given type for the given accessible. |
30 | | * |
31 | | * @param aEventType [in] the event type |
32 | | * @param aAccessible [in] the event target |
33 | | */ |
34 | | static void FireEvent(uint32_t aEventType, |
35 | | mozilla::a11y::Accessible* aAccessible, |
36 | | mozilla::a11y::EIsFromUserInput aIsFromUserInput = mozilla::a11y::eAutoDetect); |
37 | | |
38 | | /** |
39 | | * Fire state change event. |
40 | | */ |
41 | | static void FireEvent(mozilla::a11y::Accessible* aTarget, uint64_t aState, |
42 | | bool aIsEnabled, bool aIsFromUserInput) |
43 | 0 | { |
44 | 0 | RefPtr<mozilla::a11y::AccStateChangeEvent> stateChangeEvent = |
45 | 0 | new mozilla::a11y::AccStateChangeEvent(aTarget, aState, aIsEnabled, |
46 | 0 | (aIsFromUserInput ? |
47 | 0 | mozilla::a11y::eFromUserInput : |
48 | 0 | mozilla::a11y::eNoUserInput)); |
49 | 0 | FireEvent(stateChangeEvent); |
50 | 0 | } |
51 | | |
52 | | /** |
53 | | * Append 'event-from-input' object attribute if the accessible event has |
54 | | * been fired just now for the given node. |
55 | | * |
56 | | * @param aNode [in] the DOM node |
57 | | * @param aAttributes [in, out] the attributes |
58 | | */ |
59 | | static void GetEventAttributes(nsINode *aNode, |
60 | | nsIPersistentProperties *aAttributes); |
61 | | |
62 | | private: |
63 | | static mozilla::StaticRefPtr<nsINode> sEventTargetNode; |
64 | | static bool sEventFromUserInput; |
65 | | }; |
66 | | |
67 | | #endif |