OLD | NEW |
---|---|
1 /* | 1 /* |
2 * Copyright (C) 2003, 2004, 2005, 2006, 2007 Apple Inc. All rights reserved. | 2 * Copyright (C) 2003, 2004, 2005, 2006, 2007 Apple Inc. All rights reserved. |
3 * | 3 * |
4 * This library is free software; you can redistribute it and/or | 4 * This library is free software; you can redistribute it and/or |
5 * modify it under the terms of the GNU Library General Public | 5 * modify it under the terms of the GNU Library General Public |
6 * License as published by the Free Software Foundation; either | 6 * License as published by the Free Software Foundation; either |
7 * version 2 of the License, or (at your option) any later version. | 7 * version 2 of the License, or (at your option) any later version. |
8 * | 8 * |
9 * This library is distributed in the hope that it will be useful, | 9 * This library is distributed in the hope that it will be useful, |
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of | 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
(...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
208 void setHasTextDescendants() { m_hasTextDescendants = true; } | 208 void setHasTextDescendants() { m_hasTextDescendants = true; } |
209 | 209 |
210 void checkConsistency() const; | 210 void checkConsistency() const; |
211 void setHasBadChildList(); | 211 void setHasBadChildList(); |
212 | 212 |
213 // Line visual and layout overflow are in the coordinate space of the block. This means that they aren't purely physical directions. | 213 // Line visual and layout overflow are in the coordinate space of the block. This means that they aren't purely physical directions. |
214 // For horizontal-tb and vertical-lr they will match physical directions, bu t for horizontal-bt and vertical-rl, the top/bottom and left/right | 214 // For horizontal-tb and vertical-lr they will match physical directions, bu t for horizontal-bt and vertical-rl, the top/bottom and left/right |
215 // respectively are flipped when compared to their physical counterparts. F or example minX is on the left in vertical-lr, but it is on the right in vertica l-rl. | 215 // respectively are flipped when compared to their physical counterparts. F or example minX is on the left in vertical-lr, but it is on the right in vertica l-rl. |
216 LayoutRect layoutOverflowRect(LayoutUnit lineTop, LayoutUnit lineBottom) con st | 216 LayoutRect layoutOverflowRect(LayoutUnit lineTop, LayoutUnit lineBottom) con st |
217 { | 217 { |
218 // FIXME: the call to enclosingLayoutRect() below is temporary and shoul d be removed once | 218 return m_overflow ? m_overflow->layoutOverflowRect() : frameRectIncludin gLineHeight(lineTop, lineBottom); |
219 // the transition to LayoutUnit-based types is complete (crbug.com/32123 7) | |
220 return m_overflow ? m_overflow->layoutOverflowRect() : enclosingLayoutRe ct(frameRectIncludingLineHeight(lineTop, lineBottom)); | |
221 } | 219 } |
222 LayoutUnit logicalTopLayoutOverflow(LayoutUnit lineTop) const | 220 LayoutUnit logicalTopLayoutOverflow(LayoutUnit lineTop) const |
223 { | 221 { |
224 if (m_overflow) | 222 if (m_overflow) |
225 return isHorizontal() ? m_overflow->layoutOverflowRect().y() : m_ove rflow->layoutOverflowRect().x(); | 223 return isHorizontal() ? m_overflow->layoutOverflowRect().y() : m_ove rflow->layoutOverflowRect().x(); |
226 return lineTop; | 224 return lineTop; |
227 } | 225 } |
228 LayoutUnit logicalBottomLayoutOverflow(LayoutUnit lineBottom) const | 226 LayoutUnit logicalBottomLayoutOverflow(LayoutUnit lineBottom) const |
229 { | 227 { |
230 if (m_overflow) | 228 if (m_overflow) |
231 return isHorizontal() ? m_overflow->layoutOverflowRect().maxY() : m_ overflow->layoutOverflowRect().maxX(); | 229 return isHorizontal() ? m_overflow->layoutOverflowRect().maxY() : m_ overflow->layoutOverflowRect().maxX(); |
232 return lineBottom; | 230 return lineBottom; |
233 } | 231 } |
234 LayoutRect logicalLayoutOverflowRect(LayoutUnit lineTop, LayoutUnit lineBott om) const | 232 LayoutRect logicalLayoutOverflowRect(LayoutUnit lineTop, LayoutUnit lineBott om) const |
235 { | 233 { |
236 LayoutRect result = layoutOverflowRect(lineTop, lineBottom); | 234 LayoutRect result = layoutOverflowRect(lineTop, lineBottom); |
237 if (!layoutObject().isHorizontalWritingMode()) | 235 if (!layoutObject().isHorizontalWritingMode()) |
238 result = result.transposedRect(); | 236 result = result.transposedRect(); |
239 return result; | 237 return result; |
240 } | 238 } |
241 | 239 |
242 LayoutRect visualOverflowRect(LayoutUnit lineTop, LayoutUnit lineBottom) con st | 240 LayoutRect visualOverflowRect(LayoutUnit lineTop, LayoutUnit lineBottom) con st |
243 { | 241 { |
244 // FIXME: the call to enclosingLayoutRect() below is temporary and shoul d be removed once | 242 return m_overflow ? m_overflow->visualOverflowRect() : frameRectIncludin gLineHeight(lineTop, lineBottom); |
245 // the transition to LayoutUnit-based types is complete (crbug.com/32123 7) | |
246 return m_overflow ? m_overflow->visualOverflowRect() : enclosingLayoutRe ct(frameRectIncludingLineHeight(lineTop, lineBottom)); | |
247 } | 243 } |
248 LayoutUnit logicalLeftVisualOverflow() const { return m_overflow ? (isHorizo ntal() ? m_overflow->visualOverflowRect().x() : m_overflow->visualOverflowRect() .y()) : logicalLeft(); } | 244 LayoutUnit logicalLeftVisualOverflow() const { return m_overflow ? (isHorizo ntal() ? m_overflow->visualOverflowRect().x() : m_overflow->visualOverflowRect() .y()) : logicalLeft(); } |
249 LayoutUnit logicalRightVisualOverflow() const { return m_overflow ? (isHoriz ontal() ? m_overflow->visualOverflowRect().maxX() : m_overflow->visualOverflowRe ct().maxY()) : static_cast<LayoutUnit>(logicalRight().ceil()); } | 245 LayoutUnit logicalRightVisualOverflow() const { return m_overflow ? (isHoriz ontal() ? m_overflow->visualOverflowRect().maxX() : m_overflow->visualOverflowRe ct().maxY()) : static_cast<LayoutUnit>(logicalRight().ceil()); } |
250 LayoutUnit logicalTopVisualOverflow(LayoutUnit lineTop) const | 246 LayoutUnit logicalTopVisualOverflow(LayoutUnit lineTop) const |
251 { | 247 { |
252 if (m_overflow) | 248 if (m_overflow) |
253 return isHorizontal() ? m_overflow->visualOverflowRect().y() : m_ove rflow->visualOverflowRect().x(); | 249 return isHorizontal() ? m_overflow->visualOverflowRect().y() : m_ove rflow->visualOverflowRect().x(); |
254 return lineTop; | 250 return lineTop; |
255 } | 251 } |
256 LayoutUnit logicalBottomVisualOverflow(LayoutUnit lineBottom) const | 252 LayoutUnit logicalBottomVisualOverflow(LayoutUnit lineBottom) const |
257 { | 253 { |
258 if (m_overflow) | 254 if (m_overflow) |
259 return isHorizontal() ? m_overflow->visualOverflowRect().maxY() : m_ overflow->visualOverflowRect().maxX(); | 255 return isHorizontal() ? m_overflow->visualOverflowRect().maxY() : m_ overflow->visualOverflowRect().maxX(); |
260 return lineBottom; | 256 return lineBottom; |
261 } | 257 } |
262 LayoutRect logicalVisualOverflowRect(LayoutUnit lineTop, LayoutUnit lineBott om) const | 258 LayoutRect logicalVisualOverflowRect(LayoutUnit lineTop, LayoutUnit lineBott om) const |
263 { | 259 { |
264 LayoutRect result = visualOverflowRect(lineTop, lineBottom); | 260 LayoutRect result = visualOverflowRect(lineTop, lineBottom); |
265 if (!layoutObject().isHorizontalWritingMode()) | 261 if (!layoutObject().isHorizontalWritingMode()) |
266 result = result.transposedRect(); | 262 result = result.transposedRect(); |
267 return result; | 263 return result; |
268 } | 264 } |
269 | 265 |
270 void setOverflowFromLogicalRects(const LayoutRect& logicalLayoutOverflow, co nst LayoutRect& logicalVisualOverflow, LayoutUnit lineTop, LayoutUnit lineBottom ); | 266 void setOverflowFromLogicalRects(const LayoutRect& logicalLayoutOverflow, co nst LayoutRect& logicalVisualOverflow, LayoutUnit lineTop, LayoutUnit lineBottom ); |
271 | 267 |
272 LayoutRect frameRectIncludingLineHeight(LayoutUnit lineTop, LayoutUnit lineB ottom) const | 268 LayoutRect frameRectIncludingLineHeight(LayoutUnit lineTop, LayoutUnit lineB ottom) const |
273 { | 269 { |
274 if (isHorizontal()) | 270 if (isHorizontal()) |
275 return LayoutRect(m_topLeft.x(), lineTop.toFloat(), width(), (lineBo ttom - lineTop).toFloat()); | 271 return LayoutRect(m_topLeft.x(), lineTop.toFloat(), width(), (lineBo ttom - lineTop).toFloat()); |
szager1
2015/06/16 20:29:00
Can you fix this method, and the next one as well?
jbroman
2015/06/16 23:50:29
Done.
| |
276 return LayoutRect(lineTop.toFloat(), m_topLeft.y(), (lineBottom - lineTo p).toFloat(), height()); | 272 return LayoutRect(lineTop.toFloat(), m_topLeft.y(), (lineBottom - lineTo p).toFloat(), height()); |
277 } | 273 } |
278 | 274 |
279 LayoutRect logicalFrameRectIncludingLineHeight(LayoutUnit lineTop, LayoutUni t lineBottom) const | 275 LayoutRect logicalFrameRectIncludingLineHeight(LayoutUnit lineTop, LayoutUni t lineBottom) const |
280 { | 276 { |
281 return LayoutRect(logicalLeft(), lineTop.toFloat(), logicalWidth(), (lin eBottom - lineTop).toFloat()); | 277 return LayoutRect(logicalLeft(), lineTop.toFloat(), logicalWidth(), (lin eBottom - lineTop).toFloat()); |
282 } | 278 } |
283 | 279 |
284 bool descendantsHaveSameLineHeightAndBaseline() const { return m_descendants HaveSameLineHeightAndBaseline; } | 280 bool descendantsHaveSameLineHeightAndBaseline() const { return m_descendants HaveSameLineHeightAndBaseline; } |
285 void clearDescendantsHaveSameLineHeightAndBaseline() | 281 void clearDescendantsHaveSameLineHeightAndBaseline() |
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
364 } | 360 } |
365 | 361 |
366 } // namespace blink | 362 } // namespace blink |
367 | 363 |
368 #ifndef NDEBUG | 364 #ifndef NDEBUG |
369 // Outside the WebCore namespace for ease of invocation from gdb. | 365 // Outside the WebCore namespace for ease of invocation from gdb. |
370 void showTree(const blink::InlineFlowBox*); | 366 void showTree(const blink::InlineFlowBox*); |
371 #endif | 367 #endif |
372 | 368 |
373 #endif // InlineFlowBox_h | 369 #endif // InlineFlowBox_h |
OLD | NEW |