Unreviewed, rolling out r96108, r96111, r96113, and r96116.
[WebKit-https.git] / Source / WebKit / wx / WebSettings.h
1 /*
2  * Copyright (C) 2009 Kevin Ollivier.  All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions
6  * are met:
7  *
8  * 1.  Redistributions of source code must retain the above copyright
9  *     notice, this list of conditions and the following disclaimer. 
10  * 2.  Redistributions in binary form must reproduce the above copyright
11  *     notice, this list of conditions and the following disclaimer in the
12  *     documentation and/or other materials provided with the distribution. 
13  * 3.  Neither the name of Apple Computer, Inc. ("Apple") nor the names of
14  *     its contributors may be used to endorse or promote products derived
15  *     from this software without specific prior written permission. 
16  *
17  * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
18  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
19  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
20  * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
21  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
22  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
23  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
24  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27  */
28  
29 #ifndef WebSettings_h
30 #define WebSettings_h
31
32 #include "wx/wxprec.h"
33 #ifndef WX_PRECOMP
34     #include "wx/wx.h"
35 #endif
36
37 #include "WebKitDefines.h"
38
39 namespace WebCore {
40 class Settings;
41 }
42
43 enum wxEditableLinkBehavior {
44     wxEditableLinkDefaultBehavior,
45     wxEditableLinkAlwaysLive,
46     wxEditableLinkOnlyLiveWithShiftKey,
47     wxEditableLinkLiveWhenNotFocused,
48     wxEditableLinkNeverLive
49 };
50
51 /**
52     @class wxWebSettings
53     
54     This class is used to control the configurable aspects of the WebKit engine.
55     
56     Do not instantiate this object directly. Instead, create a wxWebView and
57     call its wxWebView::GetWebSettings() method to get and change that WebView's settings.
58     
59 */
60
61 class WXDLLIMPEXP_WEBKIT wxWebSettings: public wxObject {
62 public:
63     wxWebSettings(WebCore::Settings* settings) :
64         wxObject(),
65         m_settings(settings)
66     {}
67     
68     wxWebSettings() : wxObject() {}
69     
70     virtual ~wxWebSettings() { }
71
72     /**
73         Sets the default font size for fixed fonts.
74     */
75     void SetDefaultFixedFontSize(int size);
76     
77     /**
78         Returns the default font size for fixed fonts.
79     */
80     int GetDefaultFixedFontSize() const;
81     
82     /**
83         Sets the default font size for fonts.
84     */
85     void SetDefaultFontSize(int size);
86
87     /**
88         Returns the default font size for fonts.
89     */
90     int GetDefaultFontSize() const;
91     
92     /**
93         Sets the minimum acceptable font size.
94     */
95     void SetMinimumFontSize(int size);
96
97     /**
98         Returns the minimum acceptable font size.
99     */
100     int GetMinimumFontSize() const;
101     
102     /**
103         Sets whether or not images are loaded automatically. (e.g. in email 
104         programs you may wish to not load images until you confirm it is not SPAM)
105     */
106     void SetLoadsImagesAutomatically(bool loadAutomatically);
107     
108     /**
109         Returns whether or not images are loaded automatically.
110     */
111     bool LoadsImagesAutomatically() const;
112     
113     /**
114         Sets whether or not the WebView runs JavaScript code.
115     */
116     void SetJavaScriptEnabled(bool enabled);
117
118     /**
119         Returns whether or not the WebView runs JavaScript code.
120     */
121     bool IsJavaScriptEnabled() const;
122     
123     /**
124         Sets the path where local data will be stored.
125     */
126     void SetLocalStoragePath(const wxString& path);
127
128     /**
129         Returns the path where local data will be stored.
130     */
131     wxString GetLocalStoragePath() const;
132     
133     /**
134         Sets how links are handled when the wxWebView is in editing mode. 
135     */    
136     void SetEditableLinkBehavior(wxEditableLinkBehavior behavior);
137     
138     /**
139         Returns how links are handled when the wxWebView is in editing mode. 
140     */   
141     wxEditableLinkBehavior GetEditableLinkBehavior() const;
142     
143     /**
144         Sets whether or not web pages can load plugins.
145     */
146     void SetPluginsEnabled(bool enabled);
147     
148     /**
149         Returns whether or not web pages can load plugins.
150     */    
151     bool ArePluginsEnabled() const;
152     
153 private:
154     WebCore::Settings* m_settings;
155
156 };
157
158 #endif // WebSettings_h