KHTML
SVGZoomAndPan.cpp
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #include "config.h"
00024 #include "wtf/Platform.h"
00025
00026 #if ENABLE(SVG)
00027 #include "SVGZoomAndPan.h"
00028
00029
00030 #include "SVGNames.h"
00031 #include "SVGParserUtilities.h"
00032
00033 namespace WebCore {
00034
00035 SVGZoomAndPan::SVGZoomAndPan()
00036 : m_zoomAndPan(SVG_ZOOMANDPAN_MAGNIFY)
00037 {
00038 }
00039
00040 SVGZoomAndPan::~SVGZoomAndPan()
00041 {
00042 }
00043
00044 unsigned short SVGZoomAndPan::zoomAndPan() const
00045 {
00046 return m_zoomAndPan;
00047 }
00048
00049 void SVGZoomAndPan::setZoomAndPan(unsigned short zoomAndPan)
00050 {
00051 m_zoomAndPan = zoomAndPan;
00052 }
00053
00054 bool SVGZoomAndPan::parseMappedAttribute(MappedAttribute* attr)
00055 {
00056 if (attr->name() == SVGNames::zoomAndPanAttr) {
00057 const UChar* start = attr->value().characters();
00058 const UChar* end = start + attr->value().length();
00059 parseZoomAndPan(start, end);
00060 return true;
00061 }
00062
00063 return false;
00064 }
00065
00066 bool SVGZoomAndPan::isKnownAttribute(const QualifiedName& attrName)
00067 {
00068 return attrName == SVGNames::zoomAndPanAttr;
00069 }
00070
00071 static const UChar disable[] = {'d', 'i', 's', 'a', 'b', 'l', 'e'};
00072 static const UChar magnify[] = {'m', 'a', 'g', 'n', 'i', 'f', 'y'};
00073
00074 bool SVGZoomAndPan::parseZoomAndPan(const UChar*& start, const UChar* end)
00075 {
00076 if (skipString(start, end, disable, sizeof(disable) / sizeof(UChar)))
00077 setZoomAndPan(SVG_ZOOMANDPAN_DISABLE);
00078 else if (skipString(start, end, magnify, sizeof(magnify) / sizeof(UChar)))
00079 setZoomAndPan(SVG_ZOOMANDPAN_MAGNIFY);
00080 else
00081 return false;
00082
00083 return true;
00084 }
00085
00086 }
00087
00088 #endif // ENABLE(SVG)