OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) | 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) |
4 * (C) 2005 Allan Sandfeld Jensen (kde@carewolf.com) | 4 * (C) 2005 Allan Sandfeld Jensen (kde@carewolf.com) |
5 * (C) 2005, 2006 Samuel Weinig (sam.weinig@gmail.com) | 5 * (C) 2005, 2006 Samuel Weinig (sam.weinig@gmail.com) |
6 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserv
ed. | 6 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserv
ed. |
7 * Copyright (C) 2013 Adobe Systems Incorporated. All rights reserved. | 7 * Copyright (C) 2013 Adobe Systems Incorporated. All rights reserved. |
8 * | 8 * |
9 * This library is free software; you can redistribute it and/or | 9 * This library is free software; you can redistribute it and/or |
10 * modify it under the terms of the GNU Library General Public | 10 * modify it under the terms of the GNU Library General Public |
(...skipping 2112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2123 } | 2123 } |
2124 | 2124 |
2125 bool LayoutBox::autoWidthShouldFitContent() const | 2125 bool LayoutBox::autoWidthShouldFitContent() const |
2126 { | 2126 { |
2127 return node() && (isHTMLInputElement(*node()) || isHTMLSelectElement(*node()
) || isHTMLButtonElement(*node()) | 2127 return node() && (isHTMLInputElement(*node()) || isHTMLSelectElement(*node()
) || isHTMLButtonElement(*node()) |
2128 || isHTMLTextAreaElement(*node()) || (isHTMLLegendElement(*node()) && !s
tyle()->hasOutOfFlowPosition())); | 2128 || isHTMLTextAreaElement(*node()) || (isHTMLLegendElement(*node()) && !s
tyle()->hasOutOfFlowPosition())); |
2129 } | 2129 } |
2130 | 2130 |
2131 void LayoutBox::computeMarginsForDirection(MarginDirection flowDirection, const
LayoutBlock* containingBlock, LayoutUnit containerWidth, LayoutUnit childWidth,
LayoutUnit& marginStart, LayoutUnit& marginEnd, Length marginStartLength, Length
marginEndLength) const | 2131 void LayoutBox::computeMarginsForDirection(MarginDirection flowDirection, const
LayoutBlock* containingBlock, LayoutUnit containerWidth, LayoutUnit childWidth,
LayoutUnit& marginStart, LayoutUnit& marginEnd, Length marginStartLength, Length
marginEndLength) const |
2132 { | 2132 { |
| 2133 // First assert that we're not calling this method on box types that don't s
upport margins. |
| 2134 ASSERT(!isTableCell()); |
| 2135 ASSERT(!isTableRow()); |
| 2136 ASSERT(!isTableSection()); |
| 2137 ASSERT(!isLayoutTableCol()); |
2133 if (flowDirection == BlockDirection || isFloating() || isInline()) { | 2138 if (flowDirection == BlockDirection || isFloating() || isInline()) { |
2134 if (isTableCell() && flowDirection == BlockDirection) { | |
2135 // FIXME: Not right if we allow cells to have different directionali
ty than the table. If we do allow this, though, | |
2136 // we may just do it with an extra anonymous block inside the cell. | |
2137 marginStart = 0; | |
2138 marginEnd = 0; | |
2139 return; | |
2140 } | |
2141 | |
2142 // Margins are calculated with respect to the logical width of | 2139 // Margins are calculated with respect to the logical width of |
2143 // the containing block (8.3) | 2140 // the containing block (8.3) |
2144 // Inline blocks/tables and floats don't have their margins increased. | 2141 // Inline blocks/tables and floats don't have their margins increased. |
2145 marginStart = minimumValueForLength(marginStartLength, containerWidth); | 2142 marginStart = minimumValueForLength(marginStartLength, containerWidth); |
2146 marginEnd = minimumValueForLength(marginEndLength, containerWidth); | 2143 marginEnd = minimumValueForLength(marginEndLength, containerWidth); |
2147 return; | 2144 return; |
2148 } | 2145 } |
2149 | 2146 |
2150 if (containingBlock->isFlexibleBox()) { | 2147 if (containingBlock->isFlexibleBox()) { |
2151 // We need to let flexbox handle the margin adjustment - otherwise, flex
box | 2148 // We need to let flexbox handle the margin adjustment - otherwise, flex
box |
(...skipping 2617 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4769 bool LayoutBox::canRenderBorderImage() const | 4766 bool LayoutBox::canRenderBorderImage() const |
4770 { | 4767 { |
4771 if (!style()->hasBorderDecoration()) | 4768 if (!style()->hasBorderDecoration()) |
4772 return false; | 4769 return false; |
4773 | 4770 |
4774 StyleImage* borderImage = style()->borderImage().image(); | 4771 StyleImage* borderImage = style()->borderImage().image(); |
4775 return borderImage && borderImage->canRender(*this, style()->effectiveZoom()
) && borderImage->isLoaded(); | 4772 return borderImage && borderImage->canRender(*this, style()->effectiveZoom()
) && borderImage->isLoaded(); |
4776 } | 4773 } |
4777 | 4774 |
4778 } // namespace blink | 4775 } // namespace blink |
OLD | NEW |