OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2012 Apple Inc. All rights reserved. | 2 * Copyright (C) 2012 Apple Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
6 * are met: | 6 * are met: |
7 * 1. Redistributions of source code must retain the above copyright | 7 * 1. Redistributions of source code must retain the above copyright |
8 * notice, this list of conditions and the following disclaimer. | 8 * notice, this list of conditions and the following disclaimer. |
9 * 2. Redistributions in binary form must reproduce the above copyright | 9 * 2. Redistributions in binary form must reproduce the above copyright |
10 * notice, this list of conditions and the following disclaimer in the | 10 * notice, this list of conditions and the following disclaimer in the |
(...skipping 314 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
325 return newWidth != logicalWidth(); | 325 return newWidth != logicalWidth(); |
326 } | 326 } |
327 | 327 |
328 bool LayoutMultiColumnFlowThread::isPageLogicalHeightKnown() const | 328 bool LayoutMultiColumnFlowThread::isPageLogicalHeightKnown() const |
329 { | 329 { |
330 if (LayoutMultiColumnSet* columnSet = lastMultiColumnSet()) | 330 if (LayoutMultiColumnSet* columnSet = lastMultiColumnSet()) |
331 return columnSet->isPageLogicalHeightKnown(); | 331 return columnSet->isPageLogicalHeightKnown(); |
332 return false; | 332 return false; |
333 } | 333 } |
334 | 334 |
335 LayoutSize LayoutMultiColumnFlowThread::flowThreadTranslationAtOffset(LayoutUnit
offsetInFlowThread, CoordinateSpaceConversion mode) const | 335 LayoutSize LayoutMultiColumnFlowThread::flowThreadTranslationAtOffset(LayoutUnit
offsetInFlowThread, PageBoundaryRule rule, CoordinateSpaceConversion mode) cons
t |
336 { | 336 { |
337 if (!hasValidColumnSetInfo()) | 337 if (!hasValidColumnSetInfo()) |
338 return LayoutSize(0, 0); | 338 return LayoutSize(0, 0); |
339 LayoutMultiColumnSet* columnSet = columnSetAtBlockOffset(offsetInFlowThread)
; | 339 LayoutMultiColumnSet* columnSet = columnSetAtBlockOffset(offsetInFlowThread)
; |
340 if (!columnSet) | 340 if (!columnSet) |
341 return LayoutSize(0, 0); | 341 return LayoutSize(0, 0); |
342 return columnSet->flowThreadTranslationAtOffset(offsetInFlowThread, mode); | 342 return columnSet->flowThreadTranslationAtOffset(offsetInFlowThread, rule, mo
de); |
343 } | 343 } |
344 | 344 |
345 LayoutSize LayoutMultiColumnFlowThread::flowThreadTranslationAtPoint(const Layou
tPoint& flowThreadPoint, CoordinateSpaceConversion mode) const | 345 LayoutSize LayoutMultiColumnFlowThread::flowThreadTranslationAtPoint(const Layou
tPoint& flowThreadPoint, CoordinateSpaceConversion mode) const |
346 { | 346 { |
347 LayoutPoint flippedPoint = flipForWritingMode(flowThreadPoint); | 347 LayoutPoint flippedPoint = flipForWritingMode(flowThreadPoint); |
348 LayoutUnit blockOffset = isHorizontalWritingMode() ? flippedPoint.y() : flip
pedPoint.x(); | 348 LayoutUnit blockOffset = isHorizontalWritingMode() ? flippedPoint.y() : flip
pedPoint.x(); |
349 return flowThreadTranslationAtOffset(blockOffset, mode); | 349 |
| 350 // If block direction is flipped, points at a column boundary belong in the
former column, not |
| 351 // the latter. |
| 352 PageBoundaryRule rule = hasFlippedBlocksWritingMode() ? AssociateWithFormerP
age : AssociateWithLatterPage; |
| 353 |
| 354 return flowThreadTranslationAtOffset(blockOffset, rule, mode); |
350 } | 355 } |
351 | 356 |
352 LayoutPoint LayoutMultiColumnFlowThread::flowThreadPointToVisualPoint(const Layo
utPoint& flowThreadPoint) const | 357 LayoutPoint LayoutMultiColumnFlowThread::flowThreadPointToVisualPoint(const Layo
utPoint& flowThreadPoint) const |
353 { | 358 { |
354 return flowThreadPoint + flowThreadTranslationAtPoint(flowThreadPoint, Coord
inateSpaceConversion::Visual); | 359 return flowThreadPoint + flowThreadTranslationAtPoint(flowThreadPoint, Coord
inateSpaceConversion::Visual); |
355 } | 360 } |
356 | 361 |
357 LayoutPoint LayoutMultiColumnFlowThread::visualPointToFlowThreadPoint(const Layo
utPoint& visualPoint) const | 362 LayoutPoint LayoutMultiColumnFlowThread::visualPointToFlowThreadPoint(const Layo
utPoint& visualPoint) const |
358 { | 363 { |
359 LayoutUnit blockOffset = isHorizontalWritingMode() ? visualPoint.y() : visua
lPoint.x(); | 364 LayoutUnit blockOffset = isHorizontalWritingMode() ? visualPoint.y() : visua
lPoint.x(); |
(...skipping 691 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1051 { | 1056 { |
1052 return MultiColumnLayoutState(m_lastSetWorkedOn); | 1057 return MultiColumnLayoutState(m_lastSetWorkedOn); |
1053 } | 1058 } |
1054 | 1059 |
1055 void LayoutMultiColumnFlowThread::restoreMultiColumnLayoutState(const MultiColum
nLayoutState& state) | 1060 void LayoutMultiColumnFlowThread::restoreMultiColumnLayoutState(const MultiColum
nLayoutState& state) |
1056 { | 1061 { |
1057 m_lastSetWorkedOn = state.columnSet(); | 1062 m_lastSetWorkedOn = state.columnSet(); |
1058 } | 1063 } |
1059 | 1064 |
1060 } // namespace blink | 1065 } // namespace blink |
OLD | NEW |