chromium/third_party/blink/renderer/core/editing/forward.h

// Copyright 2017 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// This file contains forward declarations of template classes in editing/

#ifndef THIRD_PARTY_BLINK_RENDERER_CORE_EDITING_FORWARD_H_
#define THIRD_PARTY_BLINK_RENDERER_CORE_EDITING_FORWARD_H_

namespace blink {

enum class TextAffinity;

class NodeTraversal;
class FlatTreeTraversal;

template <typename Traversal>
class EditingAlgorithm;
EditingStrategy;
EditingInFlatTreeStrategy;

template <typename Strategy>
class PositionTemplate;
Position;
PositionInFlatTree;

template <typename Strategy>
class EphemeralRangeTemplate;
EphemeralRange;
EphemeralRangeInFlatTree;

template <typename Strategy>
class PositionWithAffinityTemplate;
PositionWithAffinity;
PositionInFlatTreeWithAffinity;

template <typename Strategy>
class SelectionTemplate;
SelectionInDOMTree;
SelectionInFlatTree;

template <typename Strategy>
class VisiblePositionTemplate;
VisiblePosition;
VisiblePositionInFlatTree;

template <typename Strategy>
class VisibleSelectionTemplate;
VisibleSelection;
VisibleSelectionInFlatTree;

}  // namespace blink

#endif  // THIRD_PARTY_BLINK_RENDERER_CORE_EDITING_FORWARD_H_