OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2013 Google Inc. | 2 * Copyright 2013 Google Inc. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
6 */ | 6 */ |
7 | 7 |
8 #ifndef SkDocument_DEFINED | 8 #ifndef SkDocument_DEFINED |
9 #define SkDocument_DEFINED | 9 #define SkDocument_DEFINED |
10 | 10 |
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
168 * (into the canvas returned by beginPage()). After this call the canvas | 168 * (into the canvas returned by beginPage()). After this call the canvas |
169 * returned by beginPage() will be out-of-scope. | 169 * returned by beginPage() will be out-of-scope. |
170 */ | 170 */ |
171 void endPage(); | 171 void endPage(); |
172 | 172 |
173 /** | 173 /** |
174 * Call close() when all pages have been drawn. This will close the file | 174 * Call close() when all pages have been drawn. This will close the file |
175 * or stream holding the document's contents. After close() the document | 175 * or stream holding the document's contents. After close() the document |
176 * can no longer add new pages. Deleting the document will automatically | 176 * can no longer add new pages. Deleting the document will automatically |
177 * call close() if need be. | 177 * call close() if need be. |
178 * Returns true on success or false on failure. | |
179 */ | 178 */ |
180 bool close(); | 179 void close(); |
181 | 180 |
182 /** | 181 /** |
183 * Call abort() to stop producing the document immediately. | 182 * Call abort() to stop producing the document immediately. |
184 * The stream output must be ignored, and should not be trusted. | 183 * The stream output must be ignored, and should not be trusted. |
185 */ | 184 */ |
186 void abort(); | 185 void abort(); |
187 | 186 |
188 protected: | 187 protected: |
189 SkDocument(SkWStream*, void (*)(SkWStream*, bool aborted)); | 188 SkDocument(SkWStream*, void (*)(SkWStream*, bool aborted)); |
190 | 189 |
191 // note: subclasses must call close() in their destructor, as the base class | 190 // note: subclasses must call close() in their destructor, as the base class |
192 // cannot do this for them. | 191 // cannot do this for them. |
193 virtual ~SkDocument(); | 192 virtual ~SkDocument(); |
194 | 193 |
195 virtual SkCanvas* onBeginPage(SkScalar width, SkScalar height, | 194 virtual SkCanvas* onBeginPage(SkScalar width, SkScalar height, |
196 const SkRect& content) = 0; | 195 const SkRect& content) = 0; |
197 virtual void onEndPage() = 0; | 196 virtual void onEndPage() = 0; |
198 virtual bool onClose(SkWStream*) = 0; | 197 virtual void onClose(SkWStream*) = 0; |
199 virtual void onAbort() = 0; | 198 virtual void onAbort() = 0; |
200 | 199 |
201 // Allows subclasses to write to the stream as pages are written. | 200 // Allows subclasses to write to the stream as pages are written. |
202 SkWStream* getStream() { return fStream; } | 201 SkWStream* getStream() { return fStream; } |
203 | 202 |
204 enum State { | 203 enum State { |
205 kBetweenPages_State, | 204 kBetweenPages_State, |
206 kInPage_State, | 205 kInPage_State, |
207 kClosed_State | 206 kClosed_State |
208 }; | 207 }; |
209 State getState() const { return fState; } | 208 State getState() const { return fState; } |
210 | 209 |
211 private: | 210 private: |
212 SkWStream* fStream; | 211 SkWStream* fStream; |
213 void (*fDoneProc)(SkWStream*, bool aborted); | 212 void (*fDoneProc)(SkWStream*, bool aborted); |
214 State fState; | 213 State fState; |
215 | 214 |
216 typedef SkRefCnt INHERITED; | 215 typedef SkRefCnt INHERITED; |
217 }; | 216 }; |
218 | 217 |
219 #endif | 218 #endif |
OLD | NEW |