OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2000 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 2000 Lars Knoll (knoll@kde.org) |
3 * Copyright (C) 2003, 2004, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All r
ight reserved. | 3 * Copyright (C) 2003, 2004, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All r
ight reserved. |
4 * Copyright (C) 2010 Google Inc. All rights reserved. | 4 * Copyright (C) 2010 Google Inc. All rights reserved. |
5 * Copyright (C) 2014 Adobe Systems Inc. | 5 * Copyright (C) 2014 Adobe Systems Inc. |
6 * | 6 * |
7 * This library is free software; you can redistribute it and/or | 7 * This library is free software; you can redistribute it and/or |
8 * modify it under the terms of the GNU Library General Public | 8 * modify it under the terms of the GNU Library General Public |
9 * License as published by the Free Software Foundation; either | 9 * License as published by the Free Software Foundation; either |
10 * version 2 of the License, or (at your option) any later version. | 10 * version 2 of the License, or (at your option) any later version. |
(...skipping 16 matching lines...) Expand all Loading... |
27 #include "core/layout/api/LineLayoutItem.h" | 27 #include "core/layout/api/LineLayoutItem.h" |
28 #include "core/layout/api/LineLayoutText.h" | 28 #include "core/layout/api/LineLayoutText.h" |
29 #include "wtf/Allocator.h" | 29 #include "wtf/Allocator.h" |
30 #include "wtf/Vector.h" | 30 #include "wtf/Vector.h" |
31 | 31 |
32 namespace blink { | 32 namespace blink { |
33 | 33 |
34 class InlineIterator; | 34 class InlineIterator; |
35 | 35 |
36 struct BidiRun; | 36 struct BidiRun; |
| 37 struct BidiIsolatedRun; |
37 | 38 |
38 template <class Iterator, class Run> class BidiResolver; | 39 template <class Iterator, class Run, class IsolatedRun> class BidiResolver; |
39 template <class Iterator> class MidpointState; | 40 template <class Iterator> class MidpointState; |
40 typedef BidiResolver<InlineIterator, BidiRun> InlineBidiResolver; | 41 typedef BidiResolver<InlineIterator, BidiRun, BidiIsolatedRun> InlineBidiResolve
r; |
41 typedef MidpointState<InlineIterator> LineMidpointState; | 42 typedef MidpointState<InlineIterator> LineMidpointState; |
42 | 43 |
43 // This class allows us to ensure lineboxes are created in the right place on th
e line when | 44 // This class allows us to ensure lineboxes are created in the right place on th
e line when |
44 // an out-of-flow positioned object or an empty inline is encountered between a
trailing space | 45 // an out-of-flow positioned object or an empty inline is encountered between a
trailing space |
45 // and subsequent spaces and we want to ignore (i.e. collapse) surplus whitespac
e. So for example: | 46 // and subsequent spaces and we want to ignore (i.e. collapse) surplus whitespac
e. So for example: |
46 // <div>X <span></span> Y</div> | 47 // <div>X <span></span> Y</div> |
47 // or | 48 // or |
48 // <div>X <div style="position: absolute"></div> Y</div> | 49 // <div>X <div style="position: absolute"></div> Y</div> |
49 // In both of the above snippets the inline and the positioned object occur afte
r a trailing space | 50 // In both of the above snippets the inline and the positioned object occur afte
r a trailing space |
50 // and before a space that will cause our line breaking algorithm to start ignor
ing spaces. When it | 51 // and before a space that will cause our line breaking algorithm to start ignor
ing spaces. When it |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
87 void updateMidpointsForTrailingObjects(LineMidpointState&, const InlineItera
tor& lBreak, CollapseFirstSpaceOrNot); | 88 void updateMidpointsForTrailingObjects(LineMidpointState&, const InlineItera
tor& lBreak, CollapseFirstSpaceOrNot); |
88 | 89 |
89 private: | 90 private: |
90 LineLayoutText m_whitespace; | 91 LineLayoutText m_whitespace; |
91 Vector<LineLayoutItem, 4> m_objects; | 92 Vector<LineLayoutItem, 4> m_objects; |
92 }; | 93 }; |
93 | 94 |
94 } | 95 } |
95 | 96 |
96 #endif // TrailingObjects_h | 97 #endif // TrailingObjects_h |
OLD | NEW |