OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 "core/animation/CSSBorderImageLengthBoxInterpolationType.h" | 5 #include "core/animation/CSSBorderImageLengthBoxInterpolationType.h" |
6 | 6 |
7 #include "core/animation/BorderImageLengthBoxPropertyFunctions.h" | 7 #include "core/animation/BorderImageLengthBoxPropertyFunctions.h" |
8 #include "core/animation/CSSLengthInterpolationType.h" | 8 #include "core/animation/CSSLengthInterpolationType.h" |
9 #include "core/css/CSSQuadValue.h" | 9 #include "core/css/CSSQuadValue.h" |
10 #include "core/css/resolver/StyleResolverState.h" | 10 #include "core/css/resolver/StyleResolverState.h" |
(...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
212 list->set(i, std::move(convertedSide.interpolableValue)); | 212 list->set(i, std::move(convertedSide.interpolableValue)); |
213 nonInterpolableValues[i] = convertedSide.nonInterpolableValue.releas
e(); | 213 nonInterpolableValues[i] = convertedSide.nonInterpolableValue.releas
e(); |
214 } | 214 } |
215 } | 215 } |
216 | 216 |
217 return InterpolationValue(std::move(list), CSSBorderImageLengthBoxNonInterpo
lableValue::create(SideNumbers(quad), std::move(nonInterpolableValues))); | 217 return InterpolationValue(std::move(list), CSSBorderImageLengthBoxNonInterpo
lableValue::create(SideNumbers(quad), std::move(nonInterpolableValues))); |
218 } | 218 } |
219 | 219 |
220 InterpolationValue CSSBorderImageLengthBoxInterpolationType::maybeConvertUnderly
ingValue(const InterpolationEnvironment& environment) const | 220 InterpolationValue CSSBorderImageLengthBoxInterpolationType::maybeConvertUnderly
ingValue(const InterpolationEnvironment& environment) const |
221 { | 221 { |
222 const ComputedStyle& style = *environment.state().style(); | 222 const ComputedStyle& style = environment.style(); |
223 return convertBorderImageLengthBox(BorderImageLengthBoxPropertyFunctions::ge
tBorderImageLengthBox(cssProperty(), style), style.effectiveZoom()); | 223 return convertBorderImageLengthBox(BorderImageLengthBoxPropertyFunctions::ge
tBorderImageLengthBox(cssProperty(), style), style.effectiveZoom()); |
224 } | 224 } |
225 | 225 |
226 PairwiseInterpolationValue CSSBorderImageLengthBoxInterpolationType::maybeMergeS
ingles(InterpolationValue&& start, InterpolationValue&& end) const | 226 PairwiseInterpolationValue CSSBorderImageLengthBoxInterpolationType::maybeMergeS
ingles(InterpolationValue&& start, InterpolationValue&& end) const |
227 { | 227 { |
228 const SideNumbers& startSideNumbers = toCSSBorderImageLengthBoxNonInterpolab
leValue(*start.nonInterpolableValue).sideNumbers(); | 228 const SideNumbers& startSideNumbers = toCSSBorderImageLengthBoxNonInterpolab
leValue(*start.nonInterpolableValue).sideNumbers(); |
229 const SideNumbers& endSideNumbers = toCSSBorderImageLengthBoxNonInterpolable
Value(*end.nonInterpolableValue).sideNumbers(); | 229 const SideNumbers& endSideNumbers = toCSSBorderImageLengthBoxNonInterpolable
Value(*end.nonInterpolableValue).sideNumbers(); |
230 | 230 |
231 if (startSideNumbers != endSideNumbers) | 231 if (startSideNumbers != endSideNumbers) |
232 return nullptr; | 232 return nullptr; |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
267 const auto& convertSide = [&sideNumbers, &list, &environment, &nonInterpolab
leValues](size_t index) -> BorderImageLength { | 267 const auto& convertSide = [&sideNumbers, &list, &environment, &nonInterpolab
leValues](size_t index) -> BorderImageLength { |
268 if (sideNumbers.isNumber[index]) | 268 if (sideNumbers.isNumber[index]) |
269 return clampTo<double>(toInterpolableNumber(list.get(index))->value(
), 0); | 269 return clampTo<double>(toInterpolableNumber(list.get(index))->value(
), 0); |
270 return CSSLengthInterpolationType::resolveInterpolableLength(*list.get(i
ndex), nonInterpolableValues[index].get(), environment.state().cssToLengthConver
sionData(), ValueRangeNonNegative); | 270 return CSSLengthInterpolationType::resolveInterpolableLength(*list.get(i
ndex), nonInterpolableValues[index].get(), environment.state().cssToLengthConver
sionData(), ValueRangeNonNegative); |
271 }; | 271 }; |
272 BorderImageLengthBox box( | 272 BorderImageLengthBox box( |
273 convertSide(SideTop), | 273 convertSide(SideTop), |
274 convertSide(SideRight), | 274 convertSide(SideRight), |
275 convertSide(SideBottom), | 275 convertSide(SideBottom), |
276 convertSide(SideLeft)); | 276 convertSide(SideLeft)); |
277 BorderImageLengthBoxPropertyFunctions::setBorderImageLengthBox(cssProperty()
, *environment.state().style(), box); | 277 BorderImageLengthBoxPropertyFunctions::setBorderImageLengthBox(cssProperty()
, environment.style(), box); |
278 } | 278 } |
279 | 279 |
280 } // namespace blink | 280 } // namespace blink |
OLD | NEW |