diff options
Diffstat (limited to 'Source/WebCore/css/CSSCalculationValue.cpp')
-rwxr-xr-x | Source/WebCore/css/CSSCalculationValue.cpp | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/Source/WebCore/css/CSSCalculationValue.cpp b/Source/WebCore/css/CSSCalculationValue.cpp index 618c39c12..54247e035 100755 --- a/Source/WebCore/css/CSSCalculationValue.cpp +++ b/Source/WebCore/css/CSSCalculationValue.cpp @@ -74,7 +74,17 @@ static CalculationCategory unitCategory(CSSPrimitiveValue::UnitTypes type) String CSSCalcValue::customCssText() const { - return ""; + StringBuilder result; + + result.append("-webkit-calc"); + String expression = m_expression->customCssText(); + bool expressionHasSingleTerm = expression[0] != '('; + if (expressionHasSingleTerm) + result.append('('); + result.append(expression); + if (expressionHasSingleTerm) + result.append(')'); + return result.toString(); } double CSSCalcValue::clampToPermittedRange(double value) const @@ -109,7 +119,7 @@ public: return !m_value->getDoubleValue(); } - virtual String cssText() const + virtual String customCssText() const { return m_value->cssText(); } @@ -250,6 +260,20 @@ public: return evaluate(leftValue, rightValue); } + virtual String customCssText() const + { + StringBuilder result; + result.append('('); + result.append(m_leftSide->customCssText()); + result.append(' '); + result.append(static_cast<char>(m_operator)); + result.append(' '); + result.append(m_rightSide->customCssText()); + result.append(')'); + + return result.toString(); + } + private: CSSCalcBinaryOperation(PassRefPtr<CSSCalcExpressionNode> leftSide, PassRefPtr<CSSCalcExpressionNode> rightSide, CalcOperator op, CalculationCategory category) : CSSCalcExpressionNode(category, leftSide->isInteger() && rightSide->isInteger()) |