1197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch// Copyright 2014 The Chromium Authors. All rights reserved.
2197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch// Use of this source code is governed by a BSD-style license that can be
3197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch// found in the LICENSE file./*
4197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch
5197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch#ifndef PositionWithAffinity_h
6197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch#define PositionWithAffinity_h
7197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch
8197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch#include "core/dom/Position.h"
9197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch#include "core/editing/TextAffinity.h"
10197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch
11c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)namespace blink {
12197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch
13197021e6b966cfb06891637935ef33fff06433d1Ben Murdochclass PositionWithAffinity {
14197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch    DISALLOW_ALLOCATION();
15197021e6b966cfb06891637935ef33fff06433d1Ben Murdochpublic:
16197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch    PositionWithAffinity(const Position&, EAffinity = DOWNSTREAM);
17197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch    PositionWithAffinity();
18197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch    ~PositionWithAffinity();
19197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch
20197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch    EAffinity affinity() const { return m_affinity; }
21197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch    const Position& position() const { return m_position; }
22197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch
23197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch    void trace(Visitor*);
24197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch
25197021e6b966cfb06891637935ef33fff06433d1Ben Murdochprivate:
26197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch    Position m_position;
27197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch    EAffinity m_affinity;
28197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch};
29197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch
30c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)} // namespace blink
31197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch
32197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch#endif // PositionWithAffinity_h
33