nsAccessibleRelation.h 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  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. #ifndef _nsAccessibleRelation_H_
  6. #define _nsAccessibleRelation_H_
  7. #include "nsIAccessibleRelation.h"
  8. #include "nsCOMPtr.h"
  9. #include "nsTArray.h"
  10. #include "nsIMutableArray.h"
  11. #include "mozilla/Attributes.h"
  12. #include "mozilla/a11y/ProxyAccessible.h"
  13. namespace mozilla {
  14. namespace a11y {
  15. class Relation;
  16. /**
  17. * Class represents an accessible relation.
  18. */
  19. class nsAccessibleRelation final : public nsIAccessibleRelation
  20. {
  21. public:
  22. nsAccessibleRelation(uint32_t aType, Relation* aRel);
  23. nsAccessibleRelation(uint32_t aType,
  24. const nsTArray<ProxyAccessible*>* aTargets);
  25. NS_DECL_ISUPPORTS
  26. NS_DECL_NSIACCESSIBLERELATION
  27. private:
  28. nsAccessibleRelation();
  29. ~nsAccessibleRelation();
  30. nsAccessibleRelation(const nsAccessibleRelation&);
  31. nsAccessibleRelation& operator = (const nsAccessibleRelation&);
  32. uint32_t mType;
  33. nsCOMPtr<nsIMutableArray> mTargets;
  34. };
  35. } // namespace a11y
  36. } // namespace mozilla
  37. #endif