OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
3 * (C) 2004-2005 Allan Sandfeld Jensen (kde@carewolf.com) | 3 * (C) 2004-2005 Allan Sandfeld Jensen (kde@carewolf.com) |
4 * Copyright (C) 2006, 2007 Nicholas Shanks (webkit@nickshanks.com) | 4 * Copyright (C) 2006, 2007 Nicholas Shanks (webkit@nickshanks.com) |
5 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc. All r
ights reserved. | 5 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc. All r
ights reserved. |
6 * Copyright (C) 2007 Alexey Proskuryakov <ap@webkit.org> | 6 * Copyright (C) 2007 Alexey Proskuryakov <ap@webkit.org> |
7 * Copyright (C) 2007, 2008 Eric Seidel <eric@webkit.org> | 7 * Copyright (C) 2007, 2008 Eric Seidel <eric@webkit.org> |
8 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t
orchmobile.com/) | 8 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t
orchmobile.com/) |
9 * Copyright (c) 2011, Code Aurora Forum. All rights reserved. | 9 * Copyright (c) 2011, Code Aurora Forum. All rights reserved. |
10 * Copyright (C) Research In Motion Limited 2011. All rights reserved. | 10 * Copyright (C) Research In Motion Limited 2011. All rights reserved. |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
46 void CSSToStyleMap::mapFillAttachment(StyleResolverState&, FillLayer* layer, con
st CSSValue& value) | 46 void CSSToStyleMap::mapFillAttachment(StyleResolverState&, FillLayer* layer, con
st CSSValue& value) |
47 { | 47 { |
48 if (value.isInitialValue()) { | 48 if (value.isInitialValue()) { |
49 layer->setAttachment(FillLayer::initialFillAttachment(layer->type())); | 49 layer->setAttachment(FillLayer::initialFillAttachment(layer->type())); |
50 return; | 50 return; |
51 } | 51 } |
52 | 52 |
53 if (!value.isPrimitiveValue()) | 53 if (!value.isPrimitiveValue()) |
54 return; | 54 return; |
55 | 55 |
56 CSSPrimitiveValue& primitiveValue = toCSSPrimitiveValue(value); | 56 const CSSPrimitiveValue& primitiveValue = toCSSPrimitiveValue(value); |
57 switch (primitiveValue.getValueID()) { | 57 switch (primitiveValue.getValueID()) { |
58 case CSSValueFixed: | 58 case CSSValueFixed: |
59 layer->setAttachment(FixedBackgroundAttachment); | 59 layer->setAttachment(FixedBackgroundAttachment); |
60 break; | 60 break; |
61 case CSSValueScroll: | 61 case CSSValueScroll: |
62 layer->setAttachment(ScrollBackgroundAttachment); | 62 layer->setAttachment(ScrollBackgroundAttachment); |
63 break; | 63 break; |
64 case CSSValueLocal: | 64 case CSSValueLocal: |
65 layer->setAttachment(LocalBackgroundAttachment); | 65 layer->setAttachment(LocalBackgroundAttachment); |
66 break; | 66 break; |
67 default: | 67 default: |
68 return; | 68 return; |
69 } | 69 } |
70 } | 70 } |
71 | 71 |
72 void CSSToStyleMap::mapFillClip(StyleResolverState&, FillLayer* layer, const CSS
Value& value) | 72 void CSSToStyleMap::mapFillClip(StyleResolverState&, FillLayer* layer, const CSS
Value& value) |
73 { | 73 { |
74 if (value.isInitialValue()) { | 74 if (value.isInitialValue()) { |
75 layer->setClip(FillLayer::initialFillClip(layer->type())); | 75 layer->setClip(FillLayer::initialFillClip(layer->type())); |
76 return; | 76 return; |
77 } | 77 } |
78 | 78 |
79 if (!value.isPrimitiveValue()) | 79 if (!value.isPrimitiveValue()) |
80 return; | 80 return; |
81 | 81 |
82 CSSPrimitiveValue& primitiveValue = toCSSPrimitiveValue(value); | 82 const CSSPrimitiveValue& primitiveValue = toCSSPrimitiveValue(value); |
83 layer->setClip(primitiveValue); | 83 layer->setClip(primitiveValue); |
84 } | 84 } |
85 | 85 |
86 void CSSToStyleMap::mapFillComposite(StyleResolverState&, FillLayer* layer, cons
t CSSValue& value) | 86 void CSSToStyleMap::mapFillComposite(StyleResolverState&, FillLayer* layer, cons
t CSSValue& value) |
87 { | 87 { |
88 if (value.isInitialValue()) { | 88 if (value.isInitialValue()) { |
89 layer->setComposite(FillLayer::initialFillComposite(layer->type())); | 89 layer->setComposite(FillLayer::initialFillComposite(layer->type())); |
90 return; | 90 return; |
91 } | 91 } |
92 | 92 |
93 if (!value.isPrimitiveValue()) | 93 if (!value.isPrimitiveValue()) |
94 return; | 94 return; |
95 | 95 |
96 CSSPrimitiveValue& primitiveValue = toCSSPrimitiveValue(value); | 96 const CSSPrimitiveValue& primitiveValue = toCSSPrimitiveValue(value); |
97 layer->setComposite(primitiveValue); | 97 layer->setComposite(primitiveValue); |
98 } | 98 } |
99 | 99 |
100 void CSSToStyleMap::mapFillBlendMode(StyleResolverState&, FillLayer* layer, cons
t CSSValue& value) | 100 void CSSToStyleMap::mapFillBlendMode(StyleResolverState&, FillLayer* layer, cons
t CSSValue& value) |
101 { | 101 { |
102 if (value.isInitialValue()) { | 102 if (value.isInitialValue()) { |
103 layer->setBlendMode(FillLayer::initialFillBlendMode(layer->type())); | 103 layer->setBlendMode(FillLayer::initialFillBlendMode(layer->type())); |
104 return; | 104 return; |
105 } | 105 } |
106 | 106 |
107 if (!value.isPrimitiveValue()) | 107 if (!value.isPrimitiveValue()) |
108 return; | 108 return; |
109 | 109 |
110 CSSPrimitiveValue& primitiveValue = toCSSPrimitiveValue(value); | 110 const CSSPrimitiveValue& primitiveValue = toCSSPrimitiveValue(value); |
111 layer->setBlendMode(primitiveValue); | 111 layer->setBlendMode(primitiveValue); |
112 } | 112 } |
113 | 113 |
114 void CSSToStyleMap::mapFillOrigin(StyleResolverState&, FillLayer* layer, const C
SSValue& value) | 114 void CSSToStyleMap::mapFillOrigin(StyleResolverState&, FillLayer* layer, const C
SSValue& value) |
115 { | 115 { |
116 if (value.isInitialValue()) { | 116 if (value.isInitialValue()) { |
117 layer->setOrigin(FillLayer::initialFillOrigin(layer->type())); | 117 layer->setOrigin(FillLayer::initialFillOrigin(layer->type())); |
118 return; | 118 return; |
119 } | 119 } |
120 | 120 |
121 if (!value.isPrimitiveValue()) | 121 if (!value.isPrimitiveValue()) |
122 return; | 122 return; |
123 | 123 |
124 CSSPrimitiveValue& primitiveValue = toCSSPrimitiveValue(value); | 124 const CSSPrimitiveValue& primitiveValue = toCSSPrimitiveValue(value); |
125 layer->setOrigin(primitiveValue); | 125 layer->setOrigin(primitiveValue); |
126 } | 126 } |
127 | 127 |
128 | 128 |
129 void CSSToStyleMap::mapFillImage(StyleResolverState& state, FillLayer* layer, co
nst CSSValue& value) | 129 void CSSToStyleMap::mapFillImage(StyleResolverState& state, FillLayer* layer, co
nst CSSValue& value) |
130 { | 130 { |
131 if (value.isInitialValue()) { | 131 if (value.isInitialValue()) { |
132 layer->setImage(FillLayer::initialFillImage(layer->type())); | 132 layer->setImage(FillLayer::initialFillImage(layer->type())); |
133 return; | 133 return; |
134 } | 134 } |
135 | 135 |
136 CSSPropertyID property = layer->type() == BackgroundFillLayer ? CSSPropertyB
ackgroundImage : CSSPropertyWebkitMaskImage; | 136 CSSPropertyID property = layer->type() == BackgroundFillLayer ? CSSPropertyB
ackgroundImage : CSSPropertyWebkitMaskImage; |
137 layer->setImage(state.styleImage(property, value)); | 137 layer->setImage(state.styleImage(property, value)); |
138 } | 138 } |
139 | 139 |
140 void CSSToStyleMap::mapFillRepeatX(StyleResolverState&, FillLayer* layer, const
CSSValue& value) | 140 void CSSToStyleMap::mapFillRepeatX(StyleResolverState&, FillLayer* layer, const
CSSValue& value) |
141 { | 141 { |
142 if (value.isInitialValue()) { | 142 if (value.isInitialValue()) { |
143 layer->setRepeatX(FillLayer::initialFillRepeatX(layer->type())); | 143 layer->setRepeatX(FillLayer::initialFillRepeatX(layer->type())); |
144 return; | 144 return; |
145 } | 145 } |
146 | 146 |
147 if (!value.isPrimitiveValue()) | 147 if (!value.isPrimitiveValue()) |
148 return; | 148 return; |
149 | 149 |
150 CSSPrimitiveValue& primitiveValue = toCSSPrimitiveValue(value); | 150 const CSSPrimitiveValue& primitiveValue = toCSSPrimitiveValue(value); |
151 layer->setRepeatX(primitiveValue); | 151 layer->setRepeatX(primitiveValue); |
152 } | 152 } |
153 | 153 |
154 void CSSToStyleMap::mapFillRepeatY(StyleResolverState&, FillLayer* layer, const
CSSValue& value) | 154 void CSSToStyleMap::mapFillRepeatY(StyleResolverState&, FillLayer* layer, const
CSSValue& value) |
155 { | 155 { |
156 if (value.isInitialValue()) { | 156 if (value.isInitialValue()) { |
157 layer->setRepeatY(FillLayer::initialFillRepeatY(layer->type())); | 157 layer->setRepeatY(FillLayer::initialFillRepeatY(layer->type())); |
158 return; | 158 return; |
159 } | 159 } |
160 | 160 |
161 if (!value.isPrimitiveValue()) | 161 if (!value.isPrimitiveValue()) |
162 return; | 162 return; |
163 | 163 |
164 CSSPrimitiveValue& primitiveValue = toCSSPrimitiveValue(value); | 164 const CSSPrimitiveValue& primitiveValue = toCSSPrimitiveValue(value); |
165 layer->setRepeatY(primitiveValue); | 165 layer->setRepeatY(primitiveValue); |
166 } | 166 } |
167 | 167 |
168 void CSSToStyleMap::mapFillSize(StyleResolverState& state, FillLayer* layer, con
st CSSValue& value) | 168 void CSSToStyleMap::mapFillSize(StyleResolverState& state, FillLayer* layer, con
st CSSValue& value) |
169 { | 169 { |
170 if (value.isInitialValue()) { | 170 if (value.isInitialValue()) { |
171 layer->setSizeType(FillLayer::initialFillSizeType(layer->type())); | 171 layer->setSizeType(FillLayer::initialFillSizeType(layer->type())); |
172 layer->setSizeLength(FillLayer::initialFillSizeLength(layer->type())); | 172 layer->setSizeLength(FillLayer::initialFillSizeLength(layer->type())); |
173 return; | 173 return; |
174 } | 174 } |
175 | 175 |
176 if (!value.isPrimitiveValue()) | 176 if (!value.isPrimitiveValue()) |
177 return; | 177 return; |
178 | 178 |
179 CSSPrimitiveValue& primitiveValue = toCSSPrimitiveValue(value); | 179 const CSSPrimitiveValue& primitiveValue = toCSSPrimitiveValue(value); |
180 if (primitiveValue.getValueID() == CSSValueContain) | 180 if (primitiveValue.getValueID() == CSSValueContain) |
181 layer->setSizeType(Contain); | 181 layer->setSizeType(Contain); |
182 else if (primitiveValue.getValueID() == CSSValueCover) | 182 else if (primitiveValue.getValueID() == CSSValueCover) |
183 layer->setSizeType(Cover); | 183 layer->setSizeType(Cover); |
184 else | 184 else |
185 layer->setSizeType(SizeLength); | 185 layer->setSizeType(SizeLength); |
186 | 186 |
187 LengthSize b = FillLayer::initialFillSizeLength(layer->type()); | 187 LengthSize b = FillLayer::initialFillSizeLength(layer->type()); |
188 | 188 |
189 if (primitiveValue.getValueID() == CSSValueContain || primitiveValue.getValu
eID() == CSSValueCover) { | 189 if (primitiveValue.getValueID() == CSSValueContain || primitiveValue.getValu
eID() == CSSValueCover) { |
190 layer->setSizeLength(b); | 190 layer->setSizeLength(b); |
191 return; | 191 return; |
192 } | 192 } |
193 | 193 |
194 Length firstLength; | 194 Length firstLength; |
195 Length secondLength; | 195 Length secondLength; |
196 | 196 |
197 if (Pair* pair = primitiveValue.getPairValue()) { | 197 if (Pair* pair = primitiveValue.getPairValue()) { |
198 firstLength = StyleBuilderConverter::convertLengthOrAuto(state, CSSValue
(*pair->first())); | 198 firstLength = StyleBuilderConverter::convertLengthOrAuto(state, pair->fi
rst()); |
199 secondLength = StyleBuilderConverter::convertLengthOrAuto(state, CSSValu
e(*pair->second())); | 199 secondLength = StyleBuilderConverter::convertLengthOrAuto(state, pair->s
econd()); |
200 } else { | 200 } else { |
201 firstLength = StyleBuilderConverter::convertLengthOrAuto(state, value); | 201 firstLength = StyleBuilderConverter::convertLengthOrAuto(state, value); |
202 secondLength = Length(); | 202 secondLength = Length(); |
203 } | 203 } |
204 | 204 |
205 b.setWidth(firstLength); | 205 b.setWidth(firstLength); |
206 b.setHeight(secondLength); | 206 b.setHeight(secondLength); |
207 layer->setSizeLength(b); | 207 layer->setSizeLength(b); |
208 } | 208 } |
209 | 209 |
210 void CSSToStyleMap::mapFillXPosition(StyleResolverState& state, FillLayer* layer
, const CSSValue& value) | 210 void CSSToStyleMap::mapFillXPosition(StyleResolverState& state, FillLayer* layer
, const CSSValue& value) |
211 { | 211 { |
212 if (value.isInitialValue()) { | 212 if (value.isInitialValue()) { |
213 layer->setXPosition(FillLayer::initialFillXPosition(layer->type())); | 213 layer->setXPosition(FillLayer::initialFillXPosition(layer->type())); |
214 return; | 214 return; |
215 } | 215 } |
216 | 216 |
217 if (!value.isPrimitiveValue()) | 217 if (!value.isPrimitiveValue()) |
218 return; | 218 return; |
219 | 219 |
220 CSSPrimitiveValue* primitiveValue = &toCSSPrimitiveValue(value); | 220 CSSPrimitiveValue primitiveValue = toCSSPrimitiveValue(value); |
221 Pair* pair = primitiveValue->getPairValue(); | 221 Pair* pair = primitiveValue.getPairValue(); |
222 if (pair) | 222 if (pair) |
223 primitiveValue = pair->second(); | 223 primitiveValue = pair->second(); |
224 | 224 |
225 Length length = primitiveValue->convertToLength(state.cssToLengthConversionD
ata()); | 225 Length length = primitiveValue.convertToLength(state.cssToLengthConversionDa
ta()); |
226 | 226 |
227 layer->setXPosition(length); | 227 layer->setXPosition(length); |
228 if (pair) | 228 if (pair) |
229 layer->setBackgroundXOrigin(*(pair->first())); | 229 layer->setBackgroundXOrigin(pair->first()); |
230 } | 230 } |
231 | 231 |
232 void CSSToStyleMap::mapFillYPosition(StyleResolverState& state, FillLayer* layer
, const CSSValue& value) | 232 void CSSToStyleMap::mapFillYPosition(StyleResolverState& state, FillLayer* layer
, const CSSValue& value) |
233 { | 233 { |
234 if (value.isInitialValue()) { | 234 if (value.isInitialValue()) { |
235 layer->setYPosition(FillLayer::initialFillYPosition(layer->type())); | 235 layer->setYPosition(FillLayer::initialFillYPosition(layer->type())); |
236 return; | 236 return; |
237 } | 237 } |
238 | 238 |
239 if (!value.isPrimitiveValue()) | 239 if (!value.isPrimitiveValue()) |
240 return; | 240 return; |
241 | 241 |
242 CSSPrimitiveValue* primitiveValue = &toCSSPrimitiveValue(value); | 242 CSSPrimitiveValue primitiveValue = toCSSPrimitiveValue(value); |
243 Pair* pair = primitiveValue->getPairValue(); | 243 Pair* pair = primitiveValue.getPairValue(); |
244 if (pair) | 244 if (pair) |
245 primitiveValue = pair->second(); | 245 primitiveValue = pair->second(); |
246 | 246 |
247 Length length = primitiveValue->convertToLength(state.cssToLengthConversionD
ata()); | 247 Length length = primitiveValue.convertToLength(state.cssToLengthConversionDa
ta()); |
248 | 248 |
249 layer->setYPosition(length); | 249 layer->setYPosition(length); |
250 if (pair) | 250 if (pair) |
251 layer->setBackgroundYOrigin(*(pair->first())); | 251 layer->setBackgroundYOrigin(pair->first()); |
252 } | 252 } |
253 | 253 |
254 void CSSToStyleMap::mapFillMaskSourceType(StyleResolverState&, FillLayer* layer,
const CSSValue& value) | 254 void CSSToStyleMap::mapFillMaskSourceType(StyleResolverState&, FillLayer* layer,
const CSSValue& value) |
255 { | 255 { |
256 EMaskSourceType type = FillLayer::initialFillMaskSourceType(layer->type()); | 256 EMaskSourceType type = FillLayer::initialFillMaskSourceType(layer->type()); |
257 if (value.isInitialValue()) { | 257 if (value.isInitialValue()) { |
258 layer->setMaskSourceType(type); | 258 layer->setMaskSourceType(type); |
259 return; | 259 return; |
260 } | 260 } |
261 | 261 |
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
329 default: | 329 default: |
330 ASSERT_NOT_REACHED(); | 330 ASSERT_NOT_REACHED(); |
331 return CSSAnimationData::initialFillMode(); | 331 return CSSAnimationData::initialFillMode(); |
332 } | 332 } |
333 } | 333 } |
334 | 334 |
335 double CSSToStyleMap::mapAnimationIterationCount(const CSSValue& value) | 335 double CSSToStyleMap::mapAnimationIterationCount(const CSSValue& value) |
336 { | 336 { |
337 if (value.isInitialValue()) | 337 if (value.isInitialValue()) |
338 return CSSAnimationData::initialIterationCount(); | 338 return CSSAnimationData::initialIterationCount(); |
339 CSSPrimitiveValue& primitiveValue = toCSSPrimitiveValue(value); | 339 const CSSPrimitiveValue& primitiveValue = toCSSPrimitiveValue(value); |
340 if (primitiveValue.getValueID() == CSSValueInfinite) | 340 if (primitiveValue.getValueID() == CSSValueInfinite) |
341 return std::numeric_limits<double>::infinity(); | 341 return std::numeric_limits<double>::infinity(); |
342 return primitiveValue.getFloatValue(); | 342 return primitiveValue.getFloatValue(); |
343 } | 343 } |
344 | 344 |
345 AtomicString CSSToStyleMap::mapAnimationName(const CSSValue& value) | 345 AtomicString CSSToStyleMap::mapAnimationName(const CSSValue& value) |
346 { | 346 { |
347 if (value.isInitialValue()) | 347 if (value.isInitialValue()) |
348 return CSSAnimationData::initialName(); | 348 return CSSAnimationData::initialName(); |
349 CSSPrimitiveValue& primitiveValue = toCSSPrimitiveValue(value); | 349 const CSSPrimitiveValue& primitiveValue = toCSSPrimitiveValue(value); |
350 if (primitiveValue.getValueID() == CSSValueNone) | 350 if (primitiveValue.getValueID() == CSSValueNone) |
351 return CSSAnimationData::initialName(); | 351 return CSSAnimationData::initialName(); |
352 return AtomicString(primitiveValue.getStringValue()); | 352 return AtomicString(primitiveValue.getStringValue()); |
353 } | 353 } |
354 | 354 |
355 EAnimPlayState CSSToStyleMap::mapAnimationPlayState(const CSSValue& value) | 355 EAnimPlayState CSSToStyleMap::mapAnimationPlayState(const CSSValue& value) |
356 { | 356 { |
357 if (value.isInitialValue()) | 357 if (value.isInitialValue()) |
358 return CSSAnimationData::initialPlayState(); | 358 return CSSAnimationData::initialPlayState(); |
359 if (toCSSPrimitiveValue(value).getValueID() == CSSValuePaused) | 359 if (toCSSPrimitiveValue(value).getValueID() == CSSValuePaused) |
360 return AnimPlayStatePaused; | 360 return AnimPlayStatePaused; |
361 ASSERT(toCSSPrimitiveValue(value).getValueID() == CSSValueRunning); | 361 ASSERT(toCSSPrimitiveValue(value).getValueID() == CSSValueRunning); |
362 return AnimPlayStatePlaying; | 362 return AnimPlayStatePlaying; |
363 } | 363 } |
364 | 364 |
365 CSSTransitionData::TransitionProperty CSSToStyleMap::mapAnimationProperty(const
CSSValue& value) | 365 CSSTransitionData::TransitionProperty CSSToStyleMap::mapAnimationProperty(const
CSSValue& value) |
366 { | 366 { |
367 if (value.isInitialValue()) | 367 if (value.isInitialValue()) |
368 return CSSTransitionData::initialProperty(); | 368 return CSSTransitionData::initialProperty(); |
369 CSSPrimitiveValue& primitiveValue = toCSSPrimitiveValue(value); | 369 const CSSPrimitiveValue& primitiveValue = toCSSPrimitiveValue(value); |
370 if (primitiveValue.isCustomIdent()) | 370 if (primitiveValue.isCustomIdent()) |
371 return CSSTransitionData::TransitionProperty(primitiveValue.getStringVal
ue()); | 371 return CSSTransitionData::TransitionProperty(primitiveValue.getStringVal
ue()); |
372 if (primitiveValue.getValueID() == CSSValueAll) | 372 if (primitiveValue.getValueID() == CSSValueAll) |
373 return CSSTransitionData::TransitionProperty(CSSTransitionData::Transiti
onAll); | 373 return CSSTransitionData::TransitionProperty(CSSTransitionData::Transiti
onAll); |
374 if (primitiveValue.getValueID() == CSSValueNone) | 374 if (primitiveValue.getValueID() == CSSValueNone) |
375 return CSSTransitionData::TransitionProperty(CSSTransitionData::Transiti
onNone); | 375 return CSSTransitionData::TransitionProperty(CSSTransitionData::Transiti
onNone); |
376 return CSSTransitionData::TransitionProperty(primitiveValue.getPropertyID())
; | 376 return CSSTransitionData::TransitionProperty(primitiveValue.getPropertyID())
; |
377 } | 377 } |
378 | 378 |
379 PassRefPtr<TimingFunction> CSSToStyleMap::mapAnimationTimingFunction(const CSSVa
lue& value, bool allowStepMiddle) | 379 PassRefPtr<TimingFunction> CSSToStyleMap::mapAnimationTimingFunction(const CSSVa
lue& value, bool allowStepMiddle) |
380 { | 380 { |
381 // FIXME: We should probably only call into this function with a valid | 381 // FIXME: We should probably only call into this function with a valid |
382 // single timing function value which isn't initial or inherit. We can | 382 // single timing function value which isn't initial or inherit. We can |
383 // currently get into here with initial since the parser expands unset | 383 // currently get into here with initial since the parser expands unset |
384 // properties in shorthands to initial. | 384 // properties in shorthands to initial. |
385 | 385 |
386 if (value.isPrimitiveValue()) { | 386 if (value.isPrimitiveValue()) { |
387 CSSPrimitiveValue& primitiveValue = toCSSPrimitiveValue(value); | 387 const CSSPrimitiveValue& primitiveValue = toCSSPrimitiveValue(value); |
388 switch (primitiveValue.getValueID()) { | 388 switch (primitiveValue.getValueID()) { |
389 case CSSValueLinear: | 389 case CSSValueLinear: |
390 return LinearTimingFunction::shared(); | 390 return LinearTimingFunction::shared(); |
391 case CSSValueEase: | 391 case CSSValueEase: |
392 return CubicBezierTimingFunction::preset(CubicBezierTimingFunction::
Ease); | 392 return CubicBezierTimingFunction::preset(CubicBezierTimingFunction::
Ease); |
393 case CSSValueEaseIn: | 393 case CSSValueEaseIn: |
394 return CubicBezierTimingFunction::preset(CubicBezierTimingFunction::
EaseIn); | 394 return CubicBezierTimingFunction::preset(CubicBezierTimingFunction::
EaseIn); |
395 case CSSValueEaseOut: | 395 case CSSValueEaseOut: |
396 return CubicBezierTimingFunction::preset(CubicBezierTimingFunction::
EaseOut); | 396 return CubicBezierTimingFunction::preset(CubicBezierTimingFunction::
EaseOut); |
397 case CSSValueEaseInOut: | 397 case CSSValueEaseInOut: |
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
488 { | 488 { |
489 if (!value || !value->isBorderImageSliceValue()) | 489 if (!value || !value->isBorderImageSliceValue()) |
490 return; | 490 return; |
491 | 491 |
492 // Retrieve the border image value. | 492 // Retrieve the border image value. |
493 CSSBorderImageSliceValue* borderImageSlice = toCSSBorderImageSliceValue(valu
e); | 493 CSSBorderImageSliceValue* borderImageSlice = toCSSBorderImageSliceValue(valu
e); |
494 | 494 |
495 // Set up a length box to represent our image slices. | 495 // Set up a length box to represent our image slices. |
496 LengthBox box; | 496 LengthBox box; |
497 Quad* slices = borderImageSlice->slices(); | 497 Quad* slices = borderImageSlice->slices(); |
498 if (slices->top()->isPercentage()) | 498 if (slices->top().isPercentage()) |
499 box.m_top = Length(slices->top()->getDoubleValue(), Percent); | 499 box.m_top = Length(slices->top().getDoubleValue(), Percent); |
500 else | 500 else |
501 box.m_top = Length(slices->top()->getIntValue(), Fixed); | 501 box.m_top = Length(slices->top().getIntValue(), Fixed); |
502 if (slices->bottom()->isPercentage()) | 502 if (slices->bottom().isPercentage()) |
503 box.m_bottom = Length(slices->bottom()->getDoubleValue(), Percent); | 503 box.m_bottom = Length(slices->bottom().getDoubleValue(), Percent); |
504 else | 504 else |
505 box.m_bottom = Length(slices->bottom()->getIntValue(), Fixed); | 505 box.m_bottom = Length(slices->bottom().getIntValue(), Fixed); |
506 if (slices->left()->isPercentage()) | 506 if (slices->left().isPercentage()) |
507 box.m_left = Length(slices->left()->getDoubleValue(), Percent); | 507 box.m_left = Length(slices->left().getDoubleValue(), Percent); |
508 else | 508 else |
509 box.m_left = Length(slices->left()->getIntValue(), Fixed); | 509 box.m_left = Length(slices->left().getIntValue(), Fixed); |
510 if (slices->right()->isPercentage()) | 510 if (slices->right().isPercentage()) |
511 box.m_right = Length(slices->right()->getDoubleValue(), Percent); | 511 box.m_right = Length(slices->right().getDoubleValue(), Percent); |
512 else | 512 else |
513 box.m_right = Length(slices->right()->getIntValue(), Fixed); | 513 box.m_right = Length(slices->right().getIntValue(), Fixed); |
514 image.setImageSlices(box); | 514 image.setImageSlices(box); |
515 | 515 |
516 // Set our fill mode. | 516 // Set our fill mode. |
517 image.setFill(borderImageSlice->m_fill); | 517 image.setFill(borderImageSlice->m_fill); |
518 } | 518 } |
519 | 519 |
520 static BorderImageLength toBorderImageLength(CSSPrimitiveValue& value, const CSS
ToLengthConversionData& conversionData) | 520 static BorderImageLength toBorderImageLength(CSSPrimitiveValue value, const CSST
oLengthConversionData& conversionData) |
521 { | 521 { |
522 if (value.isNumber()) | 522 if (value.isNumber()) |
523 return value.getDoubleValue(); | 523 return value.getDoubleValue(); |
524 if (value.isPercentage()) | 524 if (value.isPercentage()) |
525 return Length(value.getDoubleValue(), Percent); | 525 return Length(value.getDoubleValue(), Percent); |
526 if (value.getValueID() != CSSValueAuto) | 526 if (value.getValueID() != CSSValueAuto) |
527 return value.computeLength<Length>(conversionData); | 527 return value.computeLength<Length>(conversionData); |
528 return Length(Auto); | 528 return Length(Auto); |
529 } | 529 } |
530 | 530 |
531 BorderImageLengthBox CSSToStyleMap::mapNinePieceImageQuad(StyleResolverState& st
ate, const NullableCSSValue& value) | 531 BorderImageLengthBox CSSToStyleMap::mapNinePieceImageQuad(StyleResolverState& st
ate, const NullableCSSValue& value) |
532 { | 532 { |
533 if (!value || !value->isPrimitiveValue()) | 533 if (!value || !value->isPrimitiveValue()) |
534 return BorderImageLengthBox(Length(Auto)); | 534 return BorderImageLengthBox(Length(Auto)); |
535 | 535 |
536 Quad* slices = toCSSPrimitiveValue(value)->getQuadValue(); | 536 Quad* slices = toCSSPrimitiveValue(value).getQuadValue(); |
537 | 537 |
538 // Set up a border image length box to represent our image slices. | 538 // Set up a border image length box to represent our image slices. |
539 return BorderImageLengthBox( | 539 return BorderImageLengthBox( |
540 toBorderImageLength(*slices->top(), state.cssToLengthConversionData()), | 540 toBorderImageLength(slices->top(), state.cssToLengthConversionData()), |
541 toBorderImageLength(*slices->right(), state.cssToLengthConversionData())
, | 541 toBorderImageLength(slices->right(), state.cssToLengthConversionData()), |
542 toBorderImageLength(*slices->bottom(), state.cssToLengthConversionData()
), | 542 toBorderImageLength(slices->bottom(), state.cssToLengthConversionData())
, |
543 toBorderImageLength(*slices->left(), state.cssToLengthConversionData()))
; | 543 toBorderImageLength(slices->left(), state.cssToLengthConversionData())); |
544 } | 544 } |
545 | 545 |
546 void CSSToStyleMap::mapNinePieceImageRepeat(StyleResolverState&, const NullableC
SSValue& value, NinePieceImage& image) | 546 void CSSToStyleMap::mapNinePieceImageRepeat(StyleResolverState&, const NullableC
SSValue& value, NinePieceImage& image) |
547 { | 547 { |
548 if (!value || !value->isPrimitiveValue()) | 548 if (!value || !value->isPrimitiveValue()) |
549 return; | 549 return; |
550 | 550 |
551 CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value); | 551 const CSSPrimitiveValue& primitiveValue = toCSSPrimitiveValue(value); |
552 Pair* pair = primitiveValue->getPairValue(); | 552 Pair* pair = primitiveValue.getPairValue(); |
553 if (!pair || !pair->first() || !pair->second()) | 553 if (!pair) |
554 return; | 554 return; |
555 | 555 |
556 CSSValueID firstIdentifier = pair->first()->getValueID(); | 556 CSSValueID firstIdentifier = pair->first().getValueID(); |
557 CSSValueID secondIdentifier = pair->second()->getValueID(); | 557 CSSValueID secondIdentifier = pair->second().getValueID(); |
558 | 558 |
559 ENinePieceImageRule horizontalRule; | 559 ENinePieceImageRule horizontalRule; |
560 switch (firstIdentifier) { | 560 switch (firstIdentifier) { |
561 case CSSValueStretch: | 561 case CSSValueStretch: |
562 horizontalRule = StretchImageRule; | 562 horizontalRule = StretchImageRule; |
563 break; | 563 break; |
564 case CSSValueRound: | 564 case CSSValueRound: |
565 horizontalRule = RoundImageRule; | 565 horizontalRule = RoundImageRule; |
566 break; | 566 break; |
567 case CSSValueSpace: | 567 case CSSValueSpace: |
(...skipping 17 matching lines...) Expand all Loading... |
585 verticalRule = SpaceImageRule; | 585 verticalRule = SpaceImageRule; |
586 break; | 586 break; |
587 default: // CSSValueRepeat | 587 default: // CSSValueRepeat |
588 verticalRule = RepeatImageRule; | 588 verticalRule = RepeatImageRule; |
589 break; | 589 break; |
590 } | 590 } |
591 image.setVerticalRule(verticalRule); | 591 image.setVerticalRule(verticalRule); |
592 } | 592 } |
593 | 593 |
594 }; | 594 }; |
OLD | NEW |