1// Copyright 2014 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
5#ifndef WebSelectionBound_h
6#define WebSelectionBound_h
7
8#include "public/platform/WebPoint.h"
9
10namespace blink {
11
12// An endpoint for an active selection region.
13struct WebSelectionBound {
14    enum Type {
15        Caret,
16        SelectionLeft,
17        SelectionRight
18    };
19
20    explicit WebSelectionBound(Type type)
21        : type(type)
22        , layerId(0)
23    {
24    }
25
26    // The logical type of the endpoint. Note that this is dependent not only on
27    // the bound's relative location, but also the underlying text direction.
28    Type type;
29
30    // The id of the platform layer to which the bound should be anchored.
31    int layerId;
32
33    // The bottom and top coordinates of the edge (caret), in layer coordinates,
34    // that define the selection bound.
35    WebPoint edgeTopInLayer;
36    WebPoint edgeBottomInLayer;
37};
38
39} // namespace blink
40
41#endif
42