Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(296)

Side by Side Diff: Source/core/animation/css/CSSAnimatableValueFactory.cpp

Issue 173953002: Make font-weight animatable. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Use clampTo<int>. Created 6 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2013 Google Inc. All rights reserved. 2 * Copyright (C) 2013 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after
223 return AnimatableColor::create(color, visitedLinkColor); 223 return AnimatableColor::create(color, visitedLinkColor);
224 } 224 }
225 225
226 inline static PassRefPtr<AnimatableValue> createFromShapeValue(ShapeValue* value ) 226 inline static PassRefPtr<AnimatableValue> createFromShapeValue(ShapeValue* value )
227 { 227 {
228 if (value) 228 if (value)
229 return AnimatableShapeValue::create(value); 229 return AnimatableShapeValue::create(value);
230 return AnimatableUnknown::create(CSSValueAuto); 230 return AnimatableUnknown::create(CSSValueAuto);
231 } 231 }
232 232
233 static double fontWeightToDouble(FontWeight fontWeight)
234 {
235 switch (fontWeight) {
236 case FontWeight100:
237 return 100;
238 case FontWeight200:
239 return 200;
240 case FontWeight300:
241 return 300;
242 case FontWeight400:
243 return 400;
244 case FontWeight500:
245 return 500;
246 case FontWeight600:
247 return 600;
248 case FontWeight700:
249 return 700;
250 case FontWeight800:
251 return 800;
252 case FontWeight900:
253 return 900;
254 }
255
256 ASSERT_NOT_REACHED();
257 return 400;
258 }
259
260 static PassRefPtr<AnimatableValue> createFromFontWeight(FontWeight fontWeight)
261 {
262 return createFromDouble(fontWeightToDouble(fontWeight));
263 }
264
233 // FIXME: Generate this function. 265 // FIXME: Generate this function.
234 PassRefPtr<AnimatableValue> CSSAnimatableValueFactory::create(CSSPropertyID prop erty, const RenderStyle& style) 266 PassRefPtr<AnimatableValue> CSSAnimatableValueFactory::create(CSSPropertyID prop erty, const RenderStyle& style)
235 { 267 {
236 ASSERT(CSSAnimations::isAnimatableProperty(property)); 268 ASSERT(CSSAnimations::isAnimatableProperty(property));
237 switch (property) { 269 switch (property) {
238 case CSSPropertyBackgroundColor: 270 case CSSPropertyBackgroundColor:
239 return createFromColor(property, style); 271 return createFromColor(property, style);
240 case CSSPropertyBackgroundImage: 272 case CSSPropertyBackgroundImage:
241 return createFromFillLayers<CSSPropertyBackgroundImage>(style.background Layers(), style); 273 return createFromFillLayers<CSSPropertyBackgroundImage>(style.background Layers(), style);
242 case CSSPropertyBackgroundPositionX: 274 case CSSPropertyBackgroundPositionX:
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
304 case CSSPropertyFloodColor: 336 case CSSPropertyFloodColor:
305 return createFromColor(property, style); 337 return createFromColor(property, style);
306 case CSSPropertyFloodOpacity: 338 case CSSPropertyFloodOpacity:
307 return createFromDouble(style.floodOpacity()); 339 return createFromDouble(style.floodOpacity());
308 case CSSPropertyFontSize: 340 case CSSPropertyFontSize:
309 // Must pass a specified size to setFontSize if Text Autosizing is enabl ed, but a computed size 341 // Must pass a specified size to setFontSize if Text Autosizing is enabl ed, but a computed size
310 // if text zoom is enabled (if neither is enabled it's irrelevant as the y're probably the same). 342 // if text zoom is enabled (if neither is enabled it's irrelevant as the y're probably the same).
311 // FIXME: Should we introduce an option to pass the computed font size h ere, allowing consumers to 343 // FIXME: Should we introduce an option to pass the computed font size h ere, allowing consumers to
312 // enable text zoom rather than Text Autosizing? See http://crbug.com/22 7545. 344 // enable text zoom rather than Text Autosizing? See http://crbug.com/22 7545.
313 return createFromDouble(style.specifiedFontSize()); 345 return createFromDouble(style.specifiedFontSize());
346 case CSSPropertyFontWeight:
347 return createFromFontWeight(style.fontWeight());
314 case CSSPropertyHeight: 348 case CSSPropertyHeight:
315 return createFromLength(style.height(), style); 349 return createFromLength(style.height(), style);
316 case CSSPropertyKerning: 350 case CSSPropertyKerning:
317 return AnimatableSVGLength::create(style.kerning()); 351 return AnimatableSVGLength::create(style.kerning());
318 case CSSPropertyLightingColor: 352 case CSSPropertyLightingColor:
319 return createFromColor(property, style); 353 return createFromColor(property, style);
320 case CSSPropertyListStyleImage: 354 case CSSPropertyListStyleImage:
321 return createFromStyleImage(style.listStyleImage()); 355 return createFromStyleImage(style.listStyleImage());
322 case CSSPropertyLeft: 356 case CSSPropertyLeft:
323 return createFromLength(style.left(), style); 357 return createFromLength(style.left(), style);
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after
460 case CSSPropertyZoom: 494 case CSSPropertyZoom:
461 return createFromDouble(style.zoom()); 495 return createFromDouble(style.zoom());
462 default: 496 default:
463 ASSERT_NOT_REACHED(); 497 ASSERT_NOT_REACHED();
464 // This return value is to avoid a release crash if possible. 498 // This return value is to avoid a release crash if possible.
465 return AnimatableUnknown::create(nullptr); 499 return AnimatableUnknown::create(nullptr);
466 } 500 }
467 } 501 }
468 502
469 } // namespace WebCore 503 } // namespace WebCore
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698