1/*
2 * Copyright (C) 2006, 2007, 2008 Apple Inc.  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 * 1. Redistributions of source code must retain the above copyright
8 *    notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright
10 *    notice, this list of conditions and the following disclaimer in the
11 *    documentation and/or other materials provided with the distribution.
12 *
13 * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
14 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
17 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
18 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
19 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
20 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
21 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24 */
25
26cpp_quote("#define WebPreferencesChangedNotification TEXT(\"WebPreferencesChangedNotification\")")
27cpp_quote("#define WebPreferencesRemovedNotification TEXT(\"WebPreferencesRemovedNotification\")")
28
29#ifndef DO_NO_IMPORTS
30import "oaidl.idl";
31import "ocidl.idl";
32#endif
33
34typedef enum FontSmoothingType {
35    FontSmoothingTypeStandard=0,
36    FontSmoothingTypeLight,
37    FontSmoothingTypeMedium,
38    FontSmoothingTypeStrong,
39    FontSmoothingTypeWindows
40} FontSmoothingType;
41
42typedef enum WebKitEditableLinkBehavior {
43    WebKitEditableLinkDefaultBehavior = 0,
44    WebKitEditableLinkAlwaysLive,
45    WebKitEditableLinkOnlyLiveWithShiftKey,
46    WebKitEditableLinkLiveWhenNotFocused,
47    WebKitEditableLinkNeverLive
48} WebKitEditableLinkBehavior;
49
50typedef enum WebKitCookieStorageAcceptPolicy {
51    WebKitCookieStorageAcceptPolicyAlways = 0,
52    WebKitCookieStorageAcceptPolicyNever,
53    WebKitCookieStorageAcceptPolicyOnlyFromMainDocumentDomain
54} WebKitCookieStorageAcceptPolicy;
55
56typedef enum WebCacheModel {
57    WebCacheModelDocumentViewer = 0,
58    WebCacheModelDocumentBrowser = 1,
59    WebCacheModelPrimaryWebBrowser = 2
60} WebCacheModel;
61
62[
63    object,
64    oleautomation,
65    hidden,
66    uuid(0930D594-A5A3-46e1-858E-AB17A13CD28E),
67    pointer_default(unique)
68]
69interface IWebPreferences : IUnknown
70{
71    HRESULT standardPreferences([out, retval] IWebPreferences** standardPreferences);
72
73    HRESULT initWithIdentifier([in] BSTR anIdentifier, [out, retval] IWebPreferences** preferences);
74    HRESULT identifier([out, retval] BSTR* ident);
75
76    HRESULT standardFontFamily([out, retval] BSTR* family);
77    HRESULT setStandardFontFamily([in] BSTR family);
78
79    HRESULT fixedFontFamily([out, retval] BSTR* family);
80    HRESULT setFixedFontFamily([in] BSTR family);
81
82    HRESULT serifFontFamily([out, retval] BSTR* fontFamily);
83    HRESULT setSerifFontFamily([in] BSTR family);
84
85    HRESULT sansSerifFontFamily([out, retval] BSTR* family);
86    HRESULT setSansSerifFontFamily([in] BSTR family);
87
88    HRESULT cursiveFontFamily([out, retval] BSTR* family);
89    HRESULT setCursiveFontFamily([in] BSTR family);
90
91    HRESULT fantasyFontFamily([out, retval] BSTR* family);
92    HRESULT setFantasyFontFamily([in] BSTR family);
93
94    HRESULT defaultFontSize([out, retval] int* fontSize);
95    HRESULT setDefaultFontSize([in] int fontSize);
96
97    HRESULT defaultFixedFontSize([out, retval] int* fontSize);
98    HRESULT setDefaultFixedFontSize([in] int fontSize);
99
100    HRESULT minimumFontSize([out, retval] int* fontSize);
101    HRESULT setMinimumFontSize([in] int fontSize);
102
103    HRESULT minimumLogicalFontSize([out, retval] int* fontSize);
104    HRESULT setMinimumLogicalFontSize([in] int fontSize);
105
106    HRESULT defaultTextEncodingName([out, retval] BSTR* name);
107    HRESULT setDefaultTextEncodingName([in] BSTR name);
108
109    HRESULT userStyleSheetEnabled([out, retval] BOOL* enabled);
110    HRESULT setUserStyleSheetEnabled([in] BOOL enabled);
111
112    HRESULT userStyleSheetLocation([out, retval] BSTR* location);
113    HRESULT setUserStyleSheetLocation([in] BSTR location);
114
115    HRESULT isJavaEnabled([out, retval] BOOL* enabled);
116    HRESULT setJavaEnabled([in] BOOL enabled);
117
118    HRESULT isJavaScriptEnabled([out, retval] BOOL* enabled);
119    HRESULT setJavaScriptEnabled([in] BOOL enabled);
120
121    HRESULT javaScriptCanOpenWindowsAutomatically([out, retval] BOOL* enabled);
122    HRESULT setJavaScriptCanOpenWindowsAutomatically([in] BOOL enabled);
123
124    HRESULT arePlugInsEnabled([out, retval] BOOL* enabled);
125    HRESULT setPlugInsEnabled([in] BOOL enabled);
126
127    HRESULT allowsAnimatedImages([out, retval] BOOL* enabled);
128    HRESULT setAllowsAnimatedImages([in] BOOL enabled);
129    HRESULT allowAnimatedImageLooping([out, retval] BOOL* enabled);
130    HRESULT setAllowAnimatedImageLooping([in] BOOL enabled);
131
132    HRESULT setLoadsImagesAutomatically([in] BOOL enabled);
133    HRESULT loadsImagesAutomatically([out, retval] BOOL* enabled);
134
135    HRESULT setAutosaves([in] BOOL enabled);
136    HRESULT autosaves([out, retval] BOOL* enabled);
137
138    HRESULT setShouldPrintBackgrounds([in] BOOL enabled);
139    HRESULT shouldPrintBackgrounds([out, retval] BOOL* enabled);
140
141    HRESULT setPrivateBrowsingEnabled([in] BOOL enabled);
142    HRESULT privateBrowsingEnabled([out, retval] BOOL* enabled);
143
144    HRESULT setTabsToLinks([in] BOOL enabled);
145    HRESULT tabsToLinks([out, retval] BOOL* enabled);
146
147    HRESULT textAreasAreResizable([out, retval] BOOL* enabled);
148    HRESULT setTextAreasAreResizable([in] BOOL enabled);
149
150    HRESULT unused1();
151    HRESULT unused2();
152
153    HRESULT iconDatabaseLocation([out, retval] BSTR* location);
154    HRESULT setIconDatabaseLocation([in] BSTR location);
155
156    HRESULT iconDatabaseEnabled([out, retval] BOOL* enabled);
157    HRESULT setIconDatabaseEnabled([in] BOOL enabled);
158
159    HRESULT fontSmoothing([out, retval] FontSmoothingType* smoothingType);
160    HRESULT setFontSmoothing([in] FontSmoothingType smoothingType);
161
162    HRESULT editableLinkBehavior([out, retval] WebKitEditableLinkBehavior* editableLinkBehavior);
163    HRESULT setEditableLinkBehavior([in] WebKitEditableLinkBehavior behavior);
164
165    HRESULT cookieStorageAcceptPolicy([out, retval] WebKitCookieStorageAcceptPolicy* acceptPolicy);
166    HRESULT setCookieStorageAcceptPolicy([in] WebKitCookieStorageAcceptPolicy acceptPolicy);
167
168    HRESULT continuousSpellCheckingEnabled([out, retval] BOOL* enabled);
169    HRESULT setContinuousSpellCheckingEnabled([in] BOOL enabled);
170    HRESULT grammarCheckingEnabled([out, retval] BOOL* enabled);
171    HRESULT setGrammarCheckingEnabled([in] BOOL enabled);
172    HRESULT allowContinuousSpellChecking([out, retval] BOOL *allowed);
173    HRESULT setAllowContinuousSpellChecking([in] BOOL allowed);
174
175    HRESULT isDOMPasteAllowed([out, retval] BOOL *allowed);
176    HRESULT setDOMPasteAllowed([in] BOOL allowed);
177
178    HRESULT usesPageCache([out, retval] BOOL* usesPageCache);
179    HRESULT setUsesPageCache([in] BOOL usesPageCache);
180
181    HRESULT cacheModel([out, retval] WebCacheModel* cacheModel);
182    HRESULT setCacheModel([in] WebCacheModel cacheModel);
183
184    HRESULT unused3();
185    HRESULT unused4();
186
187    HRESULT setZoomsTextOnly(BOOL zoomsTextOnly);
188    HRESULT zoomsTextOnly(BOOL *zoomsTextOnly);
189
190    HRESULT setAcceleratedCompositingEnabled(BOOL acceleratedCompositingEnabled);
191    HRESULT acceleratedCompositingEnabled(BOOL *acceleratedCompositingEnabled);
192
193    HRESULT unused5();
194    HRESULT unused6();
195
196    HRESULT setAVFoundationEnabled(BOOL avFoundationEnabled);
197    HRESULT avFoundationEnabled(BOOL *avFoundationEnabled);
198
199    HRESULT pictographFontFamily([out, retval] BSTR* family);
200    HRESULT setPictographFontFamily([in] BSTR family);
201
202    HRESULT setShouldDisplaySubtitles(BOOL shouldDisplaySubtitles);
203    HRESULT shouldDisplaySubtitles(BOOL *shouldDisplaySubtitles);
204
205    HRESULT setShouldDisplayCaptions(BOOL shouldDisplayCaptions);
206    HRESULT shouldDisplayCaptions(BOOL *shouldDisplayCaptions);
207
208    HRESULT setShouldDisplayTextDescriptions(BOOL shouldDisplayTextDescriptions);
209    HRESULT shouldDisplayTextDescriptions(BOOL *shouldDisplayTextDescriptions);
210
211    HRESULT isCSSRegionsEnabled([out, retval] BOOL* enabled);
212    HRESULT setCSSRegionsEnabled([in] BOOL enabled);
213
214    HRESULT unused7();
215    HRESULT unused8();
216}
217