xpcAccessible.h (4259B)
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 LocalAccessible; 19 20 /** 21 * XPCOM nsIAccessible interface implementation, used by xpcAccessibleGeneric 22 * class. 23 */ 24 class xpcAccessible : public nsIAccessible { 25 public: 26 // nsIAccessible 27 NS_IMETHOD GetParent(nsIAccessible** aParent) final; 28 NS_IMETHOD GetNextSibling(nsIAccessible** aNextSibling) final; 29 NS_IMETHOD GetPreviousSibling(nsIAccessible** aPreviousSibling) final; 30 NS_IMETHOD GetFirstChild(nsIAccessible** aFirstChild) final; 31 NS_IMETHOD GetLastChild(nsIAccessible** aLastChild) final; 32 NS_IMETHOD GetChildCount(int32_t* aChildCount) final; 33 NS_IMETHOD GetChildAt(int32_t aChildIndex, nsIAccessible** aChild) final; 34 NS_IMETHOD GetChildren(nsIArray** aChildren) final; 35 NS_IMETHOD GetIndexInParent(int32_t* aIndexInParent) final; 36 37 NS_IMETHOD GetUniqueID(int64_t* aUniqueID) final; 38 NS_IMETHOD GetDOMNode(nsINode** aDOMNode) final; 39 NS_IMETHOD GetId(nsAString& aID) final; 40 NS_IMETHOD GetDocument(nsIAccessibleDocument** aDocument) final; 41 NS_IMETHOD GetRootDocument(nsIAccessibleDocument** aRootDocument) final; 42 43 NS_IMETHOD GetRole(uint32_t* aRole) final; 44 NS_IMETHOD GetState(uint32_t* aState, uint32_t* aExtraState) final; 45 46 NS_IMETHOD GetDescription(nsAString& aDescription) final; 47 NS_IMETHOD GetName(nsAString& aName) final; 48 NS_IMETHOD GetLanguage(nsAString& aLanguage) final; 49 NS_IMETHOD GetValue(nsAString& aValue) final; 50 51 NS_IMETHOD GetAccessKey(nsAString& aAccessKey) final; 52 NS_IMETHOD GetKeyboardShortcut(nsAString& aKeyBinding) final; 53 54 NS_IMETHOD GetAttributes(nsIPersistentProperties** aAttributes) final; 55 56 NS_IMETHOD GetCache(nsIPersistentProperties** aCachedFields) final; 57 58 NS_IMETHOD GetNativeInterface(nsISupports** aNativeInterface) final; 59 60 NS_IMETHOD GetBounds(int32_t* aX, int32_t* aY, int32_t* aWidth, 61 int32_t* aHeight) final; 62 NS_IMETHOD GetBoundsInCSSPixels(int32_t* aX, int32_t* aY, int32_t* aWidth, 63 int32_t* aHeight) final; 64 NS_IMETHOD GroupPosition(int32_t* aGroupLevel, int32_t* aSimilarItemsInGroup, 65 int32_t* aPositionInGroup) final; 66 NS_IMETHOD GetRelationByType(uint32_t aType, 67 nsIAccessibleRelation** aRelation) final; 68 NS_IMETHOD GetRelations(nsIArray** aRelations) final; 69 70 NS_IMETHOD GetFocusedChild(nsIAccessible** aChild) final; 71 NS_IMETHOD GetChildAtPoint(int32_t aX, int32_t aY, 72 nsIAccessible** aAccessible) final; 73 NS_IMETHOD GetDeepestChildAtPoint(int32_t aX, int32_t aY, 74 nsIAccessible** aAccessible) final; 75 NS_IMETHOD GetDeepestChildAtPointInProcess(int32_t aX, int32_t aY, 76 nsIAccessible** aAccessible) final; 77 78 NS_IMETHOD SetSelected(bool aSelect) final; 79 NS_IMETHOD TakeSelection() final; 80 NS_IMETHOD TakeFocus() final; 81 82 NS_IMETHOD GetActionCount(uint8_t* aActionCount) final; 83 NS_IMETHOD GetActionName(uint8_t aIndex, nsAString& aName) final; 84 NS_IMETHOD GetActionDescription(uint8_t aIndex, 85 nsAString& aDescription) final; 86 NS_IMETHOD DoAction(uint8_t aIndex) final; 87 88 MOZ_CAN_RUN_SCRIPT 89 NS_IMETHOD ScrollTo(uint32_t aHow) final; 90 NS_IMETHOD ScrollToPoint(uint32_t aCoordinateType, int32_t aX, 91 int32_t aY) final; 92 93 NS_IMETHOD Announce(const nsAString& aAnnouncement, uint16_t aPriority) final; 94 95 NS_IMETHOD GetComputedARIARole(nsAString& aRole) final; 96 97 protected: 98 xpcAccessible() {} 99 virtual ~xpcAccessible() {} 100 101 private: 102 LocalAccessible* Intl(); 103 Accessible* IntlGeneric(); 104 105 xpcAccessible(const xpcAccessible&) = delete; 106 xpcAccessible& operator=(const xpcAccessible&) = delete; 107 }; 108 109 } // namespace a11y 110 } // namespace mozilla 111 112 #endif