summaryrefslogtreecommitdiffstats
path: root/Source/WebCore/css/WebKitCSSTransformValue.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebCore/css/WebKitCSSTransformValue.cpp')
-rw-r--r--Source/WebCore/css/WebKitCSSTransformValue.cpp107
1 files changed, 35 insertions, 72 deletions
diff --git a/Source/WebCore/css/WebKitCSSTransformValue.cpp b/Source/WebCore/css/WebKitCSSTransformValue.cpp
index dfdd71e36..f85319015 100644
--- a/Source/WebCore/css/WebKitCSSTransformValue.cpp
+++ b/Source/WebCore/css/WebKitCSSTransformValue.cpp
@@ -29,9 +29,36 @@
#include "CSSValueList.h"
#include "PlatformString.h"
#include <wtf/PassRefPtr.h>
+#include <wtf/text/StringBuilder.h>
namespace WebCore {
+// These names must be kept in sync with TransformOperationType.
+const char* const transformName[] = {
+ 0,
+ "translate",
+ "translateX",
+ "translateY",
+ "rotate",
+ "scale",
+ "scaleX",
+ "scaleY",
+ "skew",
+ "skewX",
+ "skewY",
+ "matrix",
+ "translateZ",
+ "translate3d",
+ "rotateX",
+ "rotateY",
+ "rotateZ",
+ "rotate3d",
+ "scaleZ",
+ "scale3d",
+ "perspective",
+ "matrix3d"
+};
+
WebKitCSSTransformValue::WebKitCSSTransformValue(TransformOperationType op)
: CSSValueList(WebKitCSSTransformClass, CommaSeparator)
, m_type(op)
@@ -40,79 +67,15 @@ WebKitCSSTransformValue::WebKitCSSTransformValue(TransformOperationType op)
String WebKitCSSTransformValue::customCssText() const
{
- String result;
- switch (m_type) {
- case TranslateTransformOperation:
- result += "translate(";
- break;
- case TranslateXTransformOperation:
- result += "translateX(";
- break;
- case TranslateYTransformOperation:
- result += "translateY(";
- break;
- case RotateTransformOperation:
- result += "rotate(";
- break;
- case ScaleTransformOperation:
- result += "scale(";
- break;
- case ScaleXTransformOperation:
- result += "scaleX(";
- break;
- case ScaleYTransformOperation:
- result += "scaleY(";
- break;
- case SkewTransformOperation:
- result += "skew(";
- break;
- case SkewXTransformOperation:
- result += "skewX(";
- break;
- case SkewYTransformOperation:
- result += "skewY(";
- break;
- case MatrixTransformOperation:
- result += "matrix(";
- break;
- case TranslateZTransformOperation:
- result += "translateZ(";
- break;
- case Translate3DTransformOperation:
- result += "translate3d(";
- break;
- case RotateXTransformOperation:
- result += "rotateX(";
- break;
- case RotateYTransformOperation:
- result += "rotateY(";
- break;
- case RotateZTransformOperation:
- result += "rotateZ(";
- break;
- case Rotate3DTransformOperation:
- result += "rotate3d(";
- break;
- case ScaleZTransformOperation:
- result += "scaleZ(";
- break;
- case Scale3DTransformOperation:
- result += "scale3d(";
- break;
- case PerspectiveTransformOperation:
- result += "perspective(";
- break;
- case Matrix3DTransformOperation:
- result += "matrix3d(";
- break;
- default:
- break;
+ StringBuilder result;
+ if (m_type != UnknownTransformOperation) {
+ ASSERT(static_cast<size_t>(m_type) < WTF_ARRAY_LENGTH(transformName));
+ result.append(transformName[m_type]);
+ result.append('(');
+ result.append(CSSValueList::customCssText());
+ result.append(')');
}
-
- result += CSSValueList::customCssText();
-
- result += ")";
- return result;
+ return result.toString();
}
WebKitCSSTransformValue::WebKitCSSTransformValue(const WebKitCSSTransformValue& cloneFrom)