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 QWEBSETTINGS_H
218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define QWEBSETTINGS_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/qstring.h>
268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include <QtGui/qpixmap.h>
278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include <QtGui/qicon.h>
288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include <QtCore/qshareddata.h>
298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
300bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdochnamespace WebCore {
318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    class Settings;
328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectclass QWebPage;
350bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdochclass QWebPluginDatabase;
368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectclass QWebSettingsPrivate;
378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectQT_BEGIN_NAMESPACE
388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectclass QUrl;
398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectQT_END_NAMESPACE
408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
410bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdochclass QWEBKIT_EXPORT QWebSettings {
428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectpublic:
438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    enum FontFamily {
448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        StandardFont,
458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        FixedFont,
468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        SerifFont,
478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        SansSerifFont,
488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        CursiveFont,
498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        FantasyFont
508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    };
518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    enum WebAttribute {
528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        AutoLoadImages,
538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        JavascriptEnabled,
548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        JavaEnabled,
558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        PluginsEnabled,
568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        PrivateBrowsingEnabled,
578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        JavascriptCanOpenWindows,
58545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch        JavascriptCanAccessClipboard,
598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        DeveloperExtrasEnabled,
608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        LinksIncludedInFocusChain,
61635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project        ZoomTextOnly,
62635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project        PrintElementBackgrounds,
63635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project        OfflineStorageDatabaseEnabled,
64635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project        OfflineWebApplicationCacheEnabled,
65231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        LocalStorageEnabled,
666c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen#if defined(QT_DEPRECATED) || defined(qdoc)
67231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        LocalStorageDatabaseEnabled = LocalStorageEnabled,
68231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block#endif
69231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        LocalContentCanAccessRemoteUrls,
70d0825bca7fe65beaee391d30da42e937db621564Steve Block        DnsPrefetchEnabled,
71dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block        XSSAuditingEnabled,
72dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block        AcceleratedCompositingEnabled,
73dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block        SpatialNavigationEnabled,
74dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block        LocalContentCanAccessFileUrls,
75dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block        TiledBackingStoreEnabled,
7621939df44de1705786c545cd1bf519d47250322dBen Murdoch        FrameFlatteningEnabled,
7706ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen        SiteSpecificQuirksEnabled,
784576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang        JavascriptCanCloseWindows,
79bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen        WebGLEnabled,
804576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang        HyperlinkAuditingEnabled
818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    };
828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    enum WebGraphic {
838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        MissingImageGraphic,
848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        MissingPluginGraphic,
858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        DefaultFrameIconGraphic,
86643ca7872b450ea4efacab6188849e5aac2ba161Steve Block        TextAreaSizeGripCornerGraphic,
87ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block        DeleteButtonGraphic,
8865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        InputSpeechButtonGraphic,
8965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        SearchCancelButtonGraphic,
9065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        SearchCancelButtonPressedGraphic
918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    };
928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    enum FontSize {
938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        MinimumFontSize,
948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        MinimumLogicalFontSize,
958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        DefaultFontSize,
968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        DefaultFixedFontSize
978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    };
988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    static QWebSettings *globalSettings();
1008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    void setFontFamily(FontFamily which, const QString &family);
1028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    QString fontFamily(FontFamily which) const;
1038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    void resetFontFamily(FontFamily which);
1048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    void setFontSize(FontSize type, int size);
1068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    int fontSize(FontSize type) const;
1078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    void resetFontSize(FontSize type);
1088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    void setAttribute(WebAttribute attr, bool on);
1108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    bool testAttribute(WebAttribute attr) const;
1118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    void resetAttribute(WebAttribute attr);
1128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    void setUserStyleSheetUrl(const QUrl &location);
1148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    QUrl userStyleSheetUrl() const;
1158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1160bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch    void setDefaultTextEncoding(const QString &encoding);
1170bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch    QString defaultTextEncoding() const;
1180bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch
1198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    static void setIconDatabasePath(const QString &location);
1208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    static QString iconDatabasePath();
1218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    static void clearIconDatabase();
1228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    static QIcon iconForUrl(const QUrl &url);
1238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
124643ca7872b450ea4efacab6188849e5aac2ba161Steve Block    //static QWebPluginDatabase *pluginDatabase();
1250bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch
1268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    static void setWebGraphic(WebGraphic type, const QPixmap &graphic);
1278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    static QPixmap webGraphic(WebGraphic type);
1288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    static void setMaximumPagesInCache(int pages);
1308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    static int maximumPagesInCache();
1318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    static void setObjectCacheCapacities(int cacheMinDeadCapacity, int cacheMaxDead, int totalCapacity);
1328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
133635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project    static void setOfflineStoragePath(const QString& path);
134635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project    static QString offlineStoragePath();
135635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project    static void setOfflineStorageDefaultQuota(qint64 maximumSize);
136635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project    static qint64 offlineStorageDefaultQuota();
137635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project
1380bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch    static void setOfflineWebApplicationCachePath(const QString& path);
1390bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch    static QString offlineWebApplicationCachePath();
1400bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch    static void setOfflineWebApplicationCacheQuota(qint64 maximumSize);
1410bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch    static qint64 offlineWebApplicationCacheQuota();
142231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
143231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block    void setLocalStoragePath(const QString& path);
144231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block    QString localStoragePath() const;
1450bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch
1460bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch    static void clearMemoryCaches();
1470bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch
148231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block    static void enablePersistentStorage(const QString& path = QString());
149231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
150635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project    inline QWebSettingsPrivate* handle() const { return d; }
151635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project
1528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectprivate:
1538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    friend class QWebPagePrivate;
1548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    friend class QWebSettingsPrivate;
1558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    Q_DISABLE_COPY(QWebSettings)
1578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    QWebSettings();
1598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    QWebSettings(WebCore::Settings *settings);
1608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    ~QWebSettings();
1618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    QWebSettingsPrivate *d;
1638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project};
1648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif
166