#include "config.h"
#include "CSSWrapShapes.h"
#include <wtf/text/StringBuilder.h>
using namespace WTF;
namespace WebCore {
String CSSWrapShapeRectangle::cssText() const
{
DEFINE_STATIC_LOCAL(const String, rectangleParen, ("rectangle("));
DEFINE_STATIC_LOCAL(const String, comma, (", "));
StringBuilder result;
result.reserveCapacity(32);
result.append(rectangleParen);
result.append(m_left->cssText());
result.append(comma);
result.append(m_top->cssText());
result.append(comma);
result.append(m_width->cssText());
result.append(comma);
result.append(m_height->cssText());
if (m_radiusX.get()) {
result.append(comma);
result.append(m_radiusX->cssText());
if (m_radiusY.get()) {
result.append(comma);
result.append(m_radiusY->cssText());
}
}
result.append(')');
return result.toString();
}
String CSSWrapShapeCircle::cssText() const
{
DEFINE_STATIC_LOCAL(const String, circleParen, ("circle("));
DEFINE_STATIC_LOCAL(const String, comma, (", "));
StringBuilder result;
result.reserveCapacity(32);
result.append(circleParen);
result.append(m_left->cssText());
result.append(comma);
result.append(m_top->cssText());
result.append(comma);
result.append(m_radius->cssText());
result.append(')');
return result.toString();
}
String CSSWrapShapeEllipse::cssText() const
{
DEFINE_STATIC_LOCAL(const String, ellipseParen, ("ellipse("));
DEFINE_STATIC_LOCAL(const String, comma, (", "));
StringBuilder result;
result.reserveCapacity(32);
result.append(ellipseParen);
result.append(m_left->cssText());
result.append(comma);
result.append(m_top->cssText());
result.append(comma);
result.append(m_radiusX->cssText());
result.append(comma);
result.append(m_radiusY->cssText());
result.append(')');
return result.toString();
}
String CSSWrapShapePolygon::cssText() const
{
DEFINE_STATIC_LOCAL(const String, polygonParenEvenOdd, ("polygon(evenodd, "));
DEFINE_STATIC_LOCAL(const String, polygonParenNonZero, ("polygon(nonzero, "));
DEFINE_STATIC_LOCAL(const String, comma, (", "));
DEFINE_STATIC_LOCAL(const String, space, (" "));
StringBuilder result;
result.reserveCapacity(32);
if (m_windRule == RULE_EVENODD)
result.append(polygonParenEvenOdd);
else
result.append(polygonParenNonZero);
ASSERT(!(m_values.size() % 2));
for (unsigned i = 0; i < m_values.size(); i += 2) {
if (i)
result.append(comma);
result.append(m_values.at(i)->cssText());
result.append(space);
result.append(m_values.at(i + 1)->cssText());
}
result.append(')');
return result.toString();
}
}