#ifndef CSSTransformValue_h
#define CSSTransformValue_h
#include "core/css/CSSValueList.h"
#include "wtf/PassRefPtr.h"
namespace WebCore {
class CSSTransformValue : public CSSValueList {
public:
enum TransformOperationType {
UnknownTransformOperation,
TranslateTransformOperation,
TranslateXTransformOperation,
TranslateYTransformOperation,
RotateTransformOperation,
ScaleTransformOperation,
ScaleXTransformOperation,
ScaleYTransformOperation,
SkewTransformOperation,
SkewXTransformOperation,
SkewYTransformOperation,
MatrixTransformOperation,
TranslateZTransformOperation,
Translate3DTransformOperation,
RotateXTransformOperation,
RotateYTransformOperation,
RotateZTransformOperation,
Rotate3DTransformOperation,
ScaleZTransformOperation,
Scale3DTransformOperation,
PerspectiveTransformOperation,
Matrix3DTransformOperation
};
static PassRefPtrWillBeRawPtr<CSSTransformValue> create(TransformOperationType type)
{
return adoptRefWillBeRefCountedGarbageCollected(new CSSTransformValue(type));
}
String customCSSText() const;
bool equals(const CSSTransformValue& other) const { return m_type == other.m_type && CSSValueList::equals(other); }
TransformOperationType operationType() const { return m_type; }
PassRefPtrWillBeRawPtr<CSSTransformValue> cloneForCSSOM() const;
void traceAfterDispatch(Visitor* visitor) { CSSValueList::traceAfterDispatch(visitor); }
private:
CSSTransformValue(TransformOperationType);
CSSTransformValue(const CSSTransformValue& cloneFrom);
TransformOperationType m_type;
};
DEFINE_CSS_VALUE_TYPE_CASTS(CSSTransformValue, isTransformValue());
}
#endif