| Index: components/cloud_devices/printer_description.h
|
| diff --git a/components/cloud_devices/printer_description.h b/components/cloud_devices/printer_description.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..cc9b6545364787766fbb83f2e93a415e1858e762
|
| --- /dev/null
|
| +++ b/components/cloud_devices/printer_description.h
|
| @@ -0,0 +1,362 @@
|
| +// Copyright 2014 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 COMPONENTS_CLOUD_DEVICES_CLOUD_PRINTER_DESCRIPTION_H_
|
| +#define COMPONENTS_CLOUD_DEVICES_CLOUD_PRINTER_DESCRIPTION_H_
|
| +
|
| +#include <string>
|
| +
|
| +#include "base/logging.h"
|
| +#include "components/cloud_devices/description_items.h"
|
| +
|
| +// Defines printer options, CDD and CJT items.
|
| +// https://developers.google.com/cloud-print/docs/cdd
|
| +
|
| +namespace cloud_devices {
|
| +
|
| +namespace printer {
|
| +
|
| +typedef std::string ContentType;
|
| +
|
| +enum ColorType {
|
| + STANDARD_COLOR,
|
| + STANDARD_MONOCHROME,
|
| + CUSTOM_COLOR,
|
| + CUSTOM_MONOCHROME,
|
| + AUTO_COLOR,
|
| +};
|
| +
|
| +struct Color {
|
| + Color();
|
| + explicit Color(ColorType type);
|
| +
|
| + bool IsValid() const;
|
| + bool operator==(const Color& other) const;
|
| + bool operator!=(const Color& other) const {
|
| + return !(*this == other);
|
| + }
|
| +
|
| + ColorType type;
|
| + std::string vendor_id;
|
| + std::string custom_display_name;
|
| +};
|
| +
|
| +enum DuplexType {
|
| + NO_DUPLEX,
|
| + LONG_EDGE,
|
| + SHORT_EDGE,
|
| +};
|
| +
|
| +enum OrientationType {
|
| + PORTRAIT,
|
| + LANDSCAPE,
|
| + AUTO_ORIENTATION,
|
| +};
|
| +
|
| +enum MarginsType {
|
| + NO_MARGINS,
|
| + STANDARD_MARGINS,
|
| + CUSTOM_MARGINS,
|
| +};
|
| +
|
| +struct Margins {
|
| + Margins();
|
| + Margins(MarginsType type,
|
| + int32 top_microns,
|
| + int32 right_microns,
|
| + int32 bottom_microns,
|
| + int32 left_microns);
|
| +
|
| + bool operator==(const Margins& other) const;
|
| + bool operator!=(const Margins& other) const {
|
| + return !(*this == other);
|
| + }
|
| +
|
| + MarginsType type;
|
| + int32 top_microns;
|
| + int32 right_microns;
|
| + int32 bottom_microns;
|
| + int32 left_microns;
|
| +};
|
| +
|
| +struct Dpi {
|
| + Dpi();
|
| + Dpi(int32 horizontal, int32 vertical);
|
| +
|
| + bool operator==(const Dpi& other) const;
|
| + bool operator!=(const Dpi& other) const {
|
| + return !(*this == other);
|
| + }
|
| +
|
| + int32 horizontal;
|
| + int32 vertical;
|
| +};
|
| +
|
| +enum FitToPageType {
|
| + NO_FITTING,
|
| + FIT_TO_PAGE,
|
| + GROW_TO_PAGE,
|
| + SHRINK_TO_PAGE,
|
| + FILL_PAGE,
|
| +};
|
| +
|
| +enum MediaType {
|
| + CUSTOM_MEDIA,
|
| +
|
| + // North American standard sheet media names.
|
| + NA_INDEX_3X5,
|
| + NA_PERSONAL,
|
| + NA_MONARCH,
|
| + NA_NUMBER_9,
|
| + NA_INDEX_4X6,
|
| + NA_NUMBER_10,
|
| + NA_A2,
|
| + NA_NUMBER_11,
|
| + NA_NUMBER_12,
|
| + NA_5X7,
|
| + NA_INDEX_5X8,
|
| + NA_NUMBER_14,
|
| + NA_INVOICE,
|
| + NA_INDEX_4X6_EXT,
|
| + NA_6X9,
|
| + NA_C5,
|
| + NA_7X9,
|
| + NA_EXECUTIVE,
|
| + NA_GOVT_LETTER,
|
| + NA_GOVT_LEGAL,
|
| + NA_QUARTO,
|
| + NA_LETTER,
|
| + NA_FANFOLD_EUR,
|
| + NA_LETTER_PLUS,
|
| + NA_FOOLSCAP,
|
| + NA_LEGAL,
|
| + NA_SUPER_A,
|
| + NA_9X11,
|
| + NA_ARCH_A,
|
| + NA_LETTER_EXTRA,
|
| + NA_LEGAL_EXTRA,
|
| + NA_10X11,
|
| + NA_10X13,
|
| + NA_10X14,
|
| + NA_10X15,
|
| + NA_11X12,
|
| + NA_EDP,
|
| + NA_FANFOLD_US,
|
| + NA_11X15,
|
| + NA_LEDGER,
|
| + NA_EUR_EDP,
|
| + NA_ARCH_B,
|
| + NA_12X19,
|
| + NA_B_PLUS,
|
| + NA_SUPER_B,
|
| + NA_C,
|
| + NA_ARCH_C,
|
| + NA_D,
|
| + NA_ARCH_D,
|
| + NA_ASME_F,
|
| + NA_WIDE_FORMAT,
|
| + NA_E,
|
| + NA_ARCH_E,
|
| + NA_F,
|
| +
|
| + // Chinese standard sheet media size names.
|
| + ROC_16K,
|
| + ROC_8K,
|
| + PRC_32K,
|
| + PRC_1,
|
| + PRC_2,
|
| + PRC_4,
|
| + PRC_5,
|
| + PRC_8,
|
| + PRC_6,
|
| + PRC_3,
|
| + PRC_16K,
|
| + PRC_7,
|
| + OM_JUURO_KU_KAI,
|
| + OM_PA_KAI,
|
| + OM_DAI_PA_KAI,
|
| + PRC_10,
|
| +
|
| + // ISO standard sheet media size names.
|
| + ISO_A10,
|
| + ISO_A9,
|
| + ISO_A8,
|
| + ISO_A7,
|
| + ISO_A6,
|
| + ISO_A5,
|
| + ISO_A5_EXTRA,
|
| + ISO_A4,
|
| + ISO_A4_TAB,
|
| + ISO_A4_EXTRA,
|
| + ISO_A3,
|
| + ISO_A4X3,
|
| + ISO_A4X4,
|
| + ISO_A4X5,
|
| + ISO_A4X6,
|
| + ISO_A4X7,
|
| + ISO_A4X8,
|
| + ISO_A4X9,
|
| + ISO_A3_EXTRA,
|
| + ISO_A2,
|
| + ISO_A3X3,
|
| + ISO_A3X4,
|
| + ISO_A3X5,
|
| + ISO_A3X6,
|
| + ISO_A3X7,
|
| + ISO_A1,
|
| + ISO_A2X3,
|
| + ISO_A2X4,
|
| + ISO_A2X5,
|
| + ISO_A0,
|
| + ISO_A1X3,
|
| + ISO_A1X4,
|
| + ISO_2A0,
|
| + ISO_A0X3,
|
| + ISO_B10,
|
| + ISO_B9,
|
| + ISO_B8,
|
| + ISO_B7,
|
| + ISO_B6,
|
| + ISO_B6C4,
|
| + ISO_B5,
|
| + ISO_B5_EXTRA,
|
| + ISO_B4,
|
| + ISO_B3,
|
| + ISO_B2,
|
| + ISO_B1,
|
| + ISO_B0,
|
| + ISO_C10,
|
| + ISO_C9,
|
| + ISO_C8,
|
| + ISO_C7,
|
| + ISO_C7C6,
|
| + ISO_C6,
|
| + ISO_C6C5,
|
| + ISO_C5,
|
| + ISO_C4,
|
| + ISO_C3,
|
| + ISO_C2,
|
| + ISO_C1,
|
| + ISO_C0,
|
| + ISO_DL,
|
| + ISO_RA2,
|
| + ISO_SRA2,
|
| + ISO_RA1,
|
| + ISO_SRA1,
|
| + ISO_RA0,
|
| + ISO_SRA0,
|
| +
|
| + // Japanese standard sheet media size names.
|
| + JIS_B10,
|
| + JIS_B9,
|
| + JIS_B8,
|
| + JIS_B7,
|
| + JIS_B6,
|
| + JIS_B5,
|
| + JIS_B4,
|
| + JIS_B3,
|
| + JIS_B2,
|
| + JIS_B1,
|
| + JIS_B0,
|
| + JIS_EXEC,
|
| + JPN_CHOU4,
|
| + JPN_HAGAKI,
|
| + JPN_YOU4,
|
| + JPN_CHOU2,
|
| + JPN_CHOU3,
|
| + JPN_OUFUKU,
|
| + JPN_KAHU,
|
| + JPN_KAKU2,
|
| +
|
| + // Other metric standard sheet media size names.
|
| + OM_SMALL_PHOTO,
|
| + OM_ITALIAN,
|
| + OM_POSTFIX,
|
| + OM_LARGE_PHOTO,
|
| + OM_FOLIO,
|
| + OM_FOLIO_SP,
|
| + OM_INVITE,
|
| +};
|
| +
|
| +struct Media {
|
| + Media();
|
| +
|
| + Media(MediaType type, int32 width_microns, int32 height_microns);
|
| +
|
| + Media(const std::string& custom_display_name,
|
| + int32 width_microns, int32 height_microns);
|
| +
|
| + bool IsValid() const;
|
| + bool operator==(const Media& other) const;
|
| + bool operator!=(const Media& other) const {
|
| + return !(*this == other);
|
| + }
|
| +
|
| + MediaType type;
|
| + int32 width_microns;
|
| + int32 height_microns;
|
| + bool is_continuous_feed;
|
| + std::string custom_display_name;
|
| +};
|
| +
|
| +struct Interval {
|
| + Interval();
|
| + Interval(int32 start, int32 end);
|
| + Interval(int32 start);
|
| +
|
| + bool operator==(const Interval& other) const;
|
| + bool operator!=(const Interval& other) const {
|
| + return !(*this == other);
|
| + }
|
| +
|
| + int32 start;
|
| + int32 end;
|
| +};
|
| +
|
| +typedef std::vector<Interval> PageRange;
|
| +
|
| +class ContentTypeTraits;
|
| +class ColorTraits;
|
| +class DuplexTraits;
|
| +class OrientationTraits;
|
| +class MarginsTraits;
|
| +class DpiTraits;
|
| +class FitToPageTraits;
|
| +class MediaTraits;
|
| +class CopiesTraits;
|
| +class PageRangeTraits;
|
| +class CollateTraits;
|
| +class ReverseTraits;
|
| +
|
| +typedef ListCapability<ContentType, ContentTypeTraits> ContentTypesCapability;
|
| +typedef SelectionCapability<Color, ColorTraits> ColorCapability;
|
| +typedef SelectionCapability<DuplexType, DuplexTraits> DuplexCapability;
|
| +typedef SelectionCapability<OrientationType,
|
| + OrientationTraits> OrientationCapability;
|
| +typedef SelectionCapability<Margins, MarginsTraits> MarginsCapability;
|
| +typedef SelectionCapability<Dpi, DpiTraits> DpiCapability;
|
| +typedef SelectionCapability<FitToPageType, FitToPageTraits> FitToPageCapability;
|
| +typedef SelectionCapability<Media, MediaTraits> MediaCapability;
|
| +typedef EmptyCapability<class CopiesTraits> CopiesCapability;
|
| +typedef EmptyCapability<class PageRangeTraits> PageRangeCapability;
|
| +typedef BooleanCapability<class CollateTraits> CollateCapability;
|
| +typedef BooleanCapability<class ReverseTraits> ReverseCapability;
|
| +
|
| +typedef TicketItem<Color, ColorTraits> ColorTicketItem;
|
| +typedef TicketItem<DuplexType, DuplexTraits> DuplexTicketItem;
|
| +typedef TicketItem<OrientationType, OrientationTraits> OrientationTicketItem;
|
| +typedef TicketItem<Margins, MarginsTraits> MarginsTicketItem;
|
| +typedef TicketItem<Dpi, DpiTraits> DpiTicketItem;
|
| +typedef TicketItem<FitToPageType, FitToPageTraits> FitToPageTicketItem;
|
| +typedef TicketItem<Media, MediaTraits> MediaTicketItem;
|
| +typedef TicketItem<int32, CopiesTraits> CopiesTicketItem;
|
| +typedef TicketItem<PageRange, PageRangeTraits> PageRangeTicketItem;
|
| +typedef TicketItem<bool, CollateTraits> CollateTicketItem;
|
| +typedef TicketItem<bool, ReverseTraits> ReverseTicketItem;
|
| +
|
| +} // namespace printer
|
| +
|
| +} // namespace cloud_devices
|
| +
|
| +#endif // COMPONENTS_CLOUD_DEVICES_CLOUD_PRINTER_DESCRIPTION_H_
|
|
|