diff options
Diffstat (limited to 'Source/WebCore/css/WebKitCSSTransformValue.cpp')
-rw-r--r-- | Source/WebCore/css/WebKitCSSTransformValue.cpp | 107 |
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) |