| // Copyright 2021 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. |
| |
| module printing.mojom; |
| |
| import "mojo/public/mojom/base/string16.mojom"; |
| import "mojo/public/mojom/base/values.mojom"; |
| import "printing/mojom/print.mojom"; |
| import "ui/gfx/geometry/mojom/geometry.mojom"; |
| |
| // Corresponds to `printing::PageMargins` in printing/page_setup.h. |
| struct PageMargins { |
| int32 header; |
| int32 footer; |
| int32 left; |
| int32 right; |
| int32 top; |
| int32 bottom; |
| }; |
| |
| // Corresponds to `printing::PageSetup` in printing/page_setup.h. |
| struct PageSetup { |
| gfx.mojom.Size physical_size; |
| gfx.mojom.Rect printable_area; |
| gfx.mojom.Rect overlay_area; |
| gfx.mojom.Rect content_area; |
| PageMargins effective_margins; |
| PageMargins requested_margins; |
| bool forced_margins; |
| int32 text_height; |
| }; |
| |
| // Corresponds to `printing::PrintSettings::RequestedMedia` in |
| // printing/print_settings.h. |
| struct RequestedMedia { |
| gfx.mojom.Size size_microns; |
| string vendor_id; |
| }; |
| |
| // Corresponds to `printing::PrintSettings` in printing/print_settings.h. |
| struct PrintSettings { |
| array<PageRange> ranges; |
| bool selection_only; |
| MarginType margin_type; |
| mojo_base.mojom.String16 title; |
| mojo_base.mojom.String16 url; |
| bool display_header_footer; |
| bool should_print_backgrounds; |
| bool collate; |
| ColorModel color; |
| int32 copies; |
| DuplexMode duplex_mode; |
| mojo_base.mojom.String16 device_name; |
| RequestedMedia requested_media; |
| PageSetup page_setup_device_units; |
| gfx.mojom.Size dpi; |
| double scale_factor; |
| bool rasterize_pdf; |
| bool landscape; |
| bool supports_alpha_blend; |
| |
| [EnableIf=is_win] |
| PrinterLanguageType printer_language_type; |
| |
| bool is_modifiable; |
| PageMargins requested_custom_margins_in_points; |
| int32 pages_per_sheet; |
| |
| [EnableIf=is_linux_or_chromeos] |
| map<string, mojo_base.mojom.Value> advanced_settings; |
| |
| [EnableIf=is_chromeos] |
| bool send_user_info; |
| [EnableIf=is_chromeos] |
| string username; |
| [EnableIf=is_chromeos] |
| string pin_value; |
| }; |