OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "config.h" | 5 #include "config.h" |
6 #include "core/rendering/RenderMultiColumnSpannerSet.h" | 6 #include "core/rendering/RenderMultiColumnSpannerSet.h" |
7 | 7 |
8 namespace blink { | 8 namespace blink { |
9 | 9 |
10 // RenderMultiColumnSpannerSet follows: | 10 // RenderMultiColumnSpannerSet follows: |
11 | 11 |
12 RenderMultiColumnSpannerSet* RenderMultiColumnSpannerSet::createAnonymous(Render
MultiColumnFlowThread* flowThread, RenderStyle* parentStyle, RenderBox* renderer
) | 12 RenderMultiColumnSpannerSet* RenderMultiColumnSpannerSet::createAnonymous(Render
MultiColumnFlowThread* flowThread, RenderStyle* parentStyle, RenderBox* renderer
) |
13 { | 13 { |
14 RenderMultiColumnSpannerSet* newSpanner = new RenderMultiColumnSpannerSet(fl
owThread, renderer); | 14 RenderMultiColumnSpannerSet* newSpanner = new RenderMultiColumnSpannerSet(fl
owThread, renderer); |
15 Document& document = flowThread->document(); | 15 Document& document = flowThread->document(); |
16 newSpanner->setDocumentForAnonymous(&document); | 16 newSpanner->setDocumentForAnonymous(&document); |
17 newSpanner->setStyle(RenderStyle::createAnonymousStyleWithDisplay(parentStyl
e, BLOCK)); | 17 RefPtr<RenderStyle> newStyle = RenderStyle::createAnonymousStyleWithDisplay(
parentStyle, BLOCK); |
| 18 newSpanner->updateMarginProperties(newStyle.get(), renderer); |
| 19 newSpanner->setStyle(newStyle); |
18 return newSpanner; | 20 return newSpanner; |
19 } | 21 } |
20 | 22 |
21 RenderMultiColumnSpannerSet::RenderMultiColumnSpannerSet(RenderMultiColumnFlowTh
read* flowThread, RenderBox* renderer) | 23 RenderMultiColumnSpannerSet::RenderMultiColumnSpannerSet(RenderMultiColumnFlowTh
read* flowThread, RenderBox* renderer) |
22 : RenderMultiColumnSet(flowThread) | 24 : RenderMultiColumnSet(flowThread) |
23 , m_renderer(renderer) | 25 , m_renderer(renderer) |
24 { | 26 { |
25 } | 27 } |
26 | 28 |
| 29 void RenderMultiColumnSpannerSet::updateMarginProperties(RenderStyle* newStyle,
const RenderObject* spannerBlock) const |
| 30 { |
| 31 RefPtr<RenderStyle> spannerBlockStyle = spannerBlock->style(); |
| 32 newStyle->setMarginTop(spannerBlockStyle->marginTop()); |
| 33 newStyle->setMarginBottom(spannerBlockStyle->marginBottom()); |
| 34 newStyle->setMarginLeft(spannerBlockStyle->marginLeft()); |
| 35 newStyle->setMarginRight(spannerBlockStyle->marginRight()); |
| 36 } |
| 37 |
27 bool RenderMultiColumnSpannerSet::recalculateColumnHeight(BalancedHeightCalculat
ion calculationMode) | 38 bool RenderMultiColumnSpannerSet::recalculateColumnHeight(BalancedHeightCalculat
ion calculationMode) |
28 { | 39 { |
29 m_columnHeight = m_renderer->logicalHeight() + m_renderer->marginLogicalHeig
ht(); | 40 m_columnHeight = m_renderer->logicalHeight(); |
30 return false; | 41 return false; |
31 } | 42 } |
32 | 43 |
33 void RenderMultiColumnSpannerSet::computeLogicalHeight(LayoutUnit, LayoutUnit lo
gicalTop, LogicalExtentComputedValues& computedValues) const | 44 void RenderMultiColumnSpannerSet::computeLogicalHeight(LayoutUnit, LayoutUnit lo
gicalTop, LogicalExtentComputedValues& computedValues) const |
34 { | 45 { |
35 computedValues.m_extent = m_renderer->logicalHeight() + m_renderer->marginLo
gicalHeight(); | 46 computedValues.m_extent = m_renderer->logicalHeight(); |
36 computedValues.m_position = logicalTop; | 47 computedValues.m_position = logicalTop + m_renderer->marginTop(); |
| 48 computedValues.m_margins.m_before = marginBefore(); |
| 49 computedValues.m_margins.m_after = marginAfter(); |
37 } | 50 } |
38 | 51 |
39 LayoutUnit RenderMultiColumnSpannerSet::pageLogicalHeight() const | 52 LayoutUnit RenderMultiColumnSpannerSet::pageLogicalHeight() const |
40 { | 53 { |
41 return m_renderer->logicalHeight() + m_renderer->marginLogicalHeight(); | 54 return m_renderer->logicalHeight(); |
42 } | 55 } |
43 | 56 |
44 const char* RenderMultiColumnSpannerSet::renderName() const | 57 const char* RenderMultiColumnSpannerSet::renderName() const |
45 { | 58 { |
46 return "RenderMultiColumnSpannerSet"; | 59 return "RenderMultiColumnSpannerSet"; |
47 } | 60 } |
48 | 61 |
49 } | 62 } |
OLD | NEW |