Ignore:
Timestamp:
May 30, 2012, 12:01:08 AM (13 years ago)
Author:
[email protected]
Message:

CSS3 calc: Implement CSSOM support
https://bugs.webkit.org/show_bug.cgi?id=84551

Reviewed by Ryosuke Niwa.

Source/WebCore:

Adds a pretty printer for the calc expression tree.

Test: css3/calc/cssom.html

  • css/CSSCalculationValue.cpp:

(WebCore::CSSCalcValue::customCssText):
(WebCore::CSSCalcPrimitiveValue::customCssText):
(WebCore::CSSCalcBinaryOperation::customCssText):
(CSSCalcBinaryOperation):

  • css/CSSCalculationValue.h:

(CSSCalcExpressionNode):

LayoutTests:

  • css3/calc/cssom-expected.txt: Added.
  • css3/calc/cssom.html: Added.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/css/CSSCalculationValue.cpp

    r115215 r118900  
    7575String CSSCalcValue::customCssText() const
    7676{
    77     return "";
     77    StringBuilder result;
     78   
     79    result.append("-webkit-calc");
     80    String expression = m_expression->customCssText();
     81    bool expressionHasSingleTerm = expression[0] != '(';
     82    if (expressionHasSingleTerm)
     83        result.append('(');
     84    result.append(expression);
     85    if (expressionHasSingleTerm)
     86        result.append(')');
     87    return result.toString();
    7888}
    7989   
     
    110120    }
    111121
    112     virtual String cssText() const
     122    virtual String customCssText() const
    113123    {
    114124        return m_value->cssText();
     
    251261    }
    252262
     263    virtual String customCssText() const
     264    {
     265        StringBuilder result;
     266        result.append('(');
     267        result.append(m_leftSide->customCssText());
     268        result.append(' ');
     269        result.append(static_cast<char>(m_operator));
     270        result.append(' ');
     271        result.append(m_rightSide->customCssText());
     272        result.append(')');
     273   
     274        return result.toString();   
     275    }
     276
    253277private:
    254278    CSSCalcBinaryOperation(PassRefPtr<CSSCalcExpressionNode> leftSide, PassRefPtr<CSSCalcExpressionNode> rightSide, CalcOperator op, CalculationCategory category)
Note: See TracChangeset for help on using the changeset viewer.