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( Frame* frame) 00041 : Document(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 Q_UNUSED(prevScale); 00061 Q_UNUSED(newScale); 00062 00063 /*ExceptionCode ec = 0; 00064 RefPtr<SVGZoomEvent> event = static_pointer_cast<SVGZoomEvent>(createEvent("SVGZoomEvents", ec)); 00065 event->initEvent(EventNames::zoomEvent, true, false); 00066 event->setPreviousScale(prevScale); 00067 event->setNewScale(newScale); 00068 rootElement()->dispatchEvent(event.release(), ec);*/ 00069 } 00070 00071 void SVGDocument::dispatchScrollEvent() 00072 { 00073 /*ExceptionCode ec = 0; 00074 RefPtr<Event> event = createEvent("SVGEvents", ec); 00075 event->initEvent(EventNames::scrollEvent, true, false); 00076 rootElement()->dispatchEvent(event.release(), ec);*/ 00077 } 00078 00079 bool SVGDocument::zoomAndPanEnabled() const 00080 { 00081 /*if (rootElement()) { 00082 if (rootElement()->useCurrentView()) { 00083 if (rootElement()->currentView()) 00084 return rootElement()->currentView()->zoomAndPan() == SVGZoomAndPan::SVG_ZOOMANDPAN_MAGNIFY; 00085 } else 00086 return rootElement()->zoomAndPan() == SVGZoomAndPan::SVG_ZOOMANDPAN_MAGNIFY; 00087 }*/ 00088 00089 return false; 00090 } 00091 00092 void SVGDocument::startPan(const FloatPoint& start) 00093 { 00094 Q_UNUSED(start); 00095 /*if (rootElement()) 00096 m_translate = FloatPoint(start.x() - rootElement()->currentTranslate().x(), rootElement()->currentTranslate().y() + start.y());*/ 00097 } 00098 00099 void SVGDocument::updatePan(const FloatPoint& pos) const 00100 { 00101 Q_UNUSED(pos); 00102 if (rootElement()) { 00103 /*rootElement()->setCurrentTranslate(FloatPoint(pos.x() - m_translate.x(), m_translate.y() - pos.y())); 00104 if (renderer()) 00105 renderer()->repaint();*/ 00106 } 00107 } 00108 00109 void SVGDocument::close() 00110 { 00111 bool doload = !parsing() && m_tokenizer; 00112 00113 DocumentImpl::close(); 00114 00115 if (doload) { 00116 document()->dispatchWindowEvent(DOM::EventImpl::LOAD_EVENT, false, false); 00117 } 00118 } 00119 00120 } 00121 00122 // vim:ts=4:noet 00123 #endif // ENABLE(SVG)
KDE 4.6 API Reference