summaryrefslogtreecommitdiffstats
path: root/ppapi
diff options
context:
space:
mode:
Diffstat (limited to 'ppapi')
-rw-r--r--ppapi/c/dev/ppp_printing_dev.h80
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_ */