| Index: experimental/PdfViewer/SkPdfRenderer.h
 | 
| ===================================================================
 | 
| --- experimental/PdfViewer/SkPdfRenderer.h	(revision 11730)
 | 
| +++ experimental/PdfViewer/SkPdfRenderer.h	(working copy)
 | 
| @@ -19,50 +19,67 @@
 | 
|  class SkStream;
 | 
|  class SkString;
 | 
|  
 | 
| +// What kind of content to render.
 | 
|  enum SkPdfContent {
 | 
|      kNoForms_SkPdfContent,
 | 
|      kAll_SkPdfContent,
 | 
|  };
 | 
|  
 | 
| -// TODO(edisonn): add options to render forms, checkboxes, ...
 | 
| -// TODO(edisonn): Add API for Forms viewing and editing
 | 
| -// e.g. SkBitmap getPage(int page);
 | 
| -//      int formsCount();
 | 
| -//      SkForm getForm(int formID); // SkForm(SkRect, .. other data)
 | 
| -// TODO (edisonn): Add intend when loading pdf, for example: for viewing, for parsing content, ...
 | 
| -
 | 
| +/** \class SkPdfRenderer
 | 
| + *
 | 
| + *  The SkPdfRenderer class is used to render a PDF into canvas.
 | 
| + *
 | 
| + */
 | 
|  class SkPdfRenderer {
 | 
| -    SkPdfNativeDoc* fPdfDoc;
 | 
|  public:
 | 
|      SkPdfRenderer() : fPdfDoc(NULL) {}
 | 
|      virtual ~SkPdfRenderer() {unload();}
 | 
|  
 | 
| +    // Render a specific page into the canvas, in a specific rectangle.
 | 
|      bool renderPage(int page, SkCanvas* canvas, const SkRect& dst) const;
 | 
|  
 | 
|      // TODO(edisonn): deprecated, should be removed!
 | 
|      bool load(const SkString inputFileName);
 | 
|  
 | 
| +    // TODO(edisonn): replace it with a SkSmartStream which would know to to efficiently
 | 
| +    // deal with a HTTP stream.
 | 
|      bool load(SkStream* stream);
 | 
|  
 | 
| +    // Unloads the pdf document.
 | 
|      void unload();
 | 
|  
 | 
| -    bool loaded() const {return fPdfDoc != NULL;}
 | 
| +    // Returns true if we succesfully loaded a document.
 | 
| +    bool loaded() const {return fPdfDoc != NULL && pages() > 0;}
 | 
|  
 | 
| +    // Returns the number of pages in the loaded pdf.
 | 
|      int pages() const;
 | 
|  
 | 
| +    // Returns the MediaBox of a page. Can be used by client to crate a canvas.
 | 
|      SkRect MediaBox(int page) const;
 | 
|  
 | 
|      // TODO(edisonn): for testing only, probably it should be removed, unless some client wants to
 | 
|      // let users know how much memory the PDF needs.
 | 
|      size_t bytesUsed() const;
 | 
| +
 | 
| +private:
 | 
| +    SkPdfNativeDoc* fPdfDoc;
 | 
|  };
 | 
|  
 | 
| +// For testing only, reports stats about rendering, like how many operations failed, or are NYI, ...
 | 
|  void reportPdfRenderStats();
 | 
|  
 | 
| +// Renders a page of a pdf in a bitmap.
 | 
|  bool SkPDFNativeRenderToBitmap(SkStream* stream,
 | 
|                                 SkBitmap* output,
 | 
|                                 int page = 0,
 | 
|                                 SkPdfContent content = kAll_SkPdfContent,
 | 
|                                 double dpi = 72.0);
 | 
|  
 | 
| +// TODO(edisonn): add options to render forms, checkboxes, ...
 | 
| +// TODO(edisonn): Add API for Forms viewing and editing
 | 
| +// e.g. SkBitmap getPage(int page);
 | 
| +//      int formsCount();
 | 
| +//      SkForm getForm(int formID); // SkForm(SkRect, .. other data)
 | 
| +// TODO (edisonn): Add intend when loading pdf, for example: for viewing, for parsing content, ...
 | 
| +
 | 
|  #endif  // SkPdfRenderer_DEFINED
 | 
| 
 |