summaryrefslogtreecommitdiff
path: root/Userland/Libraries/LibWeb/SVG
diff options
context:
space:
mode:
authorAndreas Kling <kling@serenityos.org>2021-09-15 00:26:16 +0200
committerAndreas Kling <kling@serenityos.org>2021-09-15 11:56:26 +0200
commit8949b0def6e509223eaba495612742d1a7e0147d (patch)
tree1a2b775906005f40a20fabbf754bb0b57abc6a32 /Userland/Libraries/LibWeb/SVG
parent53d24fbd655ddb600dbff5ccf492b1757cd55d2b (diff)
downloadserenity-8949b0def6e509223eaba495612742d1a7e0147d.zip
LibWeb: Add an SVG::AttributeNames namespace
There are a whole bunch of SVG attributes, and we shouldn't mix them in with the HTML attributes. This patch adds some of them to the new namespace, but there are more to be added. :^)
Diffstat (limited to 'Userland/Libraries/LibWeb/SVG')
-rw-r--r--Userland/Libraries/LibWeb/SVG/AttributeNames.cpp29
-rw-r--r--Userland/Libraries/LibWeb/SVG/AttributeNames.h84
2 files changed, 113 insertions, 0 deletions
diff --git a/Userland/Libraries/LibWeb/SVG/AttributeNames.cpp b/Userland/Libraries/LibWeb/SVG/AttributeNames.cpp
new file mode 100644
index 0000000000..f8953aa822
--- /dev/null
+++ b/Userland/Libraries/LibWeb/SVG/AttributeNames.cpp
@@ -0,0 +1,29 @@
+/*
+ * Copyright (c) 2021, Andreas Kling <kling@serenityos.org>
+ *
+ * SPDX-License-Identifier: BSD-2-Clause
+ */
+
+#include <LibWeb/SVG/AttributeNames.h>
+
+namespace Web::SVG::AttributeNames {
+
+#define __ENUMERATE_SVG_ATTRIBUTE(name) FlyString name;
+ENUMERATE_SVG_ATTRIBUTES(__ENUMERATE_SVG_ATTRIBUTE)
+#undef __ENUMERATE_SVG_ATTRIBUTE
+
+[[gnu::constructor]] static void initialize()
+{
+ static bool s_initialized = false;
+ if (s_initialized)
+ return;
+
+#define __ENUMERATE_SVG_ATTRIBUTE(name) \
+ name = #name;
+ ENUMERATE_SVG_ATTRIBUTES(__ENUMERATE_SVG_ATTRIBUTE)
+#undef __ENUMERATE_SVG_ATTRIBUTE
+
+ s_initialized = true;
+}
+
+}
diff --git a/Userland/Libraries/LibWeb/SVG/AttributeNames.h b/Userland/Libraries/LibWeb/SVG/AttributeNames.h
new file mode 100644
index 0000000000..e8c746eab4
--- /dev/null
+++ b/Userland/Libraries/LibWeb/SVG/AttributeNames.h
@@ -0,0 +1,84 @@
+/*
+ * Copyright (c) 2021, Andreas Kling <kling@serenityos.org>
+ *
+ * SPDX-License-Identifier: BSD-2-Clause
+ */
+
+#pragma once
+
+#include <AK/FlyString.h>
+
+namespace Web::SVG::AttributeNames {
+
+#define ENUMERATE_SVG_ATTRIBUTES(E) \
+ E(attributeName) \
+ E(attributeType) \
+ E(baseFrequency) \
+ E(baseProfile) \
+ E(calcMode) \
+ E(clipPathUnits) \
+ E(contentScriptType) \
+ E(contentStyleType) \
+ E(diffuseConstant) \
+ E(edgeMode) \
+ E(filterUnits) \
+ E(glyphRef) \
+ E(gradientTransform) \
+ E(gradientUnits) \
+ E(height) \
+ E(kernelMatrix) \
+ E(kernelUnitLength) \
+ E(keyPoints) \
+ E(keySplines) \
+ E(keyTimes) \
+ E(lengthAdjust) \
+ E(limitingConeAngle) \
+ E(markerHeight) \
+ E(markerUnits) \
+ E(markerWidth) \
+ E(maskContentUnits) \
+ E(maskUnits) \
+ E(numOctaves) \
+ E(pathLength) \
+ E(patternContentUnits) \
+ E(patternTransform) \
+ E(patternUnits) \
+ E(pointsAtX) \
+ E(pointsAtY) \
+ E(pointsAtZ) \
+ E(preserveAlpha) \
+ E(preserveAspectRatio) \
+ E(primitiveUnits) \
+ E(refX) \
+ E(refY) \
+ E(repeatCount) \
+ E(repeatDur) \
+ E(requiredExtensions) \
+ E(requiredFeatures) \
+ E(specularConstant) \
+ E(specularExponent) \
+ E(spreadMethod) \
+ E(startOffset) \
+ E(stdDeviation) \
+ E(stitchTiles) \
+ E(surfaceScale) \
+ E(systemLanguage) \
+ E(tableValues) \
+ E(targetX) \
+ E(targetY) \
+ E(textLength) \
+ E(version) \
+ E(viewBox) \
+ E(viewTarget) \
+ E(width) \
+ E(x) \
+ E(xChannelSelector) \
+ E(y) \
+ E(yChannelSelector) \
+ E(zoomAndPan)
+
+#define __ENUMERATE_SVG_ATTRIBUTE(name) extern FlyString name;
+ENUMERATE_SVG_ATTRIBUTES(__ENUMERATE_SVG_ATTRIBUTE)
+#undef __ENUMERATE_SVG_ATTRIBUTE
+
+}