Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / components / pdf / renderer / ppb_pdf_impl.h
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_