Home | History | Annotate | Download | only in pdf
      1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #ifndef PDF_PREVIEW_MODE_CLIENT_H_
      6 #define PDF_PREVIEW_MODE_CLIENT_H_
      7 
      8 #include <string>
      9 #include <vector>
     10 
     11 #include "pdf/pdf_engine.h"
     12 
     13 namespace chrome_pdf {
     14 
     15 // The interface that's provided to the print preview rendering engine.
     16 class PreviewModeClient : public PDFEngine::Client {
     17  public:
     18   class Client {
     19    public:
     20     virtual void PreviewDocumentLoadFailed() = 0;
     21     virtual void PreviewDocumentLoadComplete() = 0;
     22   };
     23   explicit PreviewModeClient(Client* client);
     24   virtual ~PreviewModeClient() {}
     25 
     26   // PDFEngine::Client implementation.
     27   virtual void DocumentSizeUpdated(const pp::Size& size);
     28   virtual void Invalidate(const pp::Rect& rect);
     29   virtual void Scroll(const pp::Point& point);
     30   virtual void ScrollToX(int position);
     31   virtual void ScrollToY(int position);
     32   virtual void ScrollToPage(int page);
     33   virtual void NavigateTo(const std::string& url, bool open_in_new_tab);
     34   virtual void UpdateCursor(PP_CursorType_Dev cursor);
     35   virtual void UpdateTickMarks(const std::vector<pp::Rect>& tickmarks);
     36   virtual void NotifyNumberOfFindResultsChanged(int total,
     37                                                 bool final_result);
     38   virtual void NotifySelectedFindResultChanged(int current_find_index);
     39   virtual void GetDocumentPassword(
     40       pp::CompletionCallbackWithOutput<pp::Var> callback);
     41   virtual void Alert(const std::string& message);
     42   virtual bool Confirm(const std::string& message);
     43   virtual std::string Prompt(const std::string& question,
     44                              const std::string& default_answer);
     45   virtual std::string GetURL();
     46   virtual void Email(const std::string& to,
     47                      const std::string& cc,
     48                      const std::string& bcc,
     49                      const std::string& subject,
     50                      const std::string& body);
     51   virtual void Print();
     52   virtual void SubmitForm(const std::string& url,
     53                           const void* data,
     54                           int length);
     55   virtual std::string ShowFileSelectionDialog();
     56   virtual pp::URLLoader CreateURLLoader();
     57   virtual void ScheduleCallback(int id, int delay_in_ms);
     58   virtual void SearchString(const base::char16* string,
     59                             const base::char16* term,
     60                             bool case_sensitive,
     61                             std::vector<SearchStringResult>* results);
     62   virtual void DocumentPaintOccurred();
     63   virtual void DocumentLoadComplete(int page_count);
     64   virtual void DocumentLoadFailed();
     65   virtual pp::Instance* GetPluginInstance();
     66   virtual void DocumentHasUnsupportedFeature(const std::string& feature);
     67   virtual void DocumentLoadProgress(uint32 available, uint32 doc_size);
     68   virtual void FormTextFieldFocusChange(bool in_focus);
     69   virtual bool IsPrintPreview();
     70 
     71  private:
     72   Client* client_;
     73 };
     74 
     75 }  // namespace chrome_pdf
     76 
     77 #endif  // PDF_PREVIEW_MODE_CLIENT_H_
     78