OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserved. | 2 * Copyright (C) 2006, 2007, 2008, 2009, 2010 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 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
61 } | 61 } |
62 | 62 |
63 void ShadowBlockElement::updateStyleForPart(PseudoId pseudoId) | 63 void ShadowBlockElement::updateStyleForPart(PseudoId pseudoId) |
64 { | 64 { |
65 if (renderer()->style()->styleType() != pseudoId) | 65 if (renderer()->style()->styleType() != pseudoId) |
66 renderer()->setStyle(createStyleForPart(renderer()->parent(), pseudoId))
; | 66 renderer()->setStyle(createStyleForPart(renderer()->parent(), pseudoId))
; |
67 } | 67 } |
68 | 68 |
69 PassRefPtr<ShadowBlockElement> ShadowBlockElement::createForPart(HTMLElement* sh
adowParent, PseudoId pseudoId) | 69 PassRefPtr<ShadowBlockElement> ShadowBlockElement::createForPart(HTMLElement* sh
adowParent, PseudoId pseudoId) |
70 { | 70 { |
71 RenderObject* parentRenderer = shadowParent->renderer(); | 71 RefPtr<ShadowBlockElement> part = create(shadowParent); |
| 72 part->initAsPart(pseudoId); |
| 73 return part.release(); |
| 74 } |
| 75 |
| 76 void ShadowBlockElement::initAsPart(PseudoId pseudoId) |
| 77 { |
| 78 RenderObject* parentRenderer = shadowParent()->renderer(); |
72 RefPtr<RenderStyle> styleForPart = createStyleForPart(parentRenderer, pseudo
Id); | 79 RefPtr<RenderStyle> styleForPart = createStyleForPart(parentRenderer, pseudo
Id); |
73 RefPtr<ShadowBlockElement> part = create(shadowParent); | 80 setRenderer(createRenderer(parentRenderer->renderArena(), styleForPart.get()
)); |
74 part->setRenderer(part->createRenderer(parentRenderer->renderArena(), styleF
orPart.get())); | 81 renderer()->setStyle(styleForPart.release()); |
75 part->renderer()->setStyle(styleForPart.release()); | 82 setAttached(); |
76 part->setAttached(); | 83 setInDocument(); |
77 part->setInDocument(); | |
78 return part.release(); | |
79 } | 84 } |
80 | 85 |
81 PassRefPtr<RenderStyle> ShadowBlockElement::createStyleForPart(RenderObject* par
entRenderer, PseudoId pseudoId) | 86 PassRefPtr<RenderStyle> ShadowBlockElement::createStyleForPart(RenderObject* par
entRenderer, PseudoId pseudoId) |
82 { | 87 { |
83 RefPtr<RenderStyle> styleForPart; | 88 RefPtr<RenderStyle> styleForPart; |
84 RenderStyle* pseudoStyle = parentRenderer->getCachedPseudoStyle(pseudoId); | 89 RenderStyle* pseudoStyle = parentRenderer->getCachedPseudoStyle(pseudoId); |
85 if (pseudoStyle) | 90 if (pseudoStyle) |
86 styleForPart = RenderStyle::clone(pseudoStyle); | 91 styleForPart = RenderStyle::clone(pseudoStyle); |
87 else | 92 else |
88 styleForPart = RenderStyle::create(); | 93 styleForPart = RenderStyle::create(); |
(...skipping 18 matching lines...) Expand all Loading... |
107 { | 112 { |
108 return adoptRef(new ShadowInputElement(shadowParent)); | 113 return adoptRef(new ShadowInputElement(shadowParent)); |
109 } | 114 } |
110 | 115 |
111 ShadowInputElement::ShadowInputElement(HTMLElement* shadowParent) | 116 ShadowInputElement::ShadowInputElement(HTMLElement* shadowParent) |
112 : ShadowElement<HTMLInputElement>(inputTag, shadowParent) | 117 : ShadowElement<HTMLInputElement>(inputTag, shadowParent) |
113 { | 118 { |
114 } | 119 } |
115 | 120 |
116 } // namespace WebCore | 121 } // namespace WebCore |
OLD | NEW |