- add sources.
[platform/framework/web/crosswalk.git] / src / ppapi / api / dev / ppp_printing_dev.idl
1 /* Copyright (c) 2012 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
6 /**
7  * Definition of the PPP_Printing interface.
8  */
9
10 // Note: This version should always match the PPB_Printing_Dev interface.
11 label Chrome {
12   M21 = 0.6
13 };
14
15 /**
16  * Specifies a contiguous range of page numbers to be printed.
17  * The page numbers use a zero-based index.
18  */
19 [assert_size(8)]
20 struct PP_PrintPageNumberRange_Dev {
21   uint32_t first_page_number;
22   uint32_t last_page_number;
23 };
24
25 interface PPP_Printing_Dev {
26   /**
27    *  Returns a bit field representing the supported print output formats.  For
28    *  example, if only PDF and PostScript are supported,
29    *  QuerySupportedFormats returns a value equivalent to:
30    *  (PP_PRINTOUTPUTFORMAT_PDF | PP_PRINTOUTPUTFORMAT_POSTSCRIPT)
31    */
32   uint32_t QuerySupportedFormats([in] PP_Instance instance);
33
34   /**
35    * Begins a print session with the given print settings. Calls to PrintPages
36    * can only be made after a successful call to Begin. Returns the number of
37    * pages required for the print output at the given page size (0 indicates
38    * a failure).
39    */
40   int32_t Begin([in] PP_Instance instance,
41                 [in] PP_PrintSettings_Dev print_settings);
42
43   /**
44    * Prints the specified pages using the format specified in Begin.
45    * Returns a PPB_Buffer resource that represents the printed output. Returns
46    * 0 on failure.
47    */
48   PP_Resource PrintPages([in] PP_Instance instance,
49                          [in] PP_PrintPageNumberRange_Dev page_ranges,
50                          [in] uint32_t page_range_count);
51
52   /** Ends the print session. Further calls to PrintPages will fail. */
53   void End([in] PP_Instance instance);
54
55   /**
56    *  Returns true if the current content should be printed into the full page
57    *  and not scaled down to fit within the printer's printable area.
58    */
59   PP_Bool IsScalingDisabled([in] PP_Instance instance);
60 };