Remove STREAMS_API compilation guard
[WebKit-https.git] / Source / WebKitLegacy / mac / WebView / WebDocument.h
1 /*
2  * Copyright (C) 2003, 2004, 2005 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  *
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 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 !TARGET_OS_IPHONE
32 #import <AppKit/AppKit.h>
33 #else
34 #import <WebKitLegacy/WAKAppKitStubs.h>
35 #import <WebKitLegacy/WAKView.h>
36 #endif
37
38 @class NSError;
39 @class WebDataSource;
40
41 /*!
42     @protocol WebDocumentView
43     @discussion Protocol implemented by the document view of WebFrameView
44 */
45 @protocol WebDocumentView <NSObject>
46
47 /*!
48     @method setDataSource:
49     @abstract Called when the corresponding data source has been created.
50     @param dataSource The corresponding data source.
51 */
52 - (void)setDataSource:(WebDataSource *)dataSource;
53
54 /*!
55     @method dataSourceUpdated:
56     @abstract Called when the corresponding data source has received data.
57     @param dataSource The corresponding data source.
58 */
59 - (void)dataSourceUpdated:(WebDataSource *)dataSource;
60
61 /*!
62     @method setNeedsLayout:
63     @discussion Called when WebKit has determined that the document view needs to layout.
64     This method should simply set a flag and call layout from drawRect if the flag is YES.
65     @param flag YES to cause a layout, no to not cause a layout.
66 */
67 - (void)setNeedsLayout:(BOOL)flag;
68
69 /*!
70     @method layout
71     @discussion Called when the document view must immediately layout. For simple views,
72     setting the frame is a sufficient implementation of this method.
73 */
74 - (void)layout;
75
76 /*!
77     @method viewWillMoveToHostWindow:
78     @param hostWindow The host window for the document view.
79     @abstract Called before the host window is set on the parent web view.
80 */
81 - (void)viewWillMoveToHostWindow:(NSWindow *)hostWindow;
82
83 /*!
84     @method viewDidMoveToHostWindow
85     @abstract Called after the host window is set on the parent web view.
86 */
87 - (void)viewDidMoveToHostWindow;
88
89 @end
90
91
92 /*!
93     @protocol WebDocumentSearching
94     @discussion Optional protocol for searching document view of WebFrameView. 
95 */
96 @protocol WebDocumentSearching <NSObject>
97 /*!
98     @method searchFor:direction:caseSensitive:wrap:
99     @abstract Searches a document view for a string and highlights the string if it is found.
100     @param string The string to search for.
101     @param forward YES to search forward, NO to seach backwards.
102     @param caseFlag YES to for case-sensitive search, NO for case-insensitive search.
103     @param wrapFlag YES to wrap around, NO to avoid wrapping.
104     @result YES if found, NO if not found.
105 */
106 - (BOOL)searchFor:(NSString *)string direction:(BOOL)forward caseSensitive:(BOOL)caseFlag wrap:(BOOL)wrapFlag;
107 @end
108
109
110 /*!
111     @protocol WebDocumentText
112     @discussion Optional protocol for supporting text operations.
113 */
114 @protocol WebDocumentText <NSObject>
115
116 /*!
117     @method supportsTextEncoding
118     @result YES if the document view support text encoding, NO if it doesn't.
119 */
120 - (BOOL)supportsTextEncoding;
121
122 /*!
123     @method string
124     @result String that represents the entire document.
125 */
126 - (NSString *)string;
127
128 #if !TARGET_OS_IPHONE
129 /*!
130     @method attributedString
131     @result Attributed string that represents the entire document.
132 */
133 - (NSAttributedString *)attributedString;
134 #endif
135
136 /*!
137     @method selectedString
138     @result String that represents the current selection.
139 */
140 - (NSString *)selectedString;
141
142 #if !TARGET_OS_IPHONE
143 /*!
144     @method selectedAttributedString
145     @result Attributed string that represents the current selection.
146 */
147 - (NSAttributedString *)selectedAttributedString;
148 #endif
149
150
151 /*!
152     @method selectAll
153     @abstract Selects all the text in the document.
154 */
155 - (void)selectAll;
156
157 /*!
158     @method deselectText
159     @abstract Causes a text selection to lose its selection.
160 */
161 - (void)deselectAll;
162
163 @end
164
165
166 /*!
167     @protocol WebDocumentRepresentation
168     @discussion Protocol implemented by the document representation of a data source.
169 */
170 @protocol WebDocumentRepresentation <NSObject>
171 /*!
172     @method setDataSource:
173     @abstract Called soon after the document representation is created.
174     @param dataSource The data source that is set.
175 */
176 - (void)setDataSource:(WebDataSource *)dataSource;
177
178 /*!
179     @method receivedData:withDataSource:
180     @abstract Called when the data source has received data.
181     @param data The data that the data source has received.
182     @param dataSource The data source that has received data.
183 */
184 - (void)receivedData:(NSData *)data withDataSource:(WebDataSource *)dataSource;
185
186 /*!
187     @method receivedError:withDataSource:
188     @abstract Called when the data source has received an error.
189     @param error The error that the data source has received.
190     @param dataSource The data source that has received the error.
191 */
192 - (void)receivedError:(NSError *)error withDataSource:(WebDataSource *)dataSource;
193
194 /*!
195     @method finishedLoadingWithDataSource:
196     @abstract Called when the data source has finished loading.
197     @param dataSource The datasource that has finished loading.
198 */
199 - (void)finishedLoadingWithDataSource:(WebDataSource *)dataSource;
200
201 /*!
202     @method canProvideDocumentSource
203     @result Returns true if the representation can provide document source.
204 */
205 - (BOOL)canProvideDocumentSource;
206
207 /*!
208     @method documentSource
209     @result Returns the textual source representation of the document.  For HTML documents
210     this is the original HTML source.
211 */
212 - (NSString *)documentSource;
213
214 /*!
215     @method title
216     @result Return the title for the document.
217 */
218 - (NSString *)title;
219
220 @end