summaryrefslogtreecommitdiffstats
path: root/ppapi/c/dev/ppp_printing_dev.h
diff options
context:
space:
mode:
authorbrettw@chromium.org <brettw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-11-01 16:16:50 +0000
committerbrettw@chromium.org <brettw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-11-01 16:16:50 +0000
commit1758e88fd909ea0ffd49621e8066ffad5627ffdf (patch)
treec304a5eed047cae5665f5af1739d84655fb5815d /ppapi/c/dev/ppp_printing_dev.h
parente7d8b51953b7d3b2b8a0aba46132305b32f3efce (diff)
downloadchromium_src-1758e88fd909ea0ffd49621e8066ffad5627ffdf.zip
chromium_src-1758e88fd909ea0ffd49621e8066ffad5627ffdf.tar.gz
chromium_src-1758e88fd909ea0ffd49621e8066ffad5627ffdf.tar.bz2
Move PPAPI into the Chrome repo. The old repo was
http://ppapi.googlecode.com/ TEST=none BUG=none git-svn-id: svn://svn.chromium.org/chrome/trunk/src@64613 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ppapi/c/dev/ppp_printing_dev.h')
-rw-r--r--ppapi/c/dev/ppp_printing_dev.h74
1 files changed, 74 insertions, 0 deletions
diff --git a/ppapi/c/dev/ppp_printing_dev.h b/ppapi/c/dev/ppp_printing_dev.h
new file mode 100644
index 0000000..0a4316e
--- /dev/null
+++ b/ppapi/c/dev/ppp_printing_dev.h
@@ -0,0 +1,74 @@
+// Copyright (c) 2010 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.
+
+#ifndef PPAPI_C_DEV_PPP_PRINTING_DEV_H_
+#define PPAPI_C_DEV_PPP_PRINTING_DEV_H_
+
+#include "ppapi/c/pp_instance.h"
+#include "ppapi/c/pp_rect.h"
+#include "ppapi/c/pp_resource.h"
+#include "ppapi/c/pp_stdint.h"
+
+typedef enum {
+ PP_PRINTORIENTATION_NORMAL = 0,
+ PP_PRINTORIENTATION_ROTATED_90_CW = 1,
+ PP_PRINTORIENTATION_ROTATED_180 = 2,
+ PP_PRINTORIENTATION_ROTATED_90_CCW = 3
+} PP_PrintOrientation_Dev;
+
+typedef enum {
+ PP_PRINTOUTPUTFORMAT_RASTER = 0,
+ PP_PRINTOUTPUTFORMAT_PDF = 1,
+ PP_PRINTOUTPUTFORMAT_POSTSCRIPT = 2
+} PP_PrintOutputFormat_Dev;
+
+struct PP_PrintSettings_Dev {
+ // This is the size of the printable area in points (1/72 of an inch)
+ struct PP_Rect printable_area;
+ int32_t dpi;
+ PP_PrintOrientation_Dev orientation;
+ bool grayscale;
+ PP_PrintOutputFormat_Dev format;
+};
+
+// Specifies a contiguous range of page numbers to be printed.
+// The page numbers use a zero-based index.
+struct PP_PrintPageNumberRange_Dev {
+ uint32_t first_page_number;
+ uint32_t last_page_number;
+};
+
+// Interface for the plugin to implement printing.
+#define PPP_PRINTING_DEV_INTERFACE "PPP_Printing(Dev);0.1"
+
+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);
+
+ // 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
+ // pages required for the print output at the given page size (0 indicates
+ // a failure).
+ int32_t (*Begin)(PP_Instance instance,
+ const struct PP_PrintSettings_Dev* print_settings);
+
+ // Prints the specified pages using the format specified in Begin.
+ // Returns a resource that represents the printed output.
+ // This is a PPB_ImageData resource if the output format is
+ // PP_PrintOutputFormat_Raster and a PPB_Blob otherwise. Returns 0 on failure.
+ PP_Resource (*PrintPages)(
+ PP_Instance instance,
+ const struct PP_PrintPageNumberRange_Dev* page_ranges,
+ uint32_t page_range_count);
+
+ // Ends the print session. Further calls to PrintPage will fail.
+ void (*End)(PP_Instance instance);
+};
+
+#endif // PPAPI_C_DEV_PPP_PRINTING_DEV_H_
+