#include "third_party/blink/renderer/core/editing/visible_position.h"
#include <ostream>
#include "third_party/blink/renderer/core/core_export.h"
#include "third_party/blink/renderer/core/dom/document.h"
#include "third_party/blink/renderer/core/dom/text.h"
#include "third_party/blink/renderer/core/editing/editing_utilities.h"
#include "third_party/blink/renderer/core/editing/local_caret_rect.h"
#include "third_party/blink/renderer/core/editing/ng_flat_tree_shorthands.h"
#include "third_party/blink/renderer/core/editing/text_affinity.h"
#include "third_party/blink/renderer/core/editing/visible_units.h"
#include "third_party/blink/renderer/core/html/html_element.h"
#include "third_party/blink/renderer/core/html_names.h"
#include "third_party/blink/renderer/core/layout/inline/offset_mapping.h"
#include "third_party/blink/renderer/core/layout/layout_object.h"
#include "third_party/blink/renderer/platform/bindings/exception_state.h"
#include "ui/gfx/geometry/quad_f.h"
namespace blink {
template <typename Strategy>
VisiblePositionTemplate<Strategy>::VisiblePositionTemplate()
#if DCHECK_IS_ON()
: … { … }
template <typename Strategy>
VisiblePositionTemplate<Strategy>::VisiblePositionTemplate(
const PositionWithAffinityTemplate<Strategy>& position_with_affinity)
: … { … }
template <typename Strategy>
void VisiblePositionTemplate<Strategy>::Trace(Visitor* visitor) const { … }
template <typename Strategy>
static inline bool InDifferentLinesOfSameInlineFormattingContext(
const PositionWithAffinityTemplate<Strategy>& position1,
const PositionWithAffinityTemplate<Strategy>& position2) { … }
template <typename Strategy>
VisiblePositionTemplate<Strategy> VisiblePositionTemplate<Strategy>::Create(
const PositionWithAffinityTemplate<Strategy>& position_with_affinity) { … }
template <typename Strategy>
VisiblePositionTemplate<Strategy> VisiblePositionTemplate<Strategy>::AfterNode(
const Node& node) { … }
template <typename Strategy>
VisiblePositionTemplate<Strategy> VisiblePositionTemplate<Strategy>::BeforeNode(
const Node& node) { … }
template <typename Strategy>
VisiblePositionTemplate<Strategy>
VisiblePositionTemplate<Strategy>::FirstPositionInNode(const Node& node) { … }
template <typename Strategy>
VisiblePositionTemplate<Strategy>
VisiblePositionTemplate<Strategy>::InParentAfterNode(const Node& node) { … }
template <typename Strategy>
VisiblePositionTemplate<Strategy>
VisiblePositionTemplate<Strategy>::InParentBeforeNode(const Node& node) { … }
template <typename Strategy>
VisiblePositionTemplate<Strategy>
VisiblePositionTemplate<Strategy>::LastPositionInNode(const Node& node) { … }
VisiblePosition CreateVisiblePosition(const Position& position,
TextAffinity affinity) { … }
VisiblePosition CreateVisiblePosition(
const PositionWithAffinity& position_with_affinity) { … }
VisiblePositionInFlatTree CreateVisiblePosition(
const PositionInFlatTree& position,
TextAffinity affinity) { … }
VisiblePositionInFlatTree CreateVisiblePosition(
const PositionInFlatTreeWithAffinity& position_with_affinity) { … }
#if DCHECK_IS_ON()
template <typename Strategy>
void VisiblePositionTemplate<Strategy>::ShowTreeForThis() const { … }
#endif
template <typename Strategy>
bool VisiblePositionTemplate<Strategy>::IsValid() const { … }
template <typename Strategy>
bool VisiblePositionTemplate<Strategy>::IsValidFor(
const Document& document) const { … }
template class CORE_TEMPLATE_EXPORT VisiblePositionTemplate<EditingStrategy>;
template class CORE_TEMPLATE_EXPORT
VisiblePositionTemplate<EditingInFlatTreeStrategy>;
std::ostream& operator<<(std::ostream& ostream,
const VisiblePosition& position) { … }
std::ostream& operator<<(std::ostream& ostream,
const VisiblePositionInFlatTree& position) { … }
}
#if DCHECK_IS_ON()
void ShowTree(const blink::VisiblePosition* vpos) { … }
void ShowTree(const blink::VisiblePosition& vpos) { … }
#endif