2006-02-11 Eric Seidel <eseidel@apple.com>
[WebKit-https.git] / WebCore / ksvg2 / misc / SVGDocumentExtensions.cpp
1 /*
2     Copyright (C) 2006 Apple Computer, Inc.
3
4     This file is part of the WebKit project
5
6     This library is free software; you can redistribute it and/or
7     modify it under the terms of the GNU Library General Public
8     License as published by the Free Software Foundation; either
9     version 2 of the License, or (at your option) any later version.
10
11     This library is distributed in the hope that it will be useful,
12     but WITHOUT ANY WARRANTY; without even the implied warranty of
13     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14     Library General Public License for more details.
15
16     You should have received a copy of the GNU Library General Public License
17     along with this library; see the file COPYING.LIB.  If not, write to
18     the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
19     Boston, MA 02111-1307, USA.
20 */
21
22 #include "config.h"
23 #if SVG_SUPPORT
24 #include "SVGDocumentExtensions.h"
25
26 #include "DocumentImpl.h"
27 #include "Frame.h"
28 #include "KSVGTimeScheduler.h"
29 #include "kjs_proxy.h"
30
31 namespace WebCore {
32
33 SVGDocumentExtensions::SVGDocumentExtensions(DocumentImpl *doc)
34     : m_doc(doc)
35     , m_timeScheduler(new TimeScheduler(doc))
36 {
37 }
38
39 SVGDocumentExtensions::~SVGDocumentExtensions()
40 {
41     delete m_timeScheduler;
42 }
43
44 EventListener *SVGDocumentExtensions::createSVGEventListener(const DOMString& code, NodeImpl *node)
45 {
46     if (Frame *frame = m_doc->frame()) {
47         if (KJSProxyImpl *proxy = frame->jScript())
48             return proxy->createSVGEventHandler(code, node);
49     }
50     return 0;
51 }
52
53 void SVGDocumentExtensions::pauseAnimations()
54 {
55     if (!m_timeScheduler->animationsPaused())
56         m_timeScheduler->toggleAnimations();
57 }
58
59 void SVGDocumentExtensions::unpauseAnimations()
60 {
61     if (m_timeScheduler->animationsPaused())
62         m_timeScheduler->toggleAnimations();
63 }
64
65 bool SVGDocumentExtensions::animationsPaused() const
66 {
67     return m_timeScheduler->animationsPaused();
68 }
69
70 float SVGDocumentExtensions::getCurrentTime() const
71 {
72     return m_timeScheduler->elapsed();
73 }
74
75 void SVGDocumentExtensions::setCurrentTime(float /* seconds */)
76 {
77     // TODO
78 }
79
80 }
81
82 #endif