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#include "config.h" 218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "qwebpluginfactory.h" 228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*! 248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project \class QWebPluginFactory 258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project \since 4.4 266c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen \brief The QWebPluginFactory class is used to embed custom data types in web pages. 278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 28231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block \inmodule QtWebKit 29231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block 306c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen The HTML \c{<object>} tag is used to embed arbitrary content into a web page, 316c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen for example: 326c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen 336c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen \code 346c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen <object type="application/x-pdf" data="http://qt.nokia.com/document.pdf" width="500" height="400"></object> 356c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen \endcode 366c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen 376c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen QtWebkit will natively handle the most basic data types like \c{text/html} and 386c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen \c{image/jpeg}, but for any advanced or custom data types you will need to 396c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen provide a handler yourself. 406c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen 416c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen QWebPluginFactory is a factory for creating plugins for QWebPage, where each 426c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen plugin provides support for one or more data types. A plugin factory can be 436c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen installed on a QWebPage using QWebPage::setPluginFactory(). 448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project \note The plugin factory is only used if plugins are enabled through QWebSettings. 468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 476c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen You provide a QWebPluginFactory by implementing the plugins() and the 486c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen create() methods. For plugins() it is necessary to describe the plugins the 498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project factory can create, including a description and the supported MIME types. 508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project The MIME types each plugin can handle should match the ones specified in 516c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen in the HTML \c{<object>} tag of your content. 528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project The create() method is called if the requested MIME type is supported. The 548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project implementation has to return a new instance of the plugin requested for the 558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project given MIME type and the specified URL. 566c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen 576c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen The plugins themselves are subclasses of QObject, but currently only plugins 586c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen based on either QWidget or QGraphicsWidget are supported. 596c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen 608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*/ 618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*! 648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project \class QWebPluginFactory::Plugin 658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project \since 4.4 66545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch \brief The QWebPluginFactory::Plugin structure describes the properties of a plugin a QWebPluginFactory can create. 67231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block 68231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block \inmodule QtWebKit 698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*/ 708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*! 728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project \variable QWebPluginFactory::Plugin::name 738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project The name of the plugin. 748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*/ 758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*! 778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project \variable QWebPluginFactory::Plugin::description 788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project The description of the plugin. 798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*/ 808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*! 828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project \variable QWebPluginFactory::Plugin::mimeTypes 838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project The list of mime types supported by the plugin. 848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*/ 858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*! 878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project \class QWebPluginFactory::MimeType 888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project \since 4.4 898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project \brief The QWebPluginFactory::MimeType structure describes a mime type supported by a plugin. 90231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block 91231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block \inmodule QtWebKit 928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*/ 938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 94231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block/*! 95231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block Returns true if this mimetype is the same as the \a other mime type. 96231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block*/ 970bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdochbool QWebPluginFactory::MimeType::operator==(const MimeType& other) const 980bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch{ 990bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch return name == other.name 1000bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch && description == other.description 1010bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch && fileExtensions == other.fileExtensions; 1020bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch} 1030bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch 1048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*! 105231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block \fn bool QWebPluginFactory::MimeType::operator!=(const MimeType& other) const 106231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block 107231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block Returns true if this mimetype is different from the \a other mime type. 108231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block*/ 109231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block 110231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block/*! 1118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project \variable QWebPluginFactory::MimeType::name 1128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project The full name of the MIME type; e.g., \c{text/plain} or \c{image/png}. 1148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*/ 1158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*! 1178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project \variable QWebPluginFactory::MimeType::description 1188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project The description of the mime type. 1198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*/ 1208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*! 1228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project \variable QWebPluginFactory::MimeType::fileExtensions 1238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project The list of file extensions that are used by this mime type. 1248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project For example, a mime type for PDF documents would return "pdf" as its file extension. 1268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*/ 1278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*! 1298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Constructs a QWebPluginFactory with parent \a parent. 1308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*/ 1318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectQWebPluginFactory::QWebPluginFactory(QObject *parent) 1328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project : QObject(parent) 1338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 1348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 1358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*! 1378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Destructor. 1388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*/ 1398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectQWebPluginFactory::~QWebPluginFactory() 1408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 1418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 1428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*! 1448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project \fn QList<Plugin> QWebPluginFactory::plugins() const = 0 1458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project This function is reimplemented in subclasses to return a list of 1478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project supported plugins the factory can create. 1488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project \note Currently, this function is only called when JavaScript programs 150545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch access the global \c plugins or \c mimetypes objects. 1518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*/ 1528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*! 1548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project This function is called to refresh the list of supported plugins. It may be called after a new plugin 1558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project has been installed in the system. 1568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*/ 1578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectvoid QWebPluginFactory::refreshPlugins() 1588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 1598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 1608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*! 1628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project \fn QObject *QWebPluginFactory::create(const QString &mimeType, const QUrl &url, 1638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project const QStringList &argumentNames, const QStringList &argumentValues) const = 0 1648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Implemented in subclasses to create a new plugin that can display content of 1668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project the MIME type given by \a mimeType. The URL of the content is provided in \a url. 1678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project The returned object should be a QWidget. 1688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project The HTML object element can provide parameters through the \c{<param>} tag. 1708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project The name and the value attributes of these tags are specified by the 1718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project \a argumentNames and \a argumentValues string lists. 1728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project For example: 1748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project \code 176231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block <object type="application/x-pdf" data="http://qt.nokia.com/document.pdf" width="500" height="400"> 1778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project <param name="showTableOfContents" value="true" /> 1788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project <param name="hideThumbnails" value="false" /> 1798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project </object> 1808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project \endcode 1818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project The above object element will result in a call to create() with the following arguments: 1838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project \table 1848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project \header \o Parameter 1858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project \o Value 1868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project \row \o mimeType 1878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project \o "application/x-pdf" 1888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project \row \o url 189231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block \o "http://qt.nokia.com/document.pdf" 1908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project \row \o argumentNames 1918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project \o "showTableOfContents" "hideThumbnails" 1928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project \row \o argumentVaues 1938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project \o "true" "false" 1948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project \endtable 1958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project \note Ownership of the returned object will be transferred to the caller. 1978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*/ 1988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*! 2008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project \enum QWebPluginFactory::Extension 2016c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen \internal 2028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project This enum describes the types of extensions that the plugin factory can support. Before using these extensions, you 2048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project should verify that the extension is supported by calling supportsExtension(). 2058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Currently there are no extensions. 2078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*/ 2088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*! 2108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project \class QWebPluginFactory::ExtensionOption 2116c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen \internal 2128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project \since 4.4 2138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project \brief The ExtensionOption class provides an extended input argument to QWebPluginFactory's extension support. 2148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 215231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block \inmodule QtWebKit 216231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block 2178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project \sa QWebPluginFactory::extension() 2188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*/ 2198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*! 2218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project \class QWebPluginFactory::ExtensionReturn 2226c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen \internal 2238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project \since 4.4 2248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project \brief The ExtensionOption class provides an extended output argument to QWebPluginFactory's extension support. 2258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 226231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block \inmodule QtWebKit 227231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block 2288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project \sa QWebPluginFactory::extension() 2298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*/ 2308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*! 2328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project This virtual function can be reimplemented in a QWebPluginFactory subclass to provide support for extensions. The \a option 2338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project argument is provided as input to the extension; the output results can be stored in \a output. 2348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2356c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen \internal 2366c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen 2378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project The behaviour of this function is determined by \a extension. 2388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project You can call supportsExtension() to check if an extension is supported by the factory. 2408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project By default, no extensions are supported, and this function returns false. 2428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project \sa supportsExtension(), Extension 2448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*/ 2458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectbool QWebPluginFactory::extension(Extension extension, const ExtensionOption *option, ExtensionReturn *output) 2468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 2478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Q_UNUSED(extension) 2488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Q_UNUSED(option) 2498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Q_UNUSED(output) 2508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return false; 2518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 2528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*! 2548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project This virtual function returns true if the plugin factory supports \a extension; otherwise false is returned. 2558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2566c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen \internal 2576c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen 2588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project \sa extension() 2598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*/ 2608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectbool QWebPluginFactory::supportsExtension(Extension extension) const 2618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 2628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Q_UNUSED(extension) 2638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return false; 2648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 265