Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / ppapi / c / private / ppp_pdf.h
blob2a761b8618aaac0011f7cff8cdf7467a9050474b
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.
5 #ifndef PPAPI_C_PRIVATE_PPP_PDF_H_
6 #define PPAPI_C_PRIVATE_PPP_PDF_H_
8 #include "ppapi/c/dev/pp_print_settings_dev.h"
9 #include "ppapi/c/pp_instance.h"
10 #include "ppapi/c/pp_point.h"
11 #include "ppapi/c/pp_var.h"
13 #define PPP_PDF_INTERFACE_1 "PPP_Pdf;1"
14 #define PPP_PDF_INTERFACE PPP_PDF_INTERFACE_1
16 typedef enum {
17 // Rotates the page 90 degrees clockwise from its current orientation.
18 PP_PRIVATEPAGETRANSFORMTYPE_ROTATE_90_CW,
19 // Rotates the page 90 degrees counterclockwise from its current orientation.
20 PP_PRIVATEPAGETRANSFORMTYPE_ROTATE_90_CCW
21 } PP_PrivatePageTransformType;
22 PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_PrivatePageTransformType, 4);
24 typedef enum {
25 PP_PRIVATEDUPLEXMODE_NONE = 0,
26 PP_PRIVATEDUPLEXMODE_SIMPLEX = 1,
27 PP_PRIVATEDUPLEXMODE_SHORT_EDGE = 2,
28 PP_PRIVATEDUPLEXMODE_LONG_EDGE = 3,
29 PP_PRIVATEDUPLEXMODE_LAST = PP_PRIVATEDUPLEXMODE_LONG_EDGE
30 } PP_PrivateDuplexMode_Dev;
31 PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_PrivateDuplexMode_Dev, 4);
33 struct PP_PdfPrintPresetOptions_Dev {
34 // Returns whether scaling is disabled. Returns same information as the
35 // PPP_Printing_Dev's method IsScalingDiabled().
36 PP_Bool is_scaling_disabled;
38 // Number of copies to be printed.
39 int32_t copies;
41 // DuplexMode to be used for printing.
42 PP_PrivateDuplexMode_Dev duplex;
44 // True if all the pages in the PDF are the same size.
45 PP_Bool is_page_size_uniform;
47 // Only valid if |is_page_size_uniform| is true. The page size.
48 PP_Size uniform_page_size;
50 PP_COMPILE_ASSERT_STRUCT_SIZE_IN_BYTES(PP_PdfPrintPresetOptions_Dev, 24);
52 struct PPP_Pdf_1_1 {
53 // Returns an absolute URL if the position is over a link.
54 PP_Var (*GetLinkAtPosition)(PP_Instance instance,
55 PP_Point point);
57 // Requests that the plugin apply the given transform to its view.
58 void (*Transform)(PP_Instance instance, PP_PrivatePageTransformType type);
60 // Return true if print preset options are updated from document.
61 PP_Bool (*GetPrintPresetOptionsFromDocument)(
62 PP_Instance instance,
63 PP_PdfPrintPresetOptions_Dev* options);
66 typedef PPP_Pdf_1_1 PPP_Pdf;
68 #endif // PPAPI_C_PRIVATE_PPP_PDF_H_