1 // Copyright 2015 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.
8 #include "../platform/WebCommon.h"
9 #include "../platform/WebSelectionBound.h"
13 struct CompositedSelection
;
15 // The active selection region, containing compositing data for the selection
16 // end points as well as metadata for the selection region.
17 class BLINK_EXPORT WebSelection
{
19 enum SelectionType
{ NoSelection
, CaretSelection
, RangeSelection
};
22 explicit WebSelection(const CompositedSelection
&);
24 WebSelection(const WebSelection
&);
26 const WebSelectionBound
& start() const { return m_start
; }
27 const WebSelectionBound
& end() const { return m_end
; }
29 bool isNone() const { return selectionType() == NoSelection
; }
30 bool isCaret() const { return selectionType() == CaretSelection
; }
31 bool isRange() const { return selectionType() == RangeSelection
; }
33 bool isEditable() const { return m_isEditable
; }
34 bool isEmptyTextFormControl() const { return m_isEmptyTextFormControl
; }
37 SelectionType
selectionType() const { return m_selectionType
; }
39 SelectionType m_selectionType
;
41 WebSelectionBound m_start
;
42 WebSelectionBound m_end
;
44 // Whether the selection region consists of editable text.
47 // Whether the selection resides in an empty text form control. Note that
48 // this only applies to caret-type selections.
49 bool m_isEmptyTextFormControl
;
54 #endif // WebSelection_h