initial import
[vuplus_webkit] / Source / WebKit / qt / Api / qwebpluginfactory.h
1 /*
2     Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies)
3
4     This library is free software; you can redistribute it and/or
5     modify it under the terms of the GNU Library General Public
6     License as published by the Free Software Foundation; either
7     version 2 of the License, or (at your option) any later version.
8
9     This library is distributed in the hope that it will be useful,
10     but WITHOUT ANY WARRANTY; without even the implied warranty of
11     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12     Library General Public License for more details.
13
14     You should have received a copy of the GNU Library General Public License
15     along with this library; see the file COPYING.LIB.  If not, write to
16     the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
17     Boston, MA 02110-1301, USA.
18 */
19
20 #ifndef QWEBPLUGINFACTORY_H
21 #define QWEBPLUGINFACTORY_H
22
23 #include "qwebkitglobal.h"
24
25 #include <QtCore/qobject.h>
26 #include <QtCore/qstringlist.h>
27
28 QT_BEGIN_NAMESPACE
29 class QUrl;
30 class QString;
31 QT_END_NAMESPACE
32 class QWebPluginFactoryPrivate;
33
34 class QWEBKIT_EXPORT QWebPluginFactory : public QObject {
35     Q_OBJECT
36 public:
37     struct QWEBKIT_EXPORT MimeType {
38         QString name;
39         QString description;
40         QStringList fileExtensions;
41         bool operator==(const MimeType& other) const;
42         inline bool operator!=(const MimeType& other) const { return !operator==(other); }
43     };
44
45     struct Plugin {
46         QString name;
47         QString description;
48         QList<MimeType> mimeTypes;
49     };
50
51     explicit QWebPluginFactory(QObject* parent = 0);
52     virtual ~QWebPluginFactory();
53
54     virtual QList<Plugin> plugins() const = 0;
55     virtual void refreshPlugins();
56
57     virtual QObject *create(const QString& mimeType, const QUrl&, const QStringList& argumentNames, const QStringList& argumentValues) const = 0;
58
59     enum Extension {
60     };
61     class ExtensionOption
62     {};
63     class ExtensionReturn
64     {};
65     virtual bool extension(Extension extension, const ExtensionOption* option = 0, ExtensionReturn* output = 0);
66     virtual bool supportsExtension(Extension extension) const;
67
68 private:
69     QWebPluginFactoryPrivate* d;
70 };
71
72 #endif