18e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/* 28e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies) 38e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 48e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project This library is free software; you can redistribute it and/or 58e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project modify it under the terms of the GNU Library General Public 68e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project License as published by the Free Software Foundation; either 78e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project version 2 of the License, or (at your option) any later version. 88e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 98e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project This library is distributed in the hope that it will be useful, 108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project but WITHOUT ANY WARRANTY; without even the implied warranty of 118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Library General Public License for more details. 138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project You should have received a copy of the GNU Library General Public License 158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project along with this library; see the file COPYING.LIB. If not, write to 168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Boston, MA 02110-1301, USA. 188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*/ 198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#ifndef QWEBPLUGINFACTORY_H 218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define QWEBPLUGINFACTORY_H 228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "qwebkitglobal.h" 248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include <QtCore/qobject.h> 268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include <QtCore/qstringlist.h> 278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectQT_BEGIN_NAMESPACE 298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectclass QUrl; 308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectclass QString; 318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectQT_END_NAMESPACE 328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectclass QWebPluginFactoryPrivate; 338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 340bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdochclass QWEBKIT_EXPORT QWebPluginFactory : public QObject { 358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Q_OBJECT 368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectpublic: 370bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch struct QWEBKIT_EXPORT MimeType { 388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project QString name; 398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project QString description; 408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project QStringList fileExtensions; 410bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch bool operator==(const MimeType& other) const; 420bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch inline bool operator!=(const MimeType& other) const { return !operator==(other); } 438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project }; 448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project struct Plugin { 468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project QString name; 478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project QString description; 488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project QList<MimeType> mimeTypes; 498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project }; 508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 510bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch explicit QWebPluginFactory(QObject* parent = 0); 528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual ~QWebPluginFactory(); 538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual QList<Plugin> plugins() const = 0; 558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void refreshPlugins(); 568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 570bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch virtual QObject *create(const QString& mimeType, 580bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch const QUrl&, 590bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch const QStringList& argumentNames, 600bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch const QStringList& argumentValues) const = 0; 618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project enum Extension { 638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project }; 648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project class ExtensionOption 658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project {}; 668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project class ExtensionReturn 678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project {}; 680bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch virtual bool extension(Extension extension, const ExtensionOption* option = 0, ExtensionReturn* output = 0); 698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual bool supportsExtension(Extension extension) const; 708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectprivate: 720bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch QWebPluginFactoryPrivate* d; 738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}; 748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 76