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

Side by Side Diff: Source/core/animation/AnimatableValue.cpp

Issue 19744002: Web Animations: Add CSSAnimatableValueFactory API (partial implementation) (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Move folders and add const to param Created 7 years, 4 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 | Annotate | Revision Log
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 12 matching lines...) Expand all
23 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 23 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
24 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 24 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 */ 29 */
30 30
31 #include "config.h" 31 #include "config.h"
32 #include "core/animation/AnimatableValue.h" 32 #include "core/animation/AnimatableValue.h"
33
34 #include "core/animation/AnimatableNeutral.h" 33 #include "core/animation/AnimatableNeutral.h"
35 #include "core/animation/AnimatableNumber.h"
36 #include "core/animation/AnimatableUnknown.h"
37 #include "core/animation/DeferredAnimatableValue.h" 34 #include "core/animation/DeferredAnimatableValue.h"
38
39 #include <algorithm> 35 #include <algorithm>
40 36
41 namespace WebCore { 37 namespace WebCore {
42 38
43 PassRefPtr<AnimatableValue> AnimatableValue::create(CSSValue* value)
44 {
45 // FIXME: Move this logic to a separate factory class.
46 // FIXME: Handle all animatable CSSValue types.
47 if (AnimatableNumber::canCreateFrom(value))
48 return AnimatableNumber::create(value);
49 return AnimatableUnknown::create(value);
50 }
51
52 const AnimatableValue* AnimatableValue::neutralValue() 39 const AnimatableValue* AnimatableValue::neutralValue()
53 { 40 {
54 static AnimatableNeutral* neutralSentinelValue = AnimatableNeutral::create() .leakRef(); 41 static AnimatableNeutral* neutralSentinelValue = AnimatableNeutral::create() .leakRef();
55 return neutralSentinelValue; 42 return neutralSentinelValue;
56 } 43 }
57 44
58 const AnimatableValue* AnimatableValue::deferredSnapshotValue() 45 const AnimatableValue* AnimatableValue::deferredSnapshotValue()
59 { 46 {
60 static DeferredAnimatableValue* deferredAnimatableValueSentinel = DeferredAn imatableValue::create().leakRef(); 47 static DeferredAnimatableValue* deferredAnimatableValueSentinel = DeferredAn imatableValue::create().leakRef();
61 return deferredAnimatableValueSentinel; 48 return deferredAnimatableValueSentinel;
(...skipping 22 matching lines...) Expand all
84 if (right->isNeutral()) 71 if (right->isNeutral())
85 return takeConstRef(left); 72 return takeConstRef(left);
86 73
87 if (left->isSameType(right)) 74 if (left->isSameType(right))
88 return left->addWith(right); 75 return left->addWith(right);
89 76
90 return defaultAddWith(left, right); 77 return defaultAddWith(left, right);
91 } 78 }
92 79
93 } // namespace WebCore 80 } // namespace WebCore
OLDNEW
« no previous file with comments | « Source/core/animation/AnimatableValue.h ('k') | Source/core/animation/KeyframeAnimationEffectTest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698