#ifndef UI_ACCESSIBILITY_AX_NODE_H_
#define UI_ACCESSIBILITY_AX_NODE_H_
#include <stdint.h>
#include <iterator>
#include <memory>
#include <optional>
#include <ostream>
#include <string>
#include <utility>
#include <vector>
#include "base/containers/queue.h"
#include "base/containers/stack.h"
#include "base/memory/raw_ptr.h"
#include "build/build_config.h"
#include "third_party/skia/include/core/SkColor.h"
#include "ui/accessibility/ax_export.h"
#include "ui/accessibility/ax_hypertext.h"
#include "ui/accessibility/ax_node_data.h"
#include "ui/accessibility/ax_text_attributes.h"
#include "ui/accessibility/ax_tree_id.h"
#include "ui/gfx/geometry/rect_f.h"
namespace ui {
class AXComputedNodeData;
class AXSelection;
class AXTableInfo;
class AXTreeManager;
struct AXLanguageInfo;
class AXTree;
class AX_EXPORT AXNode final { … };
AX_EXPORT std::ostream& operator<<(std::ostream& stream, const AXNode& node);
AX_EXPORT std::ostream& operator<<(std::ostream& stream, const AXNode* node);
template <typename NodeType,
NodeType* (NodeType::*NextSibling)() const,
NodeType* (NodeType::*PreviousSibling)() const,
NodeType* (NodeType::*FirstChild)() const,
NodeType* (NodeType::*LastChild)() const>
AXNode::ChildIteratorBase<NodeType,
NextSibling,
PreviousSibling,
FirstChild,
LastChild>::ChildIteratorBase(const NodeType* parent,
NodeType* child)
: … { … }
template <typename NodeType,
NodeType* (NodeType::*NextSibling)() const,
NodeType* (NodeType::*PreviousSibling)() const,
NodeType* (NodeType::*FirstChild)() const,
NodeType* (NodeType::*LastChild)() const>
AXNode::ChildIteratorBase<NodeType,
NextSibling,
PreviousSibling,
FirstChild,
LastChild>::ChildIteratorBase(const ChildIteratorBase&
it)
: … { … }
template <typename NodeType,
NodeType* (NodeType::*NextSibling)() const,
NodeType* (NodeType::*PreviousSibling)() const,
NodeType* (NodeType::*FirstChild)() const,
NodeType* (NodeType::*LastChild)() const>
bool AXNode::ChildIteratorBase<NodeType,
NextSibling,
PreviousSibling,
FirstChild,
LastChild>::operator==(const ChildIteratorBase&
rhs) const { … }
template <typename NodeType,
NodeType* (NodeType::*NextSibling)() const,
NodeType* (NodeType::*PreviousSibling)() const,
NodeType* (NodeType::*FirstChild)() const,
NodeType* (NodeType::*LastChild)() const>
bool AXNode::ChildIteratorBase<NodeType,
NextSibling,
PreviousSibling,
FirstChild,
LastChild>::operator!=(const ChildIteratorBase&
rhs) const { … }
template <typename NodeType,
NodeType* (NodeType::*NextSibling)() const,
NodeType* (NodeType::*PreviousSibling)() const,
NodeType* (NodeType::*FirstChild)() const,
NodeType* (NodeType::*LastChild)() const>
AXNode::ChildIteratorBase<NodeType,
NextSibling,
PreviousSibling,
FirstChild,
LastChild>&
AXNode::ChildIteratorBase<NodeType,
NextSibling,
PreviousSibling,
FirstChild,
LastChild>::operator++() { … }
template <typename NodeType,
NodeType* (NodeType::*NextSibling)() const,
NodeType* (NodeType::*PreviousSibling)() const,
NodeType* (NodeType::*FirstChild)() const,
NodeType* (NodeType::*LastChild)() const>
AXNode::ChildIteratorBase<NodeType,
NextSibling,
PreviousSibling,
FirstChild,
LastChild>&
AXNode::ChildIteratorBase<NodeType,
NextSibling,
PreviousSibling,
FirstChild,
LastChild>::operator--() { … }
template <typename NodeType,
NodeType* (NodeType::*NextSibling)() const,
NodeType* (NodeType::*PreviousSibling)() const,
NodeType* (NodeType::*FirstChild)() const,
NodeType* (NodeType::*LastChild)() const>
NodeType* AXNode::ChildIteratorBase<NodeType,
NextSibling,
PreviousSibling,
FirstChild,
LastChild>::get() const { … }
template <typename NodeType,
NodeType* (NodeType::*NextSibling)() const,
NodeType* (NodeType::*PreviousSibling)() const,
NodeType* (NodeType::*FirstChild)() const,
NodeType* (NodeType::*LastChild)() const>
NodeType& AXNode::ChildIteratorBase<NodeType,
NextSibling,
PreviousSibling,
FirstChild,
LastChild>::operator*() const { … }
template <typename NodeType,
NodeType* (NodeType::*NextSibling)() const,
NodeType* (NodeType::*PreviousSibling)() const,
NodeType* (NodeType::*FirstChild)() const,
NodeType* (NodeType::*LastChild)() const>
NodeType* AXNode::ChildIteratorBase<NodeType,
NextSibling,
PreviousSibling,
FirstChild,
LastChild>::operator->() const { … }
}
#endif