xpcAccessibleHyperText.h 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  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_xpcAccessibleHyperText_h_
  6. #define mozilla_a11y_xpcAccessibleHyperText_h_
  7. #include "nsIAccessibleText.h"
  8. #include "nsIAccessibleHyperText.h"
  9. #include "nsIAccessibleEditableText.h"
  10. #include "HyperTextAccessible.h"
  11. #include "xpcAccessibleGeneric.h"
  12. namespace mozilla {
  13. namespace a11y {
  14. class xpcAccessibleHyperText : public xpcAccessibleGeneric,
  15. public nsIAccessibleText,
  16. public nsIAccessibleEditableText,
  17. public nsIAccessibleHyperText
  18. {
  19. public:
  20. explicit xpcAccessibleHyperText(Accessible* aIntl) :
  21. xpcAccessibleGeneric(aIntl)
  22. {
  23. if (aIntl->IsHyperText() && aIntl->AsHyperText()->IsTextRole())
  24. mSupportedIfaces |= eText;
  25. }
  26. xpcAccessibleHyperText(ProxyAccessible* aProxy, uint32_t aInterfaces) :
  27. xpcAccessibleGeneric(aProxy, aInterfaces) { mSupportedIfaces |= eText; }
  28. NS_DECL_ISUPPORTS_INHERITED
  29. NS_DECL_NSIACCESSIBLETEXT
  30. NS_DECL_NSIACCESSIBLEHYPERTEXT
  31. NS_DECL_NSIACCESSIBLEEDITABLETEXT
  32. protected:
  33. virtual ~xpcAccessibleHyperText() {}
  34. private:
  35. HyperTextAccessible* Intl()
  36. {
  37. if (Accessible* acc = mIntl.AsAccessible()) {
  38. return acc->AsHyperText();
  39. }
  40. return nullptr;
  41. }
  42. xpcAccessibleHyperText(const xpcAccessibleHyperText&) = delete;
  43. xpcAccessibleHyperText& operator =(const xpcAccessibleHyperText&) = delete;
  44. };
  45. } // namespace a11y
  46. } // namespace mozilla
  47. #endif // mozilla_a11y_xpcAccessibleHyperText_h_