Bug #: none
[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 <q3ptrlist.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 Q3PtrList<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 Q3PtrList<KSVGPart> *s_parts;
76     };
77 }
78
79 #endif
80
81 // vim:ts=4:noet