OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
3 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc.
All rights reserved. | 3 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc.
All rights reserved. |
4 * | 4 * |
5 * This library is free software; you can redistribute it and/or | 5 * This library is free software; you can redistribute it and/or |
6 * modify it under the terms of the GNU Library General Public | 6 * modify it under the terms of the GNU Library General Public |
7 * License as published by the Free Software Foundation; either | 7 * License as published by the Free Software Foundation; either |
8 * version 2 of the License, or (at your option) any later version. | 8 * version 2 of the License, or (at your option) any later version. |
9 * | 9 * |
10 * This library is distributed in the hope that it will be useful, | 10 * This library is distributed in the hope that it will be useful, |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
59 EInsideLink elementLinkState() const { return m_elementContext.elementLinkSt
ate(); } | 59 EInsideLink elementLinkState() const { return m_elementContext.elementLinkSt
ate(); } |
60 bool distributedToInsertionPoint() const { return m_elementContext.distribut
edToInsertionPoint(); } | 60 bool distributedToInsertionPoint() const { return m_elementContext.distribut
edToInsertionPoint(); } |
61 | 61 |
62 const ElementResolveContext& elementContext() const { return m_elementContex
t; } | 62 const ElementResolveContext& elementContext() const { return m_elementContex
t; } |
63 | 63 |
64 void setStyle(PassRefPtr<RenderStyle> style) | 64 void setStyle(PassRefPtr<RenderStyle> style) |
65 { | 65 { |
66 // FIXME: Improve RAII of StyleResolverState to remove this function. | 66 // FIXME: Improve RAII of StyleResolverState to remove this function. |
67 m_style = style; | 67 m_style = style; |
68 m_cssToLengthConversionData = CSSToLengthConversionData(m_style.get(), r
ootElementStyle(), document().renderView(), m_style->effectiveZoom()); | 68 m_cssToLengthConversionData = CSSToLengthConversionData(m_style.get(), r
ootElementStyle(), document().renderView(), m_style->effectiveZoom()); |
69 m_fontBuilder.setFontDescription(m_style->fontDescription()); | |
70 } | 69 } |
71 const RenderStyle* style() const { return m_style.get(); } | 70 const RenderStyle* style() const { return m_style.get(); } |
72 RenderStyle* style() { return m_style.get(); } | 71 RenderStyle* style() { return m_style.get(); } |
73 PassRefPtr<RenderStyle> takeStyle() { return m_style.release(); } | 72 PassRefPtr<RenderStyle> takeStyle() { return m_style.release(); } |
74 | 73 |
75 const CSSToLengthConversionData& cssToLengthConversionData() const { return
m_cssToLengthConversionData; } | 74 const CSSToLengthConversionData& cssToLengthConversionData() const { return
m_cssToLengthConversionData; } |
76 | 75 |
77 void setConversionFontSizes(const CSSToLengthConversionData::FontSizes& font
Sizes) { m_cssToLengthConversionData.setFontSizes(fontSizes); } | 76 void setConversionFontSizes(const CSSToLengthConversionData::FontSizes& font
Sizes) { m_cssToLengthConversionData.setFontSizes(fontSizes); } |
78 void setConversionZoom(float zoom) { m_cssToLengthConversionData.setZoom(zoo
m); } | 77 void setConversionZoom(float zoom) { m_cssToLengthConversionData.setZoom(zoo
m); } |
79 | 78 |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
120 return m_elementStyleResources.styleImage(document(), document().textLin
kColors(), style()->color(), propertyId, value); | 119 return m_elementStyleResources.styleImage(document(), document().textLin
kColors(), style()->color(), propertyId, value); |
121 } | 120 } |
122 | 121 |
123 FontBuilder& fontBuilder() { return m_fontBuilder; } | 122 FontBuilder& fontBuilder() { return m_fontBuilder; } |
124 // FIXME: These exist as a primitive way to track mutations to font-related
properties | 123 // FIXME: These exist as a primitive way to track mutations to font-related
properties |
125 // on a RenderStyle. As designed, these are very error-prone, as some caller
s | 124 // on a RenderStyle. As designed, these are very error-prone, as some caller
s |
126 // set these directly on the RenderStyle w/o telling us. Presumably we'll | 125 // set these directly on the RenderStyle w/o telling us. Presumably we'll |
127 // want to design a better wrapper around RenderStyle for tracking these mut
ations | 126 // want to design a better wrapper around RenderStyle for tracking these mut
ations |
128 // and separate it from StyleResolverState. | 127 // and separate it from StyleResolverState. |
129 const FontDescription& parentFontDescription() { return m_parentStyle->fontD
escription(); } | 128 const FontDescription& parentFontDescription() { return m_parentStyle->fontD
escription(); } |
130 void setZoom(float f) { m_fontBuilder.didChangeFontParameters(m_style->setZo
om(f)); } | 129 |
131 void setEffectiveZoom(float f) { m_fontBuilder.didChangeFontParameters(m_sty
le->setEffectiveZoom(f)); } | 130 void setZoom(float f) |
132 void setWritingMode(WritingMode writingMode) { m_fontBuilder.didChangeFontPa
rameters(m_style->setWritingMode(writingMode)); } | 131 { |
133 void setTextOrientation(TextOrientation textOrientation) { m_fontBuilder.did
ChangeFontParameters(m_style->setTextOrientation(textOrientation)); } | 132 if (m_style->setZoom(f)) |
| 133 m_fontBuilder.didChangeEffectiveZoom(); |
| 134 } |
| 135 void setEffectiveZoom(float f) |
| 136 { |
| 137 if (m_style->setEffectiveZoom(f)) |
| 138 m_fontBuilder.didChangeEffectiveZoom(); |
| 139 } |
| 140 void setWritingMode(WritingMode writingMode) |
| 141 { |
| 142 if (m_style->setWritingMode(writingMode)) |
| 143 m_fontBuilder.didChangeWritingMode(); |
| 144 } |
| 145 void setTextOrientation(TextOrientation textOrientation) |
| 146 { |
| 147 if (m_style->setTextOrientation(textOrientation)) |
| 148 m_fontBuilder.didChangeTextOrientation(); |
| 149 } |
134 | 150 |
135 private: | 151 private: |
136 ElementResolveContext m_elementContext; | 152 ElementResolveContext m_elementContext; |
137 RawPtrWillBeMember<Document> m_document; | 153 RawPtrWillBeMember<Document> m_document; |
138 | 154 |
139 // m_style is the primary output for each element's style resolve. | 155 // m_style is the primary output for each element's style resolve. |
140 RefPtr<RenderStyle> m_style; | 156 RefPtr<RenderStyle> m_style; |
141 | 157 |
142 CSSToLengthConversionData m_cssToLengthConversionData; | 158 CSSToLengthConversionData m_cssToLengthConversionData; |
143 | 159 |
144 // m_parentStyle is not always just ElementResolveContext::parentStyle, | 160 // m_parentStyle is not always just ElementResolveContext::parentStyle, |
145 // so we keep it separate. | 161 // so we keep it separate. |
146 RefPtr<RenderStyle> m_parentStyle; | 162 RefPtr<RenderStyle> m_parentStyle; |
147 | 163 |
148 OwnPtrWillBeMember<CSSAnimationUpdate> m_animationUpdate; | 164 OwnPtrWillBeMember<CSSAnimationUpdate> m_animationUpdate; |
149 | 165 |
150 bool m_applyPropertyToRegularStyle; | 166 bool m_applyPropertyToRegularStyle; |
151 bool m_applyPropertyToVisitedLinkStyle; | 167 bool m_applyPropertyToVisitedLinkStyle; |
152 | 168 |
153 FontBuilder m_fontBuilder; | 169 FontBuilder m_fontBuilder; |
154 | 170 |
155 OwnPtr<CachedUAStyle> m_cachedUAStyle; | 171 OwnPtr<CachedUAStyle> m_cachedUAStyle; |
156 | 172 |
157 ElementStyleResources m_elementStyleResources; | 173 ElementStyleResources m_elementStyleResources; |
158 }; | 174 }; |
159 | 175 |
160 } // namespace blink | 176 } // namespace blink |
161 | 177 |
162 #endif // StyleResolverState_h | 178 #endif // StyleResolverState_h |
OLD | NEW |