Add modern API for overriding the page's specified viewport configuration
[WebKit-https.git] / Source / WebCore / css / CSSTimingFunctionValue.cpp
1 /*
2  * Copyright (C) 2007, 2013, 2016 Apple Inc. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions
6  * are met:
7  * 1. Redistributions of source code must retain the above copyright
8  *    notice, this list of conditions and the following disclaimer.
9  * 2. Redistributions in binary form must reproduce the above copyright
10  *    notice, this list of conditions and the following disclaimer in the
11  *    documentation and/or other materials provided with the distribution.
12  *
13  * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
14  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
17  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
18  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
19  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
20  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
21  * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
23  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24  */
25
26 #include "config.h"
27 #include "CSSTimingFunctionValue.h"
28
29 #include <wtf/text/StringBuilder.h>
30
31 namespace WebCore {
32
33 String CSSCubicBezierTimingFunctionValue::customCSSText() const
34 {
35     StringBuilder builder;
36     builder.appendLiteral("cubic-bezier(");
37     builder.appendFixedPrecisionNumber(m_x1);
38     builder.appendLiteral(", ");
39     builder.appendFixedPrecisionNumber(m_y1);
40     builder.appendLiteral(", ");
41     builder.appendFixedPrecisionNumber(m_x2);
42     builder.appendLiteral(", ");
43     builder.appendFixedPrecisionNumber(m_y2);
44     builder.append(')');    
45     return builder.toString();
46 }
47
48 bool CSSCubicBezierTimingFunctionValue::equals(const CSSCubicBezierTimingFunctionValue& other) const
49 {
50     return m_x1 == other.m_x1 && m_x2 == other.m_x2 && m_y1 == other.m_y1 && m_y2 == other.m_y2;
51 }
52
53 String CSSStepsTimingFunctionValue::customCSSText() const
54 {
55     StringBuilder builder;
56     builder.appendLiteral("steps(");
57     builder.appendNumber(m_steps);
58     if (m_stepAtStart)
59         builder.appendLiteral(", start)");
60     else
61         builder.appendLiteral(", end)");
62     return builder.toString();
63 }
64
65 bool CSSStepsTimingFunctionValue::equals(const CSSStepsTimingFunctionValue& other) const
66 {
67     return m_steps == other.m_steps && m_stepAtStart == other.m_stepAtStart;
68 }
69
70 String CSSSpringTimingFunctionValue::customCSSText() const
71 {
72     StringBuilder builder;
73     builder.appendLiteral("spring(");
74     builder.appendFixedPrecisionNumber(m_mass);
75     builder.append(' ');
76     builder.appendFixedPrecisionNumber(m_stiffness);
77     builder.append(' ');
78     builder.appendFixedPrecisionNumber(m_damping);
79     builder.append(' ');
80     builder.appendFixedPrecisionNumber(m_initialVelocity);
81     builder.append(')');
82     return builder.toString();
83 }
84
85 bool CSSSpringTimingFunctionValue::equals(const CSSSpringTimingFunctionValue& other) const
86 {
87     return m_mass == other.m_mass && m_stiffness == other.m_stiffness && m_damping == other.m_damping && m_initialVelocity == other.m_initialVelocity;
88 }
89
90
91 } // namespace WebCore