| // Copyright 2014 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef WebSelectionBound_h |
| #define WebSelectionBound_h |
| |
| #include "public/platform/WebPoint.h" |
| |
| namespace blink { |
| |
| // An endpoint for an active selection region. |
| // TODO(jdduke): Move this to web/ after downstream code adopts |WebSelection|. |
| struct WebSelectionBound { |
| // TODO(jdduke): Remove the type identifier after downstream code adopts |
| // |WebSelection| for determining bound orientation. |
| enum Type { |
| Caret, |
| SelectionLeft, |
| SelectionRight |
| }; |
| |
| explicit WebSelectionBound(Type type) |
| : type(type) |
| , layerId(0) |
| , isTextDirectionRTL(false) |
| { |
| } |
| |
| // The logical type of the endpoint. Note that this is dependent not only on |
| // the bound's relative location, but also the underlying text direction. |
| Type type; |
| |
| // The id of the platform layer to which the bound should be anchored. |
| int layerId; |
| |
| // The bottom and top coordinates of the edge (caret), in layer coordinates, |
| // that define the selection bound. |
| WebPoint edgeTopInLayer; |
| WebPoint edgeBottomInLayer; |
| |
| // Whether the text direction at this location is RTL. |
| bool isTextDirectionRTL; |
| }; |
| |
| } // namespace blink |
| |
| #endif |