OLD | NEW |
1 // Copyright 2017 The Chromium Authors. All rights reserved. | 1 // Copyright 2017 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef NGInlineNodeData_h | 5 #ifndef NGInlineNodeData_h |
6 #define NGInlineNodeData_h | 6 #define NGInlineNodeData_h |
7 | 7 |
8 #include "core/CoreExport.h" | 8 #include "core/CoreExport.h" |
9 #include "core/layout/ng/inline/ng_inline_item.h" | 9 #include "core/layout/ng/inline/ng_inline_item.h" |
10 #include "platform/wtf/Vector.h" | 10 #include "platform/wtf/Vector.h" |
11 | 11 |
12 namespace blink { | 12 namespace blink { |
13 | 13 |
14 class LayoutBox; | 14 class LayoutBox; |
15 | 15 |
16 // Data which is required for inline nodes. | 16 // Data which is required for inline nodes. |
17 struct CORE_EXPORT NGInlineNodeData { | 17 struct CORE_EXPORT NGInlineNodeData { |
18 private: | 18 private: |
19 friend class NGInlineNode; | 19 friend class NGInlineNode; |
20 friend class NGInlineNodeForTest; | 20 friend class NGInlineNodeForTest; |
| 21 friend class NGTextOffsetMap; |
21 | 22 |
22 // Text content for all inline items represented by a single NGInlineNode. | 23 // Text content for all inline items represented by a single NGInlineNode. |
23 // Encoded either as UTF-16 or latin-1 depending on the content. | 24 // Encoded either as UTF-16 or latin-1 depending on the content. |
24 String text_content_; | 25 String text_content_; |
25 Vector<NGInlineItem> items_; | 26 Vector<NGInlineItem> items_; |
26 | 27 |
27 // next_sibling_ is only valid after NGInlineNode::PrepareLayout is called. | 28 // next_sibling_ is only valid after NGInlineNode::PrepareLayout is called. |
28 // Calling NGInlineNode::NextSibling will trigger this. | 29 // Calling NGInlineNode::NextSibling will trigger this. |
29 LayoutBox* next_sibling_; | 30 LayoutBox* next_sibling_; |
30 | 31 |
31 // start_inline_ must always be reset within the constructor of NGInlineNode. | 32 // start_inline_ must always be reset within the constructor of NGInlineNode. |
32 LayoutObject* start_inline_; | 33 LayoutObject* start_inline_; |
33 | 34 |
34 // TODO(kojii): This should move to somewhere else when we move PrepareLayout | 35 // TODO(kojii): This should move to somewhere else when we move PrepareLayout |
35 // to the correct place. | 36 // to the correct place. |
36 bool is_bidi_enabled_ = false; | 37 bool is_bidi_enabled_ = false; |
37 }; | 38 }; |
38 | 39 |
39 } // namespace blink | 40 } // namespace blink |
40 | 41 |
41 #endif // NGInlineNode_h | 42 #endif // NGInlineNode_h |
OLD | NEW |