Home | History | Annotate | Download | only in renderer
      1 // Copyright 2014 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 COMPONENT_PDF_RENDERER_PPB_PDF_IMPL_H_
      6 #define COMPONENT_PDF_RENDERER_PPB_PDF_IMPL_H_
      7 
      8 #include "ppapi/c/pp_instance.h"
      9 
     10 struct PPB_PDF;
     11 
     12 namespace pdf {
     13 
     14 class PPB_PDF_Impl {
     15  public:
     16   class PrintClient {
     17    public:
     18     virtual ~PrintClient() {}
     19 
     20     // Returns whether printing is enabled for the plugin instance identified by
     21     // |instance_id|.
     22     virtual bool IsPrintingEnabled(PP_Instance instance_id) = 0;
     23 
     24     // Invokes the "Print" command for the plugin instance identified by
     25     // |instance_id|. Returns whether the "Print" command was issued or not.
     26     virtual bool Print(PP_Instance instance_id) = 0;
     27   };
     28 
     29   // Returns a pointer to the interface implementing PPB_PDF that is exposed
     30   // to the plugin.
     31   static const PPB_PDF* GetInterface();
     32 
     33   // Invokes the "Print" command for the given instance as if the user right
     34   // clicked on it and selected "Print". Returns if the "Print" command was
     35   // issued or not.
     36   static bool InvokePrintingForInstance(PP_Instance instance);
     37 
     38   // The caller retains the ownership of |print_client|. The client is
     39   // allowed to be set only once, and when set, the client must outlive the
     40   // PPB_PDF_Impl instance.
     41   static void SetPrintClient(PrintClient* print_client);
     42 };
     43 
     44 }  // namespace pdf
     45 
     46 #endif  // COMPONENT_PDF_RENDERER_PPB_PDF_IMPL_H_
     47