OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 1997 Martin Jones (mjones@kde.org) | 2 * Copyright (C) 1997 Martin Jones (mjones@kde.org) |
3 * (C) 1997 Torben Weis (weis@kde.org) | 3 * (C) 1997 Torben Weis (weis@kde.org) |
4 * (C) 1998 Waldo Bastian (bastian@kde.org) | 4 * (C) 1998 Waldo Bastian (bastian@kde.org) |
5 * (C) 1999 Lars Knoll (knoll@kde.org) | 5 * (C) 1999 Lars Knoll (knoll@kde.org) |
6 * (C) 1999 Antti Koivisto (koivisto@kde.org) | 6 * (C) 1999 Antti Koivisto (koivisto@kde.org) |
7 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. | 7 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. |
8 * All rights reserved. | 8 * All rights reserved. |
9 * | 9 * |
10 * This library is free software; you can redistribute it and/or | 10 * This library is free software; you can redistribute it and/or |
(...skipping 228 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
239 EVerticalAlign verticalAlign, | 239 EVerticalAlign verticalAlign, |
240 SubtreeLayoutScope& layouter) { | 240 SubtreeLayoutScope& layouter) { |
241 int oldIntrinsicPaddingBefore = intrinsicPaddingBefore(); | 241 int oldIntrinsicPaddingBefore = intrinsicPaddingBefore(); |
242 int oldIntrinsicPaddingAfter = intrinsicPaddingAfter(); | 242 int oldIntrinsicPaddingAfter = intrinsicPaddingAfter(); |
243 int logicalHeightWithoutIntrinsicPadding = pixelSnappedLogicalHeight() - | 243 int logicalHeightWithoutIntrinsicPadding = pixelSnappedLogicalHeight() - |
244 oldIntrinsicPaddingBefore - | 244 oldIntrinsicPaddingBefore - |
245 oldIntrinsicPaddingAfter; | 245 oldIntrinsicPaddingAfter; |
246 | 246 |
247 int intrinsicPaddingBefore = 0; | 247 int intrinsicPaddingBefore = 0; |
248 switch (verticalAlign) { | 248 switch (verticalAlign) { |
249 case VerticalAlignSub: | 249 case EVerticalAlign::Sub: |
250 case VerticalAlignSuper: | 250 case EVerticalAlign::Super: |
251 case VerticalAlignTextTop: | 251 case EVerticalAlign::TextTop: |
252 case VerticalAlignTextBottom: | 252 case EVerticalAlign::TextBottom: |
253 case VerticalAlignLength: | 253 case EVerticalAlign::Length: |
254 case VerticalAlignBaseline: { | 254 case EVerticalAlign::Baseline: { |
255 int baseline = cellBaselinePosition(); | 255 int baseline = cellBaselinePosition(); |
256 if (baseline > borderBefore() + paddingBefore()) | 256 if (baseline > borderBefore() + paddingBefore()) |
257 intrinsicPaddingBefore = section()->rowBaseline(rowIndex()) - | 257 intrinsicPaddingBefore = section()->rowBaseline(rowIndex()) - |
258 (baseline - oldIntrinsicPaddingBefore); | 258 (baseline - oldIntrinsicPaddingBefore); |
259 break; | 259 break; |
260 } | 260 } |
261 case VerticalAlignTop: | 261 case EVerticalAlign::Top: |
262 break; | 262 break; |
263 case VerticalAlignMiddle: | 263 case EVerticalAlign::Middle: |
264 intrinsicPaddingBefore = | 264 intrinsicPaddingBefore = |
265 (rowHeight - logicalHeightWithoutIntrinsicPadding) / 2; | 265 (rowHeight - logicalHeightWithoutIntrinsicPadding) / 2; |
266 break; | 266 break; |
267 case VerticalAlignBottom: | 267 case EVerticalAlign::Bottom: |
268 intrinsicPaddingBefore = rowHeight - logicalHeightWithoutIntrinsicPadding; | 268 intrinsicPaddingBefore = rowHeight - logicalHeightWithoutIntrinsicPadding; |
269 break; | 269 break; |
270 case VerticalAlignBaselineMiddle: | 270 case EVerticalAlign::BaselineMiddle: |
271 break; | 271 break; |
272 } | 272 } |
273 | 273 |
274 int intrinsicPaddingAfter = | 274 int intrinsicPaddingAfter = |
275 rowHeight - logicalHeightWithoutIntrinsicPadding - intrinsicPaddingBefore; | 275 rowHeight - logicalHeightWithoutIntrinsicPadding - intrinsicPaddingBefore; |
276 setIntrinsicPaddingBefore(intrinsicPaddingBefore); | 276 setIntrinsicPaddingBefore(intrinsicPaddingBefore); |
277 setIntrinsicPaddingAfter(intrinsicPaddingAfter); | 277 setIntrinsicPaddingAfter(intrinsicPaddingAfter); |
278 | 278 |
279 // FIXME: Changing an intrinsic padding shouldn't trigger a relayout as it | 279 // FIXME: Changing an intrinsic padding shouldn't trigger a relayout as it |
280 // only shifts the cell inside the row but doesn't change the logical height. | 280 // only shifts the cell inside the row but doesn't change the logical height. |
(...skipping 1112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1393 return; | 1393 return; |
1394 | 1394 |
1395 // We only care if the scrollbar that affects our intrinsic padding has been | 1395 // We only care if the scrollbar that affects our intrinsic padding has been |
1396 // added. | 1396 // added. |
1397 if ((isHorizontalWritingMode() && !horizontalScrollbarChanged) || | 1397 if ((isHorizontalWritingMode() && !horizontalScrollbarChanged) || |
1398 (!isHorizontalWritingMode() && !verticalScrollbarChanged)) | 1398 (!isHorizontalWritingMode() && !verticalScrollbarChanged)) |
1399 return; | 1399 return; |
1400 | 1400 |
1401 // Shrink our intrinsic padding as much as possible to accommodate the | 1401 // Shrink our intrinsic padding as much as possible to accommodate the |
1402 // scrollbar. | 1402 // scrollbar. |
1403 if (style()->verticalAlign() == VerticalAlignMiddle) { | 1403 if (style()->verticalAlign() == EVerticalAlign::Middle) { |
1404 LayoutUnit totalHeight = logicalHeight(); | 1404 LayoutUnit totalHeight = logicalHeight(); |
1405 LayoutUnit heightWithoutIntrinsicPadding = | 1405 LayoutUnit heightWithoutIntrinsicPadding = |
1406 totalHeight - intrinsicPaddingBefore() - intrinsicPaddingAfter(); | 1406 totalHeight - intrinsicPaddingBefore() - intrinsicPaddingAfter(); |
1407 totalHeight -= scrollbarHeight; | 1407 totalHeight -= scrollbarHeight; |
1408 LayoutUnit newBeforePadding = | 1408 LayoutUnit newBeforePadding = |
1409 (totalHeight - heightWithoutIntrinsicPadding) / 2; | 1409 (totalHeight - heightWithoutIntrinsicPadding) / 2; |
1410 LayoutUnit newAfterPadding = | 1410 LayoutUnit newAfterPadding = |
1411 totalHeight - heightWithoutIntrinsicPadding - newBeforePadding; | 1411 totalHeight - heightWithoutIntrinsicPadding - newBeforePadding; |
1412 setIntrinsicPaddingBefore(newBeforePadding.toInt()); | 1412 setIntrinsicPaddingBefore(newBeforePadding.toInt()); |
1413 setIntrinsicPaddingAfter(newAfterPadding.toInt()); | 1413 setIntrinsicPaddingAfter(newAfterPadding.toInt()); |
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1481 cb->adjustChildDebugRect(rect); | 1481 cb->adjustChildDebugRect(rect); |
1482 | 1482 |
1483 return rect; | 1483 return rect; |
1484 } | 1484 } |
1485 | 1485 |
1486 void LayoutTableCell::adjustChildDebugRect(LayoutRect& r) const { | 1486 void LayoutTableCell::adjustChildDebugRect(LayoutRect& r) const { |
1487 r.move(0, -intrinsicPaddingBefore()); | 1487 r.move(0, -intrinsicPaddingBefore()); |
1488 } | 1488 } |
1489 | 1489 |
1490 } // namespace blink | 1490 } // namespace blink |
OLD | NEW |