• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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,
58                             const QUrl&,
59                             const QStringList& argumentNames,
60                             const QStringList& argumentValues) const = 0;
61 
62     enum Extension {
63     };
64     class ExtensionOption
65     {};
66     class ExtensionReturn
67     {};
68     virtual bool extension(Extension extension, const ExtensionOption* option = 0, ExtensionReturn* output = 0);
69     virtual bool supportsExtension(Extension extension) const;
70 
71 private:
72     QWebPluginFactoryPrivate* d;
73 };
74 
75 #endif
76