xpcAccessible.h 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  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 file,
  4. * You can obtain one at http://mozilla.org/MPL/2.0/. */
  5. #ifndef mozilla_a11y_xpcAccessible_h_
  6. #define mozilla_a11y_xpcAccessible_h_
  7. #include "nsIAccessible.h"
  8. class nsIAccessible;
  9. namespace mozilla {
  10. namespace a11y {
  11. class Accessible;
  12. class AccessibleOrProxy;
  13. /**
  14. * XPCOM nsIAccessible interface implementation, used by xpcAccessibleGeneric
  15. * class.
  16. */
  17. class xpcAccessible : public nsIAccessible
  18. {
  19. public:
  20. // nsIAccessible
  21. NS_IMETHOD GetParent(nsIAccessible** aParent) final override;
  22. NS_IMETHOD GetNextSibling(nsIAccessible** aNextSibling) final override;
  23. NS_IMETHOD GetPreviousSibling(nsIAccessible** aPreviousSibling)
  24. final override;
  25. NS_IMETHOD GetFirstChild(nsIAccessible** aFirstChild) final override;
  26. NS_IMETHOD GetLastChild(nsIAccessible** aLastChild) final override;
  27. NS_IMETHOD GetChildCount(int32_t* aChildCount) final override;
  28. NS_IMETHOD GetChildAt(int32_t aChildIndex, nsIAccessible** aChild)
  29. final override;
  30. NS_IMETHOD GetChildren(nsIArray** aChildren) final override;
  31. NS_IMETHOD GetIndexInParent(int32_t* aIndexInParent) final override;
  32. NS_IMETHOD GetDOMNode(nsIDOMNode** aDOMNode) final override;
  33. NS_IMETHOD GetId(nsAString& aID) final override;
  34. NS_IMETHOD GetDocument(nsIAccessibleDocument** aDocument) final override;
  35. NS_IMETHOD GetRootDocument(nsIAccessibleDocument** aRootDocument)
  36. final override;
  37. NS_IMETHOD GetRole(uint32_t* aRole) final override;
  38. NS_IMETHOD GetState(uint32_t* aState, uint32_t* aExtraState)
  39. final override;
  40. NS_IMETHOD GetDescription(nsAString& aDescription) final override;
  41. NS_IMETHOD GetName(nsAString& aName) final override;
  42. NS_IMETHOD GetLanguage(nsAString& aLanguage) final override;
  43. NS_IMETHOD GetValue(nsAString& aValue) final override;
  44. NS_IMETHOD GetHelp(nsAString& aHelp) final override;
  45. NS_IMETHOD GetAccessKey(nsAString& aAccessKey) final override;
  46. NS_IMETHOD GetKeyboardShortcut(nsAString& aKeyBinding) final override;
  47. NS_IMETHOD GetAttributes(nsIPersistentProperties** aAttributes)
  48. final override;
  49. NS_IMETHOD GetBounds(int32_t* aX, int32_t* aY,
  50. int32_t* aWidth, int32_t* aHeight) final override;
  51. NS_IMETHOD GroupPosition(int32_t* aGroupLevel, int32_t* aSimilarItemsInGroup,
  52. int32_t* aPositionInGroup) final override;
  53. NS_IMETHOD GetRelationByType(uint32_t aType,
  54. nsIAccessibleRelation** aRelation)
  55. final override;
  56. NS_IMETHOD GetRelations(nsIArray** aRelations) final override;
  57. NS_IMETHOD GetFocusedChild(nsIAccessible** aChild) final override;
  58. NS_IMETHOD GetChildAtPoint(int32_t aX, int32_t aY,
  59. nsIAccessible** aAccessible) final override;
  60. NS_IMETHOD GetDeepestChildAtPoint(int32_t aX, int32_t aY,
  61. nsIAccessible** aAccessible)
  62. final override;
  63. NS_IMETHOD SetSelected(bool aSelect) final override;
  64. NS_IMETHOD TakeSelection() final override;
  65. NS_IMETHOD TakeFocus() final override;
  66. NS_IMETHOD GetActionCount(uint8_t* aActionCount) final override;
  67. NS_IMETHOD GetActionName(uint8_t aIndex, nsAString& aName) final override;
  68. NS_IMETHOD GetActionDescription(uint8_t aIndex, nsAString& aDescription)
  69. final override;
  70. NS_IMETHOD DoAction(uint8_t aIndex) final override;
  71. NS_IMETHOD ScrollTo(uint32_t aHow) final override;
  72. NS_IMETHOD ScrollToPoint(uint32_t aCoordinateType,
  73. int32_t aX, int32_t aY) final override;
  74. protected:
  75. xpcAccessible() { }
  76. virtual ~xpcAccessible() {}
  77. private:
  78. Accessible* Intl();
  79. AccessibleOrProxy IntlGeneric();
  80. xpcAccessible(const xpcAccessible&) = delete;
  81. xpcAccessible& operator =(const xpcAccessible&) = delete;
  82. };
  83. } // namespace a11y
  84. } // namespace mozilla
  85. #endif