webengine/osswebengine/WebKit/WebView/WebPreferences.h
changeset 0 dd21522fd290
equal deleted inserted replaced
-1:000000000000 0:dd21522fd290
       
     1 /*
       
     2  * Copyright (C) 2003, 2004, 2005 Apple Computer, 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  *
       
     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 #import <Foundation/Foundation.h>
       
    30 
       
    31 #if MAC_OS_X_VERSION_MAX_ALLOWED <= MAC_OS_X_VERSION_10_4
       
    32 #define WebNSUInteger unsigned int
       
    33 #else
       
    34 #define WebNSUInteger NSUInteger
       
    35 #endif
       
    36 
       
    37 /*!
       
    38 @enum WebCacheModel
       
    39 
       
    40 @abstract Specifies a usage model for a WebView, which WebKit will use to 
       
    41 determine its caching behavior.
       
    42 
       
    43 @constant WebCacheModelDocumentViewer Appropriate for a WebView displaying 
       
    44 a fixed document -- like a splash screen, a chat document, or a word processing 
       
    45 document -- with no UI for navigation. The WebView will behave like any other 
       
    46 view, releasing resources when they are no longer referenced. Remote resources, 
       
    47 if any, will be cached to disk. This is the most memory-efficient setting.
       
    48 
       
    49 Examples: iChat, Mail, TextMate, Growl.
       
    50 
       
    51 @constant WebCacheModelDocumentBrowser Appropriate for a WebView displaying 
       
    52 a browsable series of documents with a UI for navigating between them -- for 
       
    53 example, a reference materials browser or a website designer. The WebView will 
       
    54 cache a reasonable number of resources and previously viewed documents in 
       
    55 memory and/or on disk.
       
    56 
       
    57 Examples: Dictionary, Help Viewer, Coda.
       
    58 
       
    59 @constant WebCacheModelPrimaryWebBrowser Appropriate for a WebView in the 
       
    60 application that acts as the user's primary web browser. The WebView will cache
       
    61 a very large number of resources and previously viewed documents in memory 
       
    62 and/or on disk.
       
    63 
       
    64 Examples: Safari, OmniWeb, Shiira.
       
    65 */
       
    66 enum {
       
    67     WebCacheModelDocumentViewer = 0,
       
    68     WebCacheModelDocumentBrowser = 1,
       
    69     WebCacheModelPrimaryWebBrowser = 2
       
    70 };
       
    71 typedef WebNSUInteger WebCacheModel;
       
    72 
       
    73 @class WebPreferencesPrivate;
       
    74 
       
    75 extern NSString *WebPreferencesChangedNotification;
       
    76 
       
    77 /*!
       
    78     @class WebPreferences
       
    79 */
       
    80 @interface WebPreferences: NSObject <NSCoding>
       
    81 {
       
    82 @private
       
    83     WebPreferencesPrivate *_private;
       
    84 }
       
    85 
       
    86 /*!
       
    87     @method standardPreferences
       
    88 */
       
    89 + (WebPreferences *)standardPreferences;
       
    90 
       
    91 /*!
       
    92     @method initWithIdentifier:
       
    93     @param anIdentifier A string used to identify the WebPreferences.
       
    94     @discussion WebViews can share instances of WebPreferences by using an instance of WebPreferences with
       
    95     the same identifier.  Typically, instance are not created directly.  Instead you set the preferences
       
    96     identifier on a WebView.  The identifier is used as a prefix that is added to the user defaults keys
       
    97     for the WebPreferences.
       
    98     @result Returns a new instance of WebPreferences or a previously allocated instance with the same identifier.
       
    99 */
       
   100 - (id)initWithIdentifier:(NSString *)anIdentifier;
       
   101 
       
   102 /*!
       
   103     @method identifier
       
   104     @result Returns the identifier for this WebPreferences.
       
   105 */
       
   106 - (NSString *)identifier;
       
   107 
       
   108 /*!
       
   109     @method standardFontFamily
       
   110 */
       
   111 - (NSString *)standardFontFamily;
       
   112 
       
   113 /*!
       
   114     @method setStandardFontFamily:
       
   115     @param family
       
   116 */
       
   117 - (void)setStandardFontFamily:(NSString *)family;
       
   118 
       
   119 /*!
       
   120     @method fixedFontFamily
       
   121 */
       
   122 - (NSString *)fixedFontFamily;
       
   123 
       
   124 /*!
       
   125     @method setFixedFontFamily:
       
   126     @param family
       
   127 */
       
   128 - (void)setFixedFontFamily:(NSString *)family;
       
   129 
       
   130 /*!
       
   131     @method serifFontFamily
       
   132 */
       
   133 - (NSString *)serifFontFamily;
       
   134 
       
   135 /*!
       
   136     @method setSerifFontFamily:
       
   137     @param family
       
   138 */
       
   139 - (void)setSerifFontFamily:(NSString *)family;
       
   140 
       
   141 /*!
       
   142     @method sansSerifFontFamily
       
   143 */
       
   144 - (NSString *)sansSerifFontFamily;
       
   145 
       
   146 /*!
       
   147     @method setSansSerifFontFamily:
       
   148     @param family
       
   149 */
       
   150 - (void)setSansSerifFontFamily:(NSString *)family;
       
   151 
       
   152 /*!
       
   153     @method cursiveFontFamily
       
   154 */
       
   155 - (NSString *)cursiveFontFamily;
       
   156 
       
   157 /*!
       
   158     @method setCursiveFontFamily:
       
   159     @param family
       
   160 */
       
   161 - (void)setCursiveFontFamily:(NSString *)family;
       
   162 
       
   163 /*!
       
   164     @method fantasyFontFamily
       
   165 */
       
   166 - (NSString *)fantasyFontFamily;
       
   167 
       
   168 /*!
       
   169     @method setFantasyFontFamily:
       
   170     @param family
       
   171 */
       
   172 - (void)setFantasyFontFamily:(NSString *)family;
       
   173 
       
   174 /*!
       
   175     @method defaultFontSize
       
   176 */
       
   177 - (int)defaultFontSize;
       
   178 
       
   179 /*!
       
   180     @method setDefaultFontSize:
       
   181     @param size
       
   182 */
       
   183 - (void)setDefaultFontSize:(int)size;
       
   184 
       
   185 /*!
       
   186     @method defaultFixedFontSize
       
   187 */
       
   188 - (int)defaultFixedFontSize;
       
   189 
       
   190 /*!
       
   191     @method setDefaultFixedFontSize:
       
   192     @param size
       
   193 */
       
   194 - (void)setDefaultFixedFontSize:(int)size;
       
   195 
       
   196 /*!
       
   197     @method minimumFontSize
       
   198 */
       
   199 - (int)minimumFontSize;
       
   200 
       
   201 /*!
       
   202     @method setMinimumFontSize:
       
   203     @param size
       
   204 */
       
   205 - (void)setMinimumFontSize:(int)size;
       
   206 
       
   207 /*!
       
   208     @method minimumLogicalFontSize
       
   209 */
       
   210 - (int)minimumLogicalFontSize;
       
   211 
       
   212 /*!
       
   213     @method setMinimumLogicalFontSize:
       
   214     @param size
       
   215 */
       
   216 - (void)setMinimumLogicalFontSize:(int)size;
       
   217 
       
   218 /*!
       
   219     @method defaultTextEncodingName
       
   220 */
       
   221 - (NSString *)defaultTextEncodingName;
       
   222 
       
   223 /*!
       
   224     @method setDefaultTextEncodingName:
       
   225     @param encoding
       
   226 */
       
   227 - (void)setDefaultTextEncodingName:(NSString *)encoding;
       
   228 
       
   229 /*!
       
   230     @method userStyleSheetEnabled
       
   231 */
       
   232 - (BOOL)userStyleSheetEnabled;
       
   233 
       
   234 /*!
       
   235     @method setUserStyleSheetEnabled:
       
   236     @param flag
       
   237 */
       
   238 - (void)setUserStyleSheetEnabled:(BOOL)flag;
       
   239 
       
   240 /*!
       
   241     @method userStyleSheetLocation
       
   242     @discussion The location of the user style sheet.
       
   243 */
       
   244 - (NSURL *)userStyleSheetLocation;
       
   245 
       
   246 /*!
       
   247     @method setUserStyleSheetLocation:
       
   248     @param URL The location of the user style sheet.
       
   249 */
       
   250 - (void)setUserStyleSheetLocation:(NSURL *)URL;
       
   251 
       
   252 /*!
       
   253     @method isJavaEnabled
       
   254 */
       
   255 - (BOOL)isJavaEnabled;
       
   256 
       
   257 /*!
       
   258     @method setJavaEnabled:
       
   259     @param flag
       
   260 */
       
   261 - (void)setJavaEnabled:(BOOL)flag;
       
   262 
       
   263 /*!
       
   264     @method isJavaScriptEnabled
       
   265 */
       
   266 - (BOOL)isJavaScriptEnabled;
       
   267 
       
   268 /*!
       
   269     @method setJavaScriptEnabled:
       
   270     @param flag
       
   271 */
       
   272 - (void)setJavaScriptEnabled:(BOOL)flag;
       
   273 
       
   274 /*!
       
   275     @method JavaScriptCanOpenWindowsAutomatically
       
   276 */
       
   277 - (BOOL)javaScriptCanOpenWindowsAutomatically;
       
   278 
       
   279 /*!
       
   280     @method setJavaScriptCanOpenWindowsAutomatically:
       
   281     @param flag
       
   282 */
       
   283 - (void)setJavaScriptCanOpenWindowsAutomatically:(BOOL)flag;
       
   284 
       
   285 /*!
       
   286     @method arePlugInsEnabled
       
   287 */
       
   288 - (BOOL)arePlugInsEnabled;
       
   289 
       
   290 /*!
       
   291     @method setPlugInsEnabled:
       
   292     @param flag
       
   293 */
       
   294 - (void)setPlugInsEnabled:(BOOL)flag;
       
   295 
       
   296 /*!
       
   297     @method allowAnimatedImages
       
   298 */
       
   299 - (BOOL)allowsAnimatedImages;
       
   300 
       
   301 /*!
       
   302     @method setAllowAnimatedImages:
       
   303     @param flag
       
   304 */
       
   305 - (void)setAllowsAnimatedImages:(BOOL)flag;
       
   306 
       
   307 /*!
       
   308     @method allowAnimatedImageLooping
       
   309 */
       
   310 - (BOOL)allowsAnimatedImageLooping;
       
   311 
       
   312 /*!
       
   313     @method setAllowAnimatedImageLooping:
       
   314     @param flag
       
   315 */
       
   316 - (void)setAllowsAnimatedImageLooping: (BOOL)flag;
       
   317 
       
   318 /*!
       
   319     @method setWillLoadImagesAutomatically:
       
   320     @param flag
       
   321 */
       
   322 - (void)setLoadsImagesAutomatically: (BOOL)flag;
       
   323 
       
   324 /*!
       
   325     @method willLoadImagesAutomatically
       
   326 */
       
   327 - (BOOL)loadsImagesAutomatically;
       
   328 
       
   329 /*!
       
   330     @method setAutosaves:
       
   331     @param flag 
       
   332     @discussion If autosave preferences is YES the settings represented by
       
   333     WebPreferences will be stored in the user defaults database.
       
   334 */
       
   335 - (void)setAutosaves:(BOOL)flag;
       
   336 
       
   337 /*!
       
   338     @method autosaves
       
   339     @result The value of the autosave preferences flag.
       
   340 */
       
   341 - (BOOL)autosaves;
       
   342 
       
   343 /*!
       
   344     @method setShouldPrintBackgrounds:
       
   345     @param flag
       
   346 */
       
   347 - (void)setShouldPrintBackgrounds:(BOOL)flag;
       
   348 
       
   349 /*!
       
   350     @method shouldPrintBackgrounds
       
   351     @result The value of the shouldPrintBackgrounds preferences flag
       
   352 */
       
   353 - (BOOL)shouldPrintBackgrounds;
       
   354 
       
   355 /*!
       
   356     @method setPrivateBrowsingEnabled:
       
   357     @param flag 
       
   358     @abstract If private browsing is enabled, WebKit will not store information
       
   359     about sites the user visits.
       
   360  */
       
   361 - (void)setPrivateBrowsingEnabled:(BOOL)flag;
       
   362 
       
   363 /*!
       
   364     @method privateBrowsingEnabled
       
   365  */
       
   366 - (BOOL)privateBrowsingEnabled;
       
   367 
       
   368 /*!
       
   369     @method setTabsToLinks:
       
   370     @param flag 
       
   371     @abstract If tabsToLinks is YES, the tab key will focus links and form controls. 
       
   372     The option key temporarily reverses this preference.
       
   373 */
       
   374 - (void)setTabsToLinks:(BOOL)flag;
       
   375 
       
   376 /*!
       
   377     @method tabsToLinks
       
   378 */
       
   379 - (BOOL)tabsToLinks;
       
   380 
       
   381 /*!
       
   382     @method setUsesPageCache:
       
   383     @abstract Sets whether the receiver's associated WebViews use the shared 
       
   384     page cache.
       
   385     @param UsesPageCache Whether the receiver's associated WebViews use the 
       
   386     shared page cache.
       
   387     @discussion Pages are cached as they are added to a WebBackForwardList, and
       
   388     removed from the cache as they are removed from a WebBackForwardList. Because 
       
   389     the page cache is global, caching a page in one WebBackForwardList may cause
       
   390     a page in another WebBackForwardList to be evicted from the cache.
       
   391 */
       
   392 - (void)setUsesPageCache:(BOOL)usesPageCache;
       
   393 
       
   394 /*!
       
   395     @method usesPageCache
       
   396     @abstract Returns whether the receiver should use the shared page cache.
       
   397     @result Whether the receiver should use the shared page cache.
       
   398     @discussion Pages are cached as they are added to a WebBackForwardList, and
       
   399     removed from the cache as they are removed from a WebBackForwardList. Because 
       
   400     the page cache is global, caching a page in one WebBackForwardList may cause
       
   401     a page in another WebBackForwardList to be evicted from the cache.
       
   402 */
       
   403 - (BOOL)usesPageCache;
       
   404 
       
   405 /*!
       
   406 @method setCacheModel:
       
   407 
       
   408 @abstract Specifies a usage model for a WebView, which WebKit will use to 
       
   409 determine its caching behavior.
       
   410 
       
   411 @param cacheModel The WebView's usage model for WebKit. If necessary, WebKit 
       
   412 will prune its caches to match cacheModel.
       
   413 
       
   414 @discussion Research indicates that users tend to browse within clusters of 
       
   415 documents that hold resources in common, and to revisit previously visited 
       
   416 documents. WebKit and the frameworks below it include built-in caches that take 
       
   417 advantage of these patterns, substantially improving document load speed in 
       
   418 browsing situations. The WebKit cache model controls the behaviors of all of 
       
   419 these caches, including NSURLCache and the various WebCore caches.
       
   420 
       
   421 Applications with a browsing interface can improve document load speed 
       
   422 substantially by specifying WebCacheModelDocumentBrowser. Applications without 
       
   423 a browsing interface can reduce memory usage substantially by specifying 
       
   424 WebCacheModelDocumentViewer.
       
   425 
       
   426 If setCacheModel: is not called, WebKit will select a cache model automatically.
       
   427 */
       
   428 - (void)setCacheModel:(WebCacheModel)cacheModel;
       
   429 
       
   430 /*!
       
   431 @method cacheModel:
       
   432 
       
   433 @abstract Returns the usage model according to which WebKit determines its 
       
   434 caching behavior.
       
   435 
       
   436 @result The usage model.
       
   437 */
       
   438 - (WebCacheModel)cacheModel;
       
   439 
       
   440 @end
       
   441 
       
   442 #undef WebNSUInteger