ax_node_position.h 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. // Copyright 2016 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. #ifndef UI_ACCESSIBILITY_AX_NODE_POSITION_H_
  5. #define UI_ACCESSIBILITY_AX_NODE_POSITION_H_
  6. #include "ui/accessibility/ax_enums.mojom-forward.h"
  7. #include "ui/accessibility/ax_export.h"
  8. #include "ui/accessibility/ax_node.h"
  9. #include "ui/accessibility/ax_position.h"
  10. namespace ui {
  11. // Returns a human-readable representation of `AXPositionKind`.
  12. AX_EXPORT std::string ToString(const AXPositionKind kind);
  13. // AXNodePosition includes implementations of AXPosition methods which require
  14. // knowledge of the AXPosition AXNodeType (which is unknown by AXPosition).
  15. class AX_EXPORT AXNodePosition : public AXPosition<AXNodePosition, AXNode> {
  16. public:
  17. // Creates either a text or a tree position, depending on the type of the node
  18. // provided.
  19. static AXPositionInstance CreatePosition(
  20. const AXNode& node,
  21. int child_index_or_text_offset,
  22. ax::mojom::TextAffinity affinity = ax::mojom::TextAffinity::kDownstream);
  23. AXNodePosition();
  24. ~AXNodePosition() override;
  25. AXNodePosition(const AXNodePosition& other);
  26. AXPositionInstance Clone() const override;
  27. };
  28. } // namespace ui
  29. #endif // UI_ACCESSIBILITY_AX_NODE_POSITION_H_