diff options
Diffstat (limited to 'ppapi')
-rw-r--r-- | ppapi/c/dev/ppp_printing_dev.h | 80 |
1 files changed, 71 insertions, 9 deletions
diff --git a/ppapi/c/dev/ppp_printing_dev.h b/ppapi/c/dev/ppp_printing_dev.h index 805c6e2..638f7cb 100644 --- a/ppapi/c/dev/ppp_printing_dev.h +++ b/ppapi/c/dev/ppp_printing_dev.h @@ -1,4 +1,4 @@ -/* Copyright (c) 2010 The Chromium Authors. All rights reserved. +/* Copyright (c) 2011 The Chromium Authors. All rights reserved. * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ @@ -20,11 +20,28 @@ typedef enum { } PP_PrintOrientation_Dev; PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_PrintOrientation_Dev, 4); +#ifdef PPP_PRINTING_DEV_USE_0_4 +/* TODO(dmichael): Remove the conditional compilation when NaCl proxy is + ported to 0.4. Remove 0.3 when PDF is ported. */ +typedef enum { + PP_PRINTOUTPUTFORMAT_RASTER_DEPRECATED = 0, + PP_PRINTOUTPUTFORMAT_PDF_DEPRECATED = 1, + PP_PRINTOUTPUTFORMAT_POSTSCRIPT_DEPRECATED = 2 +} PP_PrintOutputFormat_Dev_0_3; +typedef enum { + PP_PRINTOUTPUTFORMAT_RASTER = 1u << 0, + PP_PRINTOUTPUTFORMAT_PDF = 1u << 1, + PP_PRINTOUTPUTFORMAT_POSTSCRIPT = 1u << 2 +} PP_PrintOutputFormat_Dev_0_4; +typedef PP_PrintOutputFormat_Dev_0_4 PP_PrintOutputFormat_Dev; +#else typedef enum { PP_PRINTOUTPUTFORMAT_RASTER = 0, PP_PRINTOUTPUTFORMAT_PDF = 1, PP_PRINTOUTPUTFORMAT_POSTSCRIPT = 2 -} PP_PrintOutputFormat_Dev; +} PP_PrintOutputFormat_Dev_0_3; +typedef PP_PrintOutputFormat_Dev_0_3 PP_PrintOutputFormat_Dev; +#endif PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_PrintOutputFormat_Dev, 4); struct PP_PrintSettings_Dev { @@ -35,6 +52,15 @@ struct PP_PrintSettings_Dev { PP_Bool grayscale; PP_PrintOutputFormat_Dev format; }; +#ifdef PPP_PRINTING_DEV_USE_0_4 +struct PP_PrintSettings_Dev_0_3 { + struct PP_Rect printable_area; + int32_t dpi; + PP_PrintOrientation_Dev orientation; + PP_Bool grayscale; + PP_PrintOutputFormat_Dev_0_3 format; +}; +#endif PP_COMPILE_ASSERT_STRUCT_SIZE_IN_BYTES(PP_PrintSettings_Dev, 32); // Specifies a contiguous range of page numbers to be printed. @@ -46,15 +72,21 @@ struct PP_PrintPageNumberRange_Dev { PP_COMPILE_ASSERT_STRUCT_SIZE_IN_BYTES(PP_PrintPageNumberRange_Dev, 8); // Interface for the plugin to implement printing. -#define PPP_PRINTING_DEV_INTERFACE "PPP_Printing(Dev);0.3" +#define PPP_PRINTING_DEV_INTERFACE_0_3 "PPP_Printing(Dev);0.3" +#define PPP_PRINTING_DEV_INTERFACE_0_4 "PPP_Printing(Dev);0.4" +#ifdef PPP_PRINTING_DEV_USE_0_4 +#define PPP_PRINTING_DEV_INTERFACE PPP_PRINTING_DEV_INTERFACE_0_4 +#else +#define PPP_PRINTING_DEV_INTERFACE PPP_PRINTING_DEV_INTERFACE_0_3 +#endif +#ifdef PPP_PRINTING_DEV_USE_0_4 struct PPP_Printing_Dev { - // Returns array of supported print output formats. The array is allocated - // using PPB_Core.MemAlloc. The caller is responsible for freeing the array - // using PPB_Core.MemFree. - // Sets |*format_count| to 0 returns NULL if printing is not supported at all. - PP_PrintOutputFormat_Dev* (*QuerySupportedFormats)(PP_Instance instance, - uint32_t* format_count); + // Returns a bit field representing the supported print output formats. For + // example, if only Raster and PostScript are supported, + // QuerySupportedFormats returns a value equivalent to: + // (PP_PRINTOUTPUTFORMAT_RASTER | PP_PRINTOUTPUTFORMAT_POSTSCRIPT) + uint32_t (*QuerySupportedFormats)(PP_Instance instance); // Begins a print session with the given print settings. Calls to PrintPage // can only be made after a successful call to Begin. Returns the number of @@ -76,5 +108,35 @@ struct PPP_Printing_Dev { void (*End)(PP_Instance instance); }; +struct PPP_Printing_Dev_0_3 { + // Returns array of supported print output formats. The array is allocated + // using PPB_Core.MemAlloc. The caller is responsible for freeing the array + // using PPB_Core.MemFree. + // Sets |*format_count| to 0 returns NULL if printing is not supported at all + PP_PrintOutputFormat_Dev_0_3* (*QuerySupportedFormats)( + PP_Instance instance, uint32_t* format_count); + int32_t (*Begin)(PP_Instance instance, + const struct PP_PrintSettings_Dev_0_3* print_settings); + // The following methods are the same as in 0_4. See above for documentation. + PP_Resource (*PrintPages)( + PP_Instance instance, + const struct PP_PrintPageNumberRange_Dev* page_ranges, + uint32_t page_range_count); + void (*End)(PP_Instance instance); +}; +#else +struct PPP_Printing_Dev { + PP_PrintOutputFormat_Dev* (*QuerySupportedFormats)( + PP_Instance instance, uint32_t* format_count); + int32_t (*Begin)(PP_Instance instance, + const struct PP_PrintSettings_Dev* print_settings); + PP_Resource (*PrintPages)( + PP_Instance instance, + const struct PP_PrintPageNumberRange_Dev* page_ranges, + uint32_t page_range_count); + void (*End)(PP_Instance instance); +}; +#endif + #endif /* PPAPI_C_DEV_PPP_PRINTING_DEV_H_ */ |