summaryrefslogtreecommitdiffstats
path: root/WebCore/css/CSSTimingFunctionValue.h
diff options
context:
space:
mode:
authorIain Merrick <husky@google.com>2010-09-13 16:35:48 +0100
committerIain Merrick <husky@google.com>2010-09-16 12:10:42 +0100
commit5abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306 (patch)
treeddce1aa5e3b6967a69691892e500897558ff8ab6 /WebCore/css/CSSTimingFunctionValue.h
parent12bec63ec71e46baba27f0bd9bd9d8067683690a (diff)
downloadexternal_webkit-5abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306.zip
external_webkit-5abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306.tar.gz
external_webkit-5abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306.tar.bz2
Merge WebKit at r67178 : Initial merge by git.
Change-Id: I57e01163b6866cb029cdadf405a0394a3918bc18
Diffstat (limited to 'WebCore/css/CSSTimingFunctionValue.h')
-rw-r--r--WebCore/css/CSSTimingFunctionValue.h68
1 files changed, 63 insertions, 5 deletions
diff --git a/WebCore/css/CSSTimingFunctionValue.h b/WebCore/css/CSSTimingFunctionValue.h
index e465993..27e899b 100644
--- a/WebCore/css/CSSTimingFunctionValue.h
+++ b/WebCore/css/CSSTimingFunctionValue.h
@@ -33,20 +33,51 @@ namespace WebCore {
class CSSTimingFunctionValue : public CSSValue {
public:
- static PassRefPtr<CSSTimingFunctionValue> create(double x1, double y1, double x2, double y2)
+ virtual String cssText() const = 0;
+
+ virtual bool isLinearTimingFunctionValue() const { return false; }
+ virtual bool isCubicBezierTimingFunctionValue() const { return false; }
+ virtual bool isStepsTimingFunctionValue() const { return false; }
+
+protected:
+ CSSTimingFunctionValue()
+ {
+ }
+
+ virtual bool isTimingFunctionValue() const { return true; }
+};
+
+class CSSLinearTimingFunctionValue : public CSSTimingFunctionValue {
+public:
+ static PassRefPtr<CSSLinearTimingFunctionValue> create()
+ {
+ return adoptRef(new CSSLinearTimingFunctionValue);
+ }
+
+private:
+ CSSLinearTimingFunctionValue()
{
- return adoptRef(new CSSTimingFunctionValue(x1, y1, x2, y2));
}
virtual String cssText() const;
+ virtual bool isLinearTimingFunctionValue() const { return true; }
+};
+
+class CSSCubicBezierTimingFunctionValue : public CSSTimingFunctionValue {
+public:
+ static PassRefPtr<CSSCubicBezierTimingFunctionValue> create(double x1, double y1, double x2, double y2)
+ {
+ return adoptRef(new CSSCubicBezierTimingFunctionValue(x1, y1, x2, y2));
+ }
+
double x1() const { return m_x1; }
double y1() const { return m_y1; }
double x2() const { return m_x2; }
double y2() const { return m_y2; }
private:
- CSSTimingFunctionValue(double x1, double y1, double x2, double y2)
+ CSSCubicBezierTimingFunctionValue(double x1, double y1, double x2, double y2)
: m_x1(x1)
, m_y1(y1)
, m_x2(x2)
@@ -54,14 +85,41 @@ private:
{
}
- virtual bool isTimingFunctionValue() const { return true; }
-
+ virtual String cssText() const;
+
+ virtual bool isCubicBezierTimingFunctionValue() const { return true; }
+
double m_x1;
double m_y1;
double m_x2;
double m_y2;
};
+class CSSStepsTimingFunctionValue : public CSSTimingFunctionValue {
+public:
+ static PassRefPtr<CSSStepsTimingFunctionValue> create(int steps, bool stepAtStart)
+ {
+ return adoptRef(new CSSStepsTimingFunctionValue(steps, stepAtStart));
+ }
+
+ int numberOfSteps() const { return m_steps; }
+ bool stepAtStart() const { return m_stepAtStart; }
+
+private:
+ CSSStepsTimingFunctionValue(int steps, bool stepAtStart)
+ : m_steps(steps)
+ , m_stepAtStart(stepAtStart)
+ {
+ }
+
+ virtual String cssText() const;
+
+ virtual bool isStepsTimingFunctionValue() const { return true; }
+
+ int m_steps;
+ bool m_stepAtStart;
+};
+
} // namespace
#endif