diff options
author | brettw@chromium.org <brettw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-11-01 16:16:50 +0000 |
---|---|---|
committer | brettw@chromium.org <brettw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-11-01 16:16:50 +0000 |
commit | 1758e88fd909ea0ffd49621e8066ffad5627ffdf (patch) | |
tree | c304a5eed047cae5665f5af1739d84655fb5815d /ppapi/c/dev/ppp_printing_dev.h | |
parent | e7d8b51953b7d3b2b8a0aba46132305b32f3efce (diff) | |
download | chromium_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.h | 74 |
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_ + |