X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Fthird_party%2FWebKit%2FSource%2Fcore%2Fsvg%2FSVGZoomAndPan.h;h=5b5c69c535f24edcee1b499b4c888802b6bbdcea;hb=ff3e2503a20db9193d323c1d19c38c68004dec4a;hp=b1432eb9bf02fea3a0c46c7a2b8b2c8ab6d9b10a;hpb=7338fba38ba696536d1cc9d389afd716a6ab2fe6;p=platform%2Fframework%2Fweb%2Fcrosswalk.git diff --git a/src/third_party/WebKit/Source/core/svg/SVGZoomAndPan.h b/src/third_party/WebKit/Source/core/svg/SVGZoomAndPan.h index b1432eb..5b5c69c 100644 --- a/src/third_party/WebKit/Source/core/svg/SVGZoomAndPan.h +++ b/src/third_party/WebKit/Source/core/svg/SVGZoomAndPan.h @@ -1,6 +1,7 @@ /* * Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann * Copyright (C) 2004, 2005, 2006, 2007 Rob Buis + * Copyright (C) 2014 Samsung Electronics. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public @@ -27,6 +28,9 @@ namespace WebCore { +class ExceptionState; +class SVGViewSpec; + enum SVGZoomAndPanType { SVGZoomAndPanUnknown = 0, SVGZoomAndPanDisable, @@ -52,38 +56,42 @@ public: return static_cast(number); } - static bool parseZoomAndPan(const LChar*& start, const LChar* end, SVGZoomAndPanType&); - static bool parseZoomAndPan(const UChar*& start, const UChar* end, SVGZoomAndPanType&); + bool parseZoomAndPan(const LChar*& start, const LChar* end); + bool parseZoomAndPan(const UChar*& start, const UChar* end); - template - static bool parseAttribute(SVGElementTarget* target, const QualifiedName& name, const AtomicString& value) + bool parseAttribute(const QualifiedName& name, const AtomicString& value) { - ASSERT(target); if (name == SVGNames::zoomAndPanAttr) { - SVGZoomAndPanType zoomAndPan = SVGZoomAndPanUnknown; + m_zoomAndPan = SVGZoomAndPanUnknown; if (!value.isEmpty()) { if (value.is8Bit()) { const LChar* start = value.characters8(); - parseZoomAndPan(start, start + value.length(), zoomAndPan); + parseZoomAndPan(start, start + value.length()); } else { const UChar* start = value.characters16(); - parseZoomAndPan(start, start + value.length(), zoomAndPan); + parseZoomAndPan(start, start + value.length()); } } - target->setZoomAndPan(zoomAndPan); return true; } return false; } - SVGZoomAndPanType zoomAndPan() const { return SVGZoomAndPanUnknown; } + // SVGZoomAndPan JS API. + static SVGZoomAndPanType zoomAndPan(SVGZoomAndPan* object) { return object->m_zoomAndPan; } + static void setZoomAndPan(SVGZoomAndPan* object, unsigned short value, ExceptionState&) { object->setZoomAndPan(value); } + static void setZoomAndPan(SVGViewSpec*, unsigned short, ExceptionState&); + + void setZoomAndPan(unsigned short value) { m_zoomAndPan = parseFromNumber(value); } + SVGZoomAndPanType zoomAndPan() const { return m_zoomAndPan; } + +protected: + SVGZoomAndPan(); + void resetZoomAndPan(); - // These methods only exist to allow us to compile V8/JSSVGZoomAndPan.*. - // These are never called, and thus ASSERT_NOT_REACHED. - void ref(); - void deref(); - void setZoomAndPan(unsigned short); +private: + SVGZoomAndPanType m_zoomAndPan; }; } // namespace WebCore