|         |      1 /* | 
|         |      2  * Copyright (C) 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 <WebKit/WebHTMLView.h> | 
|         |     30  | 
|         |     31 @class DOMDocumentFragment; | 
|         |     32 @class DOMElement; | 
|         |     33 @class DOMNode; | 
|         |     34 @class DOMRange; | 
|         |     35 @class WebArchive; | 
|         |     36 @class WebFrameBridge; | 
|         |     37 @class WebView; | 
|         |     38 @class WebFrame; | 
|         |     39 @class WebPluginController; | 
|         |     40  | 
|         |     41 @protocol WebHTMLHighlighter | 
|         |     42 - (NSRect)highlightRectForLine:(NSRect)lineRect representedNode:(DOMNode *)node; | 
|         |     43 - (void)paintHighlightForBox:(NSRect)boxRect onLine:(NSRect)lineRect behindText:(BOOL)text entireLine:(BOOL)line representedNode:(DOMNode *)node; | 
|         |     44  | 
|         |     45 // the following methods are deprecated and will be removed once Mail switches to the new methods <rdar://problem/5050528> | 
|         |     46 - (NSRect)highlightRectForLine:(NSRect)lineRect; | 
|         |     47 - (void)paintHighlightForBox:(NSRect)boxRect onLine:(NSRect)lineRect behindText:(BOOL)text entireLine:(BOOL)line; | 
|         |     48 @end | 
|         |     49  | 
|         |     50 @interface WebHTMLView (WebPrivate) | 
|         |     51  | 
|         |     52 + (NSArray *)supportedMIMETypes; | 
|         |     53 + (NSArray *)supportedImageMIMETypes; | 
|         |     54 + (NSArray *)supportedNonImageMIMETypes; | 
|         |     55 + (NSArray *)unsupportedTextMIMETypes; | 
|         |     56  | 
|         |     57 - (void)close; | 
|         |     58  | 
|         |     59 // Modifier (flagsChanged) tracking SPI | 
|         |     60 + (void)_postFlagsChangedEvent:(NSEvent *)flagsChangedEvent; | 
|         |     61 - (void)_updateMouseoverWithFakeEvent; | 
|         |     62  | 
|         |     63 - (void)_setAsideSubviews; | 
|         |     64 - (void)_restoreSubviews; | 
|         |     65  | 
|         |     66 - (BOOL)_insideAnotherHTMLView; | 
|         |     67 - (void)_clearLastHitViewIfSelf; | 
|         |     68 - (void)_updateMouseoverWithEvent:(NSEvent *)event; | 
|         |     69  | 
|         |     70 + (NSArray *)_insertablePasteboardTypes; | 
|         |     71 + (NSArray *)_selectionPasteboardTypes; | 
|         |     72 - (void)_writeSelectionToPasteboard:(NSPasteboard *)pasteboard; | 
|         |     73  | 
|         |     74 - (void)_frameOrBoundsChanged; | 
|         |     75  | 
|         |     76 - (NSImage *)_dragImageForLinkElement:(NSDictionary *)element; | 
|         |     77 - (NSImage *)_dragImageForURL:(NSString*)linkURL withLabel:(NSString*)label; | 
|         |     78 - (void)_handleAutoscrollForMouseDragged:(NSEvent *)event; | 
|         |     79 - (WebPluginController *)_pluginController; | 
|         |     80  | 
|         |     81 // FIXME: _selectionRect is deprecated in favor of selectionRect, which is in protocol WebDocumentSelection. | 
|         |     82 // We can't remove this yet because it's still in use by Mail. | 
|         |     83 - (NSRect)_selectionRect; | 
|         |     84  | 
|         |     85 - (void)_startAutoscrollTimer:(NSEvent *)event; | 
|         |     86 - (void)_stopAutoscrollTimer; | 
|         |     87  | 
|         |     88 - (BOOL)_canEdit; | 
|         |     89 - (BOOL)_canEditRichly; | 
|         |     90 - (BOOL)_canAlterCurrentSelection; | 
|         |     91 - (BOOL)_hasSelection; | 
|         |     92 - (BOOL)_hasSelectionOrInsertionPoint; | 
|         |     93 - (BOOL)_isEditable; | 
|         |     94  | 
|         |     95 - (BOOL)_transparentBackground; | 
|         |     96 - (void)_setTransparentBackground:(BOOL)f; | 
|         |     97  | 
|         |     98 - (void)_setToolTip:(NSString *)string; | 
|         |     99  | 
|         |    100 // SPI's for Mail. | 
|         |    101 - (NSImage *)_selectionDraggingImage; | 
|         |    102 - (NSRect)_selectionDraggingRect; | 
|         |    103 - (DOMNode *)_insertOrderedList; | 
|         |    104 - (DOMNode *)_insertUnorderedList; | 
|         |    105 - (BOOL)_canIncreaseSelectionListLevel; | 
|         |    106 - (BOOL)_canDecreaseSelectionListLevel; | 
|         |    107 - (DOMNode *)_increaseSelectionListLevel; | 
|         |    108 - (DOMNode *)_increaseSelectionListLevelOrdered; | 
|         |    109 - (DOMNode *)_increaseSelectionListLevelUnordered; | 
|         |    110 - (void)_decreaseSelectionListLevel; | 
|         |    111 - (void)_setHighlighter:(id<WebHTMLHighlighter>)highlighter ofType:(NSString*)type; | 
|         |    112 - (void)_removeHighlighterOfType:(NSString*)type; | 
|         |    113 - (DOMDocumentFragment *)_documentFragmentFromPasteboard:(NSPasteboard *)pasteboard forType:(NSString *)pboardType inContext:(DOMRange *)context subresources:(NSArray **)subresources; | 
|         |    114  | 
|         |    115 // SPI for DumpRenderTree | 
|         |    116 - (void)_updateActiveState; | 
|         |    117  | 
|         |    118 // SPI for printing (should be converted to API someday). When the WebHTMLView isn't being printed | 
|         |    119 // directly, this method must be called before paginating, or the computed height might be incorrect. | 
|         |    120 // Typically this would be called from inside an override of -[NSView knowsPageRange:]. | 
|         |    121 - (void)_layoutForPrinting; | 
|         |    122  | 
|         |    123 @end |