summaryrefslogtreecommitdiff
path: root/Source/WebCore/css/CSSBasicShapes.cpp
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@nokia.com>2012-09-10 19:10:20 +0200
committerSimon Hausmann <simon.hausmann@nokia.com>2012-09-10 19:10:20 +0200
commit284837daa07b29d6a63a748544a90b1f5842ac5c (patch)
treeecd258180bde91fe741e0cfd2638beb3c6da7e8e /Source/WebCore/css/CSSBasicShapes.cpp
parent2e2ba8ff45915f40ed3e014101269c175f2a89a0 (diff)
downloadqtwebkit-284837daa07b29d6a63a748544a90b1f5842ac5c.tar.gz
Imported WebKit commit 68645295d2e3e09af2c942f092556f06aa5f8b0d (http://svn.webkit.org/repository/webkit/trunk@128073)
New snapshot
Diffstat (limited to 'Source/WebCore/css/CSSBasicShapes.cpp')
-rw-r--r--Source/WebCore/css/CSSBasicShapes.cpp139
1 files changed, 139 insertions, 0 deletions
diff --git a/Source/WebCore/css/CSSBasicShapes.cpp b/Source/WebCore/css/CSSBasicShapes.cpp
new file mode 100644
index 000000000..c07d663c6
--- /dev/null
+++ b/Source/WebCore/css/CSSBasicShapes.cpp
@@ -0,0 +1,139 @@
+/*
+ * Copyright (C) 2011 Adobe Systems Incorporated. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer.
+ * 2. Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials
+ * provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER “AS IS” AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
+ * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
+ * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
+ * THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include "config.h"
+
+#include "CSSBasicShapes.h"
+
+#include <wtf/text/StringBuilder.h>
+
+using namespace WTF;
+
+namespace WebCore {
+
+String CSSBasicShapeRectangle::cssText() const
+{
+ StringBuilder result;
+ result.reserveCapacity(32);
+
+ result.appendLiteral("rectangle(");
+
+ result.append(m_x->cssText());
+ result.appendLiteral(", ");
+
+ result.append(m_y->cssText());
+ result.appendLiteral(", ");
+
+ result.append(m_width->cssText());
+ result.appendLiteral(", ");
+
+ result.append(m_height->cssText());
+
+ if (m_radiusX.get()) {
+ result.appendLiteral(", ");
+ result.append(m_radiusX->cssText());
+
+ if (m_radiusY.get()) {
+ result.appendLiteral(", ");
+ result.append(m_radiusY->cssText());
+ }
+ }
+
+ result.append(')');
+
+ return result.toString();
+}
+
+String CSSBasicShapeCircle::cssText() const
+{
+ StringBuilder result;
+ result.reserveCapacity(32);
+
+ result.appendLiteral("circle(");
+
+ result.append(m_centerX->cssText());
+ result.appendLiteral(", ");
+
+ result.append(m_centerY->cssText());
+ result.appendLiteral(", ");
+
+ result.append(m_radius->cssText());
+ result.append(')');
+
+ return result.toString();
+}
+
+String CSSBasicShapeEllipse::cssText() const
+{
+ StringBuilder result;
+ result.reserveCapacity(32);
+ result.appendLiteral("ellipse(");
+
+ result.append(m_centerX->cssText());
+ result.appendLiteral(", ");
+
+ result.append(m_centerY->cssText());
+ result.appendLiteral(", ");
+
+ result.append(m_radiusX->cssText());
+ result.appendLiteral(", ");
+
+ result.append(m_radiusY->cssText());
+ result.append(')');
+
+ return result.toString();
+}
+
+String CSSBasicShapePolygon::cssText() const
+{
+ StringBuilder result;
+ result.reserveCapacity(32);
+
+ if (m_windRule == RULE_EVENODD)
+ result.appendLiteral("polygon(evenodd, ");
+ else
+ result.appendLiteral("polygon(nonzero, ");
+
+ ASSERT(!(m_values.size() % 2));
+
+ for (unsigned i = 0; i < m_values.size(); i += 2) {
+ if (i)
+ result.appendLiteral(", ");
+ result.append(m_values.at(i)->cssText());
+ result.append(' ');
+ result.append(m_values.at(i + 1)->cssText());
+ }
+
+ result.append(')');
+
+ return result.toString();
+}
+
+} // namespace WebCore
+