1d087a2ecbf4fad562b4f97150a6cf15083de656
[WebKit-https.git] / WebCore / ksvg2 / KSVGFactory.h
1 /*
2     Copyright (C) 2005 Nikolas Zimmermann <wildfox@kde.org>
3                   2005 Rob Buis <buis@kde.org>
4
5     This file is part of the KDE project
6
7     This library is free software; you can redistribute it and/or
8     modify it under the terms of the GNU Library General Public
9     License as published by the Free Software Foundation; either
10     version 2 of the License, or (at your option) any later version.
11
12     This library is distributed in the hope that it will be useful,
13     but WITHOUT ANY WARRANTY; without even the implied warranty of
14     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15     Library General Public License for more details.
16
17     You should have received a copy of the GNU Library General Public License
18     along with this library; see the file COPYING.LIB.  If not, write to
19     the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
20     Boston, MA 02111-1307, USA.
21 */
22
23 #ifndef KSVG_KSVGFactory_H
24 #define KSVG_KSVGFactory_H
25
26 #include <kurl.h>
27 #include <qptrlist.h>
28
29 #include <kparts/factory.h>
30 #include <kparts/historyprovider.h>
31
32 class KInstance;
33 class KAboutData;
34
35 namespace KSVG
36 {
37         class KSVGPart;
38         class KSVGSettings;
39         class KSVGFactory : public KParts::Factory
40         {
41         public:
42                 KSVGFactory(bool clone = false);
43                 virtual ~KSVGFactory();
44
45                 virtual KParts::Part *createPartObject(QWidget *parentWidget, const char *widgetName,
46                                                                                            QObject *parent, const char *name,
47                                                                                            const char *className, const QStringList &args);
48
49                 static void registerPart(KSVGPart *part);
50                 static void deregisterPart(KSVGPart *part);
51
52                 static QPtrList<KSVGPart> *partList() { return s_parts; }
53
54                 static KInstance *instance();
55                 static KSVGSettings *defaultSVGSettings();
56                 
57                 // list of visited URLs
58                 static KParts::HistoryProvider *vLinks()
59                 {
60                         return KParts::HistoryProvider::self();
61                 }
62                 
63         protected:
64                 static void ref();
65                 static void deref();
66
67         private:
68                 static unsigned long s_refcnt;
69                 static KSVGFactory *s_self;
70                 
71                 static KInstance *s_instance;
72                 static KAboutData *s_about;
73                 static KSVGSettings *s_settings;
74                 
75                 static QPtrList<KSVGPart> *s_parts;
76         };
77 }
78
79 #endif
80
81 // vim:ts=4:noet