Make the setting of letting Javascript access the clipboard configurable through...
[WebKit-https.git] / WebKit / qt / Api / qwebsettings.h
1 /*
2     Copyright (C) 2007 Trolltech ASA
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     This class provides all functionality needed for loading images, style sheets and html
20     pages from the web. It has a memory cache for these objects.
21 */
22
23 #ifndef QWEBSETTINGS_H
24 #define QWEBSETTINGS_H
25
26 #include <qwebkitglobal.h>
27
28 #include <QString>
29 #include <QPixmap>
30 #include <QSharedDataPointer>
31
32 namespace WebCore
33 {
34     class Settings;
35 };
36
37 class QWebPage;
38 class QWebSettingsPrivate;
39
40 class QWEBKIT_EXPORT QWebSettings
41 {
42 public:
43     enum FontType {
44         StandardFont,
45         FixedFont,
46         SerifFont,
47         SansSerifFont,
48         CursiveFont,
49         FantasyFont
50     };
51     enum WebAttribute {
52         AutoLoadImages,
53         JavascriptEnabled,
54         JavaEnabled,
55         PluginsEnabled,
56         PrivateBrowsingEnabled,
57         JavascriptCanOpenWindows,
58         JavascriptCanAccessClipboard
59     };
60     enum WebGraphic {
61         MissingImageGraphic,
62         MissingPluginGraphic,
63         DefaultFaviconGraphic,
64         TextAreaResizeCornerGraphic
65     };
66     enum FontSize {
67         MinimumFontSize,
68         MinimumLogicalFontSize,
69         DefaultFontSize,
70         DefaultFixedFontSize
71     };
72
73     static QWebSettings *defaultSettings();
74
75     void setFontFamily(FontType type, const QString &family);
76     QString fontFamily(FontType type) const;
77     void resetFontFamily(FontType type);
78
79     void setFontSize(FontSize type, int size);
80     int fontSize(FontSize type) const;
81     void resetFontSize(FontSize type);
82
83     void setAttribute(WebAttribute attr, bool on = true);
84     bool testAttribute(WebAttribute attr) const;
85     void clearAttribute(WebAttribute attr);
86
87     void setUserStyleSheetLocation(const QString &location);
88     QString userStyleSheetLocation() const;
89
90     static void setIconDatabaseEnabled(bool enabled, const QString &location = QString());
91     static bool iconDatabaseEnabled();
92
93     static void setWebGraphic(WebGraphic type, const QPixmap &graphic);
94     static QPixmap webGraphic(WebGraphic type);
95
96 private:
97     friend class QWebPagePrivate;
98     friend class QWebSettingsPrivate;
99
100     Q_DISABLE_COPY(QWebSettings)
101
102     QWebSettings();
103     QWebSettings(WebCore::Settings *settings);
104     ~QWebSettings();
105
106     QWebSettingsPrivate *d;
107 };
108
109 #endif