Fix focus chain handling and cycling through focusable objects (links) using tab...
[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 <QtCore/qstring.h>
29 #include <QtGui/qpixmap.h>
30 #include <QtCore/qshareddata.h>
31
32 namespace WebCore
33 {
34     class Settings;
35 };
36
37 class QWebPage;
38 class QWebSettingsPrivate;
39 class QUrl;
40
41 class QWEBKIT_EXPORT QWebSettings
42 {
43 public:
44     enum FontType {
45         StandardFont,
46         FixedFont,
47         SerifFont,
48         SansSerifFont,
49         CursiveFont,
50         FantasyFont
51     };
52     enum WebAttribute {
53         AutoLoadImages,
54         JavascriptEnabled,
55         JavaEnabled,
56         PluginsEnabled,
57         PrivateBrowsingEnabled,
58         JavascriptCanOpenWindows,
59         JavascriptCanAccessClipboard,
60         DeveloperExtrasEnabled,
61         LinksIncludedInFocusChain
62     };
63     enum WebGraphic {
64         MissingImageGraphic,
65         MissingPluginGraphic,
66         DefaultFaviconGraphic,
67         TextAreaResizeCornerGraphic
68     };
69     enum FontSize {
70         MinimumFontSize,
71         MinimumLogicalFontSize,
72         DefaultFontSize,
73         DefaultFixedFontSize
74     };
75
76     static QWebSettings *defaultSettings();
77
78     void setFontFamily(FontType type, const QString &family);
79     QString fontFamily(FontType type) const;
80     void resetFontFamily(FontType type);
81
82     void setFontSize(FontSize type, int size);
83     int fontSize(FontSize type) const;
84     void resetFontSize(FontSize type);
85
86     void setAttribute(WebAttribute attr, bool on = true);
87     bool testAttribute(WebAttribute attr) const;
88     void clearAttribute(WebAttribute attr);
89
90     void setUserStyleSheetLocation(const QUrl &location);
91     QUrl userStyleSheetLocation() const;
92
93     static void setIconDatabaseEnabled(bool enabled, const QString &location = QString());
94     static bool iconDatabaseEnabled();
95
96     static void setWebGraphic(WebGraphic type, const QPixmap &graphic);
97     static QPixmap webGraphic(WebGraphic type);
98
99 private:
100     friend class QWebPagePrivate;
101     friend class QWebSettingsPrivate;
102
103     Q_DISABLE_COPY(QWebSettings)
104
105     QWebSettings();
106     QWebSettings(WebCore::Settings *settings);
107     ~QWebSettings();
108
109     QWebSettingsPrivate *d;
110 };
111
112 #endif