Line data Source code
1 : /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 : /* vim: set ts=2 et sw=2 tw=80: */
3 : /* This Source Code Form is subject to the terms of the Mozilla Public
4 : * License, v. 2.0. If a copy of the MPL was not distributed with this file,
5 : * You can obtain one at http://mozilla.org/MPL/2.0/. */
6 :
7 : #ifndef mozilla_a11y_xpcAccessible_h_
8 : #define mozilla_a11y_xpcAccessible_h_
9 :
10 : #include "nsIAccessible.h"
11 :
12 : class nsIAccessible;
13 :
14 : namespace mozilla {
15 : namespace a11y {
16 :
17 : class Accessible;
18 : class AccessibleOrProxy;
19 :
20 : /**
21 : * XPCOM nsIAccessible interface implementation, used by xpcAccessibleGeneric
22 : * class.
23 : */
24 : class xpcAccessible : public nsIAccessible
25 : {
26 : public:
27 : // nsIAccessible
28 : NS_IMETHOD GetParent(nsIAccessible** aParent) final override;
29 : NS_IMETHOD GetNextSibling(nsIAccessible** aNextSibling) final override;
30 : NS_IMETHOD GetPreviousSibling(nsIAccessible** aPreviousSibling)
31 : final override;
32 : NS_IMETHOD GetFirstChild(nsIAccessible** aFirstChild) final override;
33 : NS_IMETHOD GetLastChild(nsIAccessible** aLastChild) final override;
34 : NS_IMETHOD GetChildCount(int32_t* aChildCount) final override;
35 : NS_IMETHOD GetChildAt(int32_t aChildIndex, nsIAccessible** aChild)
36 : final override;
37 : NS_IMETHOD GetChildren(nsIArray** aChildren) final override;
38 : NS_IMETHOD GetIndexInParent(int32_t* aIndexInParent) final override;
39 :
40 : NS_IMETHOD GetDOMNode(nsIDOMNode** aDOMNode) final override;
41 : NS_IMETHOD GetId(nsAString& aID) final override;
42 : NS_IMETHOD GetDocument(nsIAccessibleDocument** aDocument) final override;
43 : NS_IMETHOD GetRootDocument(nsIAccessibleDocument** aRootDocument)
44 : final override;
45 :
46 : NS_IMETHOD GetRole(uint32_t* aRole) final override;
47 : NS_IMETHOD GetState(uint32_t* aState, uint32_t* aExtraState)
48 : final override;
49 :
50 : NS_IMETHOD GetDescription(nsAString& aDescription) final override;
51 : NS_IMETHOD GetName(nsAString& aName) final override;
52 : NS_IMETHOD GetLanguage(nsAString& aLanguage) final override;
53 : NS_IMETHOD GetValue(nsAString& aValue) final override;
54 : NS_IMETHOD GetHelp(nsAString& aHelp) final override;
55 :
56 : NS_IMETHOD GetAccessKey(nsAString& aAccessKey) final override;
57 : NS_IMETHOD GetKeyboardShortcut(nsAString& aKeyBinding) final override;
58 :
59 : NS_IMETHOD GetAttributes(nsIPersistentProperties** aAttributes)
60 : final override;
61 : NS_IMETHOD GetBounds(int32_t* aX, int32_t* aY,
62 : int32_t* aWidth, int32_t* aHeight) final override;
63 : NS_IMETHOD GroupPosition(int32_t* aGroupLevel, int32_t* aSimilarItemsInGroup,
64 : int32_t* aPositionInGroup) final override;
65 : NS_IMETHOD GetRelationByType(uint32_t aType,
66 : nsIAccessibleRelation** aRelation)
67 : final override;
68 : NS_IMETHOD GetRelations(nsIArray** aRelations) final override;
69 :
70 : NS_IMETHOD GetFocusedChild(nsIAccessible** aChild) final override;
71 : NS_IMETHOD GetChildAtPoint(int32_t aX, int32_t aY,
72 : nsIAccessible** aAccessible) final override;
73 : NS_IMETHOD GetDeepestChildAtPoint(int32_t aX, int32_t aY,
74 : nsIAccessible** aAccessible)
75 : final override;
76 :
77 : NS_IMETHOD SetSelected(bool aSelect) final override;
78 : NS_IMETHOD TakeSelection() final override;
79 : NS_IMETHOD TakeFocus() final override;
80 :
81 : NS_IMETHOD GetActionCount(uint8_t* aActionCount) final override;
82 : NS_IMETHOD GetActionName(uint8_t aIndex, nsAString& aName) final override;
83 : NS_IMETHOD GetActionDescription(uint8_t aIndex, nsAString& aDescription)
84 : final override;
85 : NS_IMETHOD DoAction(uint8_t aIndex) final override;
86 :
87 : NS_IMETHOD ScrollTo(uint32_t aHow) final override;
88 : NS_IMETHOD ScrollToPoint(uint32_t aCoordinateType,
89 : int32_t aX, int32_t aY) final override;
90 :
91 : protected:
92 0 : xpcAccessible() { }
93 0 : virtual ~xpcAccessible() {}
94 :
95 : private:
96 : Accessible* Intl();
97 : AccessibleOrProxy IntlGeneric();
98 :
99 : xpcAccessible(const xpcAccessible&) = delete;
100 : xpcAccessible& operator =(const xpcAccessible&) = delete;
101 : };
102 :
103 : } // namespace a11y
104 : } // namespace mozilla
105 :
106 : #endif
|