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 COMPUTER, 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 COMPUTER, 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 WebKitEditingBehavior {
51    WebKitEditingMacBehavior = 0,
52    WebKitEditingWinBehavior,
53    WebKitEditingUnixBehavior
54} WebKitEditingBehavior;
55
56
57typedef enum WebKitCookieStorageAcceptPolicy {
58    WebKitCookieStorageAcceptPolicyAlways = 0,
59    WebKitCookieStorageAcceptPolicyNever,
60    WebKitCookieStorageAcceptPolicyOnlyFromMainDocumentDomain
61} WebKitCookieStorageAcceptPolicy;
62
63typedef enum WebCacheModel {
64    WebCacheModelDocumentViewer = 0,
65    WebCacheModelDocumentBrowser = 1,
66    WebCacheModelPrimaryWebBrowser = 2
67} WebCacheModel;
68
69[
70    object,
71    oleautomation,
72    hidden,
73    uuid(0930D594-A5A3-46e1-858E-AB17A13CD28E),
74    pointer_default(unique)
75]
76interface IWebPreferences : IUnknown
77{
78    HRESULT standardPreferences([out, retval] IWebPreferences** standardPreferences);
79
80    HRESULT initWithIdentifier([in] BSTR anIdentifier, [out, retval] IWebPreferences** preferences);
81    HRESULT identifier([out, retval] BSTR* ident);
82
83    HRESULT standardFontFamily([out, retval] BSTR* family);
84    HRESULT setStandardFontFamily([in] BSTR family);
85
86    HRESULT fixedFontFamily([out, retval] BSTR* family);
87    HRESULT setFixedFontFamily([in] BSTR family);
88
89    HRESULT serifFontFamily([out, retval] BSTR* fontFamily);
90    HRESULT setSerifFontFamily([in] BSTR family);
91
92    HRESULT sansSerifFontFamily([out, retval] BSTR* family);
93    HRESULT setSansSerifFontFamily([in] BSTR family);
94
95    HRESULT cursiveFontFamily([out, retval] BSTR* family);
96    HRESULT setCursiveFontFamily([in] BSTR family);
97
98    HRESULT fantasyFontFamily([out, retval] BSTR* family);
99    HRESULT setFantasyFontFamily([in] BSTR family);
100
101    HRESULT defaultFontSize([out, retval] int* fontSize);
102    HRESULT setDefaultFontSize([in] int fontSize);
103
104    HRESULT defaultFixedFontSize([out, retval] int* fontSize);
105    HRESULT setDefaultFixedFontSize([in] int fontSize);
106
107    HRESULT minimumFontSize([out, retval] int* fontSize);
108    HRESULT setMinimumFontSize([in] int fontSize);
109
110    HRESULT minimumLogicalFontSize([out, retval] int* fontSize);
111    HRESULT setMinimumLogicalFontSize([in] int fontSize);
112
113    HRESULT defaultTextEncodingName([out, retval] BSTR* name);
114    HRESULT setDefaultTextEncodingName([in] BSTR name);
115
116    HRESULT userStyleSheetEnabled([out, retval] BOOL* enabled);
117    HRESULT setUserStyleSheetEnabled([in] BOOL enabled);
118
119    HRESULT userStyleSheetLocation([out, retval] BSTR* location);
120    HRESULT setUserStyleSheetLocation([in] BSTR location);
121
122    HRESULT isJavaEnabled([out, retval] BOOL* enabled);
123    HRESULT setJavaEnabled([in] BOOL enabled);
124
125    HRESULT isJavaScriptEnabled([out, retval] BOOL* enabled);
126    HRESULT setJavaScriptEnabled([in] BOOL enabled);
127
128    HRESULT javaScriptCanOpenWindowsAutomatically([out, retval] BOOL* enabled);
129    HRESULT setJavaScriptCanOpenWindowsAutomatically([in] BOOL enabled);
130
131    HRESULT arePlugInsEnabled([out, retval] BOOL* enabled);
132    HRESULT setPlugInsEnabled([in] BOOL enabled);
133
134    HRESULT allowsAnimatedImages([out, retval] BOOL* enabled);
135    HRESULT setAllowsAnimatedImages([in] BOOL enabled);
136    HRESULT allowAnimatedImageLooping([out, retval] BOOL* enabled);
137    HRESULT setAllowAnimatedImageLooping([in] BOOL enabled);
138
139    HRESULT setLoadsImagesAutomatically([in] BOOL enabled);
140    HRESULT loadsImagesAutomatically([out, retval] BOOL* enabled);
141
142    HRESULT setAutosaves([in] BOOL enabled);
143    HRESULT autosaves([out, retval] BOOL* enabled);
144
145    HRESULT setShouldPrintBackgrounds([in] BOOL enabled);
146    HRESULT shouldPrintBackgrounds([out, retval] BOOL* enabled);
147
148    HRESULT setPrivateBrowsingEnabled([in] BOOL enabled);
149    HRESULT privateBrowsingEnabled([out, retval] BOOL* enabled);
150
151    HRESULT setTabsToLinks([in] BOOL enabled);
152    HRESULT tabsToLinks([out, retval] BOOL* enabled);
153
154    HRESULT textAreasAreResizable([out, retval] BOOL* enabled);
155    HRESULT setTextAreasAreResizable([in] BOOL enabled);
156
157    HRESULT unused1();
158    HRESULT unused2();
159
160    HRESULT iconDatabaseLocation([out, retval] BSTR* location);
161    HRESULT setIconDatabaseLocation([in] BSTR location);
162
163    HRESULT iconDatabaseEnabled([out, retval] BOOL* enabled);
164    HRESULT setIconDatabaseEnabled([in] BOOL enabled);
165
166    HRESULT fontSmoothing([out, retval] FontSmoothingType* smoothingType);
167    HRESULT setFontSmoothing([in] FontSmoothingType smoothingType);
168
169    HRESULT editableLinkBehavior([out, retval] WebKitEditableLinkBehavior* editableLinkBehavior);
170    HRESULT setEditableLinkBehavior([in] WebKitEditableLinkBehavior behavior);
171
172    HRESULT cookieStorageAcceptPolicy([out, retval] WebKitCookieStorageAcceptPolicy* acceptPolicy);
173    HRESULT setCookieStorageAcceptPolicy([in] WebKitCookieStorageAcceptPolicy acceptPolicy);
174
175    HRESULT continuousSpellCheckingEnabled([out, retval] BOOL* enabled);
176    HRESULT setContinuousSpellCheckingEnabled([in] BOOL enabled);
177    HRESULT grammarCheckingEnabled([out, retval] BOOL* enabled);
178    HRESULT setGrammarCheckingEnabled([in] BOOL enabled);
179    HRESULT allowContinuousSpellChecking([out, retval] BOOL *allowed);
180    HRESULT setAllowContinuousSpellChecking([in] BOOL allowed);
181
182    HRESULT isDOMPasteAllowed([out, retval] BOOL *allowed);
183    HRESULT setDOMPasteAllowed([in] BOOL allowed);
184
185    HRESULT usesPageCache([out, retval] BOOL* usesPageCache);
186    HRESULT setUsesPageCache([in] BOOL usesPageCache);
187
188    HRESULT cacheModel([out, retval] WebCacheModel* cacheModel);
189    HRESULT setCacheModel([in] WebCacheModel cacheModel);
190
191    HRESULT setShouldPaintCustomScrollbars(BOOL shouldPaint);
192    HRESULT shouldPaintCustomScrollbars(BOOL *shouldPaint);
193
194    HRESULT setZoomsTextOnly(BOOL zoomsTextOnly);
195    HRESULT zoomsTextOnly(BOOL *zoomsTextOnly);
196
197    HRESULT setAcceleratedCompositingEnabled(BOOL acceleratedCompositingEnabled);
198    HRESULT acceleratedCompositingEnabled(BOOL *acceleratedCompositingEnabled);
199
200    HRESULT editingBehavior([out, retval] WebKitEditingBehavior* editingBehavior);
201    HRESULT setEditingBehavior([in] WebKitEditingBehavior behavior);
202}
203