KHTML
SVGDocument.cpp
Go to the documentation of this file.00001 /* 00002 Copyright (C) 2004, 2005 Nikolas Zimmermann <wildfox@kde.org> 00003 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org> 00004 00005 This file is part of the KDE project 00006 00007 This library is free software; you can redistribute it and/or 00008 modify it under the terms of the GNU Library General Public 00009 License as published by the Free Software Foundation; either 00010 version 2 of the License, or (at your option) any later version. 00011 00012 This library is distributed in the hope that it will be useful, 00013 but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00015 Library General Public License for more details. 00016 00017 You should have received a copy of the GNU Library General Public License 00018 along with this library; see the file COPYING.LIB. If not, write to 00019 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 00020 Boston, MA 02110-1301, USA. 00021 */ 00022 00023 #include "config.h" 00024 #include "SVGDocument.h" 00025 #if ENABLE(SVG) 00026 00027 /*#include "EventNames.h" 00028 #include "ExceptionCode.h" 00029 #include "FrameView.h"*/ 00030 #include "RenderView.h" 00031 #include "SVGElement.h" 00032 #include "SVGNames.h" 00033 #include "SVGSVGElement.h" 00034 /*#include "SVGViewSpec.h" 00035 #include "SVGZoomEvent.h" 00036 #include "SVGZoomAndPan.h"*/ 00037 00038 namespace WebCore { 00039 00040 SVGDocument::SVGDocument(DOMImplementation* i, Frame* frame) 00041 : Document(i, frame) 00042 { 00043 } 00044 00045 SVGDocument::~SVGDocument() 00046 { 00047 } 00048 00049 SVGSVGElement* SVGDocument::rootElement() const 00050 { 00051 Element* elem = documentElement(); 00052 if (elem && elem->hasTagName(SVGNames::svgTag)) 00053 return static_cast<SVGSVGElement*>(elem); 00054 00055 return 0; 00056 } 00057 00058 void SVGDocument::dispatchZoomEvent(float prevScale, float newScale) 00059 { 00060 /*ExceptionCode ec = 0; 00061 RefPtr<SVGZoomEvent> event = static_pointer_cast<SVGZoomEvent>(createEvent("SVGZoomEvents", ec)); 00062 event->initEvent(EventNames::zoomEvent, true, false); 00063 event->setPreviousScale(prevScale); 00064 event->setNewScale(newScale); 00065 rootElement()->dispatchEvent(event.release(), ec);*/ 00066 } 00067 00068 void SVGDocument::dispatchScrollEvent() 00069 { 00070 /*ExceptionCode ec = 0; 00071 RefPtr<Event> event = createEvent("SVGEvents", ec); 00072 event->initEvent(EventNames::scrollEvent, true, false); 00073 rootElement()->dispatchEvent(event.release(), ec);*/ 00074 } 00075 00076 bool SVGDocument::zoomAndPanEnabled() const 00077 { 00078 /*if (rootElement()) { 00079 if (rootElement()->useCurrentView()) { 00080 if (rootElement()->currentView()) 00081 return rootElement()->currentView()->zoomAndPan() == SVGZoomAndPan::SVG_ZOOMANDPAN_MAGNIFY; 00082 } else 00083 return rootElement()->zoomAndPan() == SVGZoomAndPan::SVG_ZOOMANDPAN_MAGNIFY; 00084 }*/ 00085 00086 return false; 00087 } 00088 00089 void SVGDocument::startPan(const FloatPoint& start) 00090 { 00091 /*if (rootElement()) 00092 m_translate = FloatPoint(start.x() - rootElement()->currentTranslate().x(), rootElement()->currentTranslate().y() + start.y());*/ 00093 } 00094 00095 void SVGDocument::updatePan(const FloatPoint& pos) const 00096 { 00097 if (rootElement()) { 00098 /*rootElement()->setCurrentTranslate(FloatPoint(pos.x() - m_translate.x(), m_translate.y() - pos.y())); 00099 if (renderer()) 00100 renderer()->repaint();*/ 00101 } 00102 } 00103 00104 void SVGDocument::close() 00105 { 00106 bool doload = !parsing() && m_tokenizer; 00107 00108 DocumentImpl::close(); 00109 00110 if (doload) { 00111 document()->dispatchWindowEvent(DOM::EventImpl::LOAD_EVENT, false, false); 00112 } 00113 } 00114 00115 } 00116 00117 // vim:ts=4:noet 00118 #endif // ENABLE(SVG)