source-engine/common/quicktime_win32/PMDefinitions.h
FluorescentCIAAfricanAmerican 3bf9df6b27 1
2020-04-22 12:56:21 -04:00

360 lines
14 KiB
C

/*
File: PMDefinitions.h
Contains: Carbon Printing Manager Interfaces.
Version: QuickTime 7.3
Copyright: (c) 2007 (c) 1998-2002 by Apple Computer, Inc., all rights reserved
Bugs?: For bug reports, consult the following page on
the World Wide Web:
http://developer.apple.com/bugreporter/
*/
#ifndef __PMDEFINITIONS__
#define __PMDEFINITIONS__
#ifndef __MACTYPES__
#include <MacTypes.h>
#endif
#ifndef __MACERRORS__
#include <MacErrors.h>
#endif
#ifndef __CFSTRING__
#include <CFString.h>
#endif
#if PRAGMA_ONCE
#pragma once
#endif
#if PRAGMA_IMPORT
#pragma import on
#endif
#if PRAGMA_STRUCT_ALIGN
#pragma options align=mac68k
#elif PRAGMA_STRUCT_PACKPUSH
#pragma pack(push, 2)
#elif PRAGMA_STRUCT_PACK
#pragma pack(2)
#endif
/* Printing objects */
typedef const void * PMObject;
typedef struct OpaquePMDialog* PMDialog;
typedef struct OpaquePMPrintSettings* PMPrintSettings;
typedef struct OpaquePMPageFormat* PMPageFormat;
typedef struct OpaquePMPrintContext* PMPrintContext;
typedef struct OpaquePMPrintSession* PMPrintSession;
typedef struct OpaquePMPrinter* PMPrinter;
typedef struct OpaquePMServer* PMServer;
enum {
kPMCancel = 0x0080 /* user hit cancel button in dialog */
};
#define kPMNoData NULL /* for general use */
#define kPMDontWantSize NULL /* for parameters which return size information */
#define kPMDontWantData NULL /* for parameters which return data */
#define kPMDontWantBoolean NULL /* for parameters which take a boolean reference */
#define kPMNoReference NULL /* for parameters which take an address pointer */
/* for parameters which take a PrintSettings reference */
#define kPMNoPrintSettings ((PMPrintSettings)NULL)
/* for parameters which take a PageFormat reference */
#define kPMNoPageFormat ((PMPageFormat)NULL)
/* for parameters which take a Server reference */
#define kPMServerLocal ((PMServer)NULL)
typedef UInt16 PMDestinationType;
enum {
kPMDestinationInvalid = 0,
kPMDestinationPrinter = 1,
kPMDestinationFile = 2,
kPMDestinationFax = 3,
kPMDestinationPreview = 4
};
#define kPMDestinationTypeDefault kPMDestinationPrinter
typedef UInt32 PMTag;
enum {
/* common tags */
kPMCurrentValue = FOUR_CHAR_CODE('curr'), /* current setting or value */
kPMDefaultValue = FOUR_CHAR_CODE('dflt'), /* default setting or value */
kPMMinimumValue = FOUR_CHAR_CODE('minv'), /* the minimum setting or value */
kPMMaximumValue = FOUR_CHAR_CODE('maxv'), /* the maximum setting or value */
/* profile tags */
kPMSourceProfile = FOUR_CHAR_CODE('srcp'), /* source profile */
/* resolution tags */
kPMMinRange = FOUR_CHAR_CODE('mnrg'), /* Min range supported by a printer */
kPMMaxRange = FOUR_CHAR_CODE('mxrg'), /* Max range supported by a printer */
kPMMinSquareResolution = FOUR_CHAR_CODE('mins'), /* Min with X and Y resolution equal */
kPMMaxSquareResolution = FOUR_CHAR_CODE('maxs'), /* Max with X and Y resolution equal */
kPMDefaultResolution = FOUR_CHAR_CODE('dftr') /* printer default resolution */
};
typedef UInt16 PMOrientation;
enum {
kPMPortrait = 1,
kPMLandscape = 2,
kPMReversePortrait = 3, /* will revert to kPortrait for current drivers */
kPMReverseLandscape = 4 /* will revert to kLandscape for current drivers */
};
/* Printer states */
typedef UInt16 PMPrinterState;
enum {
kPMPrinterIdle = 3,
kPMPrinterProcessing = 4,
kPMPrinterStopped = 5
};
enum {
kSizeOfTPrint = 120 /* size of old TPrint record */
};
typedef UInt16 PMColorMode;
enum {
kPMBlackAndWhite = 1,
kPMGray = 2,
kPMColor = 3,
kPMColorModeDuotone = 4, /* 2 channels */
kPMColorModeSpecialColor = 5 /* to allow for special colors such as metalic, light cyan, etc. */
};
/* Constants to define the ColorSync Intents. These intents may be used */
/* to set an intent part way through a page or for an entire document. */
typedef UInt32 PMColorSyncIntent;
enum {
kPMColorIntentUndefined = 0x0000, /* User or application have not declared an intent, use the printer's default. */
kPMColorIntentAutomatic = 0x0001, /* Automatically match for photos and graphics anywhere on the page. */
kPMColorIntentPhoto = 0x0002, /* Use Photographic (cmPerceptual) intent for all contents. */
kPMColorIntentBusiness = 0x0004, /* Use Business Graphics (cmSaturation) intent for all contents. */
kPMColorIntentRelColor = 0x0008, /* Use Relative Colormetrics (Logo Colors) for the page. */
kPMColorIntentAbsColor = 0x0010, /* Use absolute colormetric for the page. */
kPMColorIntentUnused = 0xFFE0 /* Remaining bits unused at this time. */
};
/* Print quality modes "standard options" */
typedef UInt32 PMQualityMode;
enum {
kPMQualityLowest = 0x0000, /* Absolute lowest print quality */
kPMQualityInkSaver = 0x0001, /* Saves ink but may be slower */
kPMQualityDraft = 0x0004, /* Print at highest speed, ink used is secondary consideration */
kPMQualityNormal = 0x0008, /* Print in printers "general usage" mode for good balance between quality and speed */
kPMQualityPhoto = 0x000B, /* Optimize quality of photos on the page. Speed is not a concern */
kPMQualityBest = 0x000D, /* Get best quality output for all objects and photos. */
kPMQualityHighest = 0x000F /* Absolute highest quality attained from a printers */
};
/* Constants for our "standard" paper types */
typedef UInt32 PMPaperType;
enum {
kPMPaperTypeUnknown = 0x0000, /* Not sure yet what paper type we have. */
kPMPaperTypePlain = 0x0001, /* Plain paper */
kPMPaperTypeCoated = 0x0002, /* Has a special coating for sharper images and text */
kPMPaperTypePremium = 0x0003, /* Special premium coated paper */
kPMPaperTypeGlossy = 0x0004, /* High gloss special coating */
kPMPaperTypeTransparency = 0x0005, /* Used for overheads */
kPMPaperTypeTShirt = 0x0006 /* Used to iron on t-shirts */
};
/* Scaling alignment: */
typedef UInt16 PMScalingAlignment;
enum {
kPMScalingPinTopLeft = 1,
kPMScalingPinTopRight = 2,
kPMScalingPinBottomLeft = 3,
kPMScalingPinBottomRight = 4,
kPMScalingCenterOnPaper = 5,
kPMScalingCenterOnImgArea = 6
};
/* Duplex binding directions: */
typedef UInt16 PMDuplexBinding;
enum {
kPMDuplexBindingLeftRight = 1,
kPMDuplexBindingTopDown = 2
};
/* Layout directions: */
typedef UInt16 PMLayoutDirection;
enum {
/* Horizontal-major directions: */
kPMLayoutLeftRightTopBottom = 1, /* English reading direction. */
kPMLayoutLeftRightBottomTop = 2,
kPMLayoutRightLeftTopBottom = 3,
kPMLayoutRightLeftBottomTop = 4, /* Vertical-major directions: */
kPMLayoutTopBottomLeftRight = 5,
kPMLayoutTopBottomRightLeft = 6,
kPMLayoutBottomTopLeftRight = 7,
kPMLayoutBottomTopRightLeft = 8
};
/* Page borders: */
typedef UInt16 PMBorderType;
enum {
kPMBorderSingleHairline = 1,
kPMBorderDoubleHairline = 2,
kPMBorderSingleThickline = 3,
kPMBorderDoubleThickline = 4
};
/* Useful Constants for PostScript Injection */
enum {
kPSPageInjectAllPages = -1, /* specifies to inject on all pages */
kPSInjectionMaxDictSize = 5 /* maximum size of a dictionary used for PSInjection */
};
/* PostScript Injection values for kPSInjectionPlacementKey */
typedef UInt16 PSInjectionPlacement;
enum {
kPSInjectionBeforeSubsection = 1,
kPSInjectionAfterSubsection = 2,
kPSInjectionReplaceSubsection = 3
};
/* PostScript Injection values for kPSInjectionSectionKey */
typedef SInt32 PSInjectionSection;
enum {
/* Job */
kInjectionSectJob = 1, /* CoverPage */
kInjectionSectCoverPage = 2
};
/* PostScript Injection values for kPSInjectionSubSectionKey */
typedef SInt32 PSInjectionSubsection;
enum {
kInjectionSubPSAdobe = 1, /* %!PS-Adobe */
kInjectionSubPSAdobeEPS = 2, /* %!PS-Adobe-3.0 EPSF-3.0 */
kInjectionSubBoundingBox = 3, /* BoundingBox */
kInjectionSubEndComments = 4, /* EndComments */
kInjectionSubOrientation = 5, /* Orientation */
kInjectionSubPages = 6, /* Pages */
kInjectionSubPageOrder = 7, /* PageOrder */
kInjectionSubBeginProlog = 8, /* BeginProlog */
kInjectionSubEndProlog = 9, /* EndProlog */
kInjectionSubBeginSetup = 10, /* BeginSetup */
kInjectionSubEndSetup = 11, /* EndSetup */
kInjectionSubBeginDefaults = 12, /* BeginDefaults */
kInjectionSubEndDefaults = 13, /* EndDefaults */
kInjectionSubDocFonts = 14, /* DocumentFonts */
kInjectionSubDocNeededFonts = 15, /* DocumentNeededFonts */
kInjectionSubDocSuppliedFonts = 16, /* DocumentSuppliedFonts */
kInjectionSubDocNeededRes = 17, /* DocumentNeededResources */
kInjectionSubDocSuppliedRes = 18, /* DocumentSuppliedResources*/
kInjectionSubDocCustomColors = 19, /* DocumentCustomColors */
kInjectionSubDocProcessColors = 20, /* DocumentProcessColors */
kInjectionSubPlateColor = 21, /* PlateColor */
kInjectionSubPageTrailer = 22, /* PageTrailer */
kInjectionSubTrailer = 23, /* Trailer */
kInjectionSubEOF = 24, /* EOF */
kInjectionSubBeginFont = 25, /* BeginFont */
kInjectionSubEndFont = 26, /* EndFont */
kInjectionSubBeginResource = 27, /* BeginResource */
kInjectionSubEndResource = 28, /* EndResource */
kInjectionSubPage = 29, /* Page */
kInjectionSubBeginPageSetup = 30, /* BeginPageSetup */
kInjectionSubEndPageSetup = 31 /* EndPageSetup */
};
/* Description types */
#define kPMPPDDescriptionType CFSTR("PMPPDDescriptionType")
/* Document format strings */
#define kPMDocumentFormatDefault CFSTR("com.apple.documentformat.default")
#define kPMDocumentFormatPDF CFSTR("application/pdf")
#define kPMDocumentFormatPICT CFSTR("application/vnd.apple.printing-pict")
#define kPMDocumentFormatPICTPS CFSTR("application/vnd.apple.printing-pict-ps")
#define kPMDocumentFormatPostScript CFSTR("application/postscript")
/* Graphic context strings */
#define kPMGraphicsContextDefault CFSTR("com.apple.graphicscontext.default")
#define kPMGraphicsContextQuickdraw CFSTR("com.apple.graphicscontext.quickdraw")
#define kPMGraphicsContextCoreGraphics CFSTR("com.apple.graphicscontext.coregraphics")
/* Data format strings */
#define kPMDataFormatPS kPMDocumentFormatPostScript
#define kPMDataFormatPDF kPMDocumentFormatPDF
#define kPMDataFormatPICT kPMDocumentFormatPICT
#define kPMDataFormatPICTwPS kPMDocumentFormatPICTPS
/* PostScript Injection Dictionary Keys */
#define kPSInjectionSectionKey CFSTR("section")
#define kPSInjectionSubSectionKey CFSTR("subsection")
#define kPSInjectionPageKey CFSTR("page")
#define kPSInjectionPlacementKey CFSTR("place")
#define kPSInjectionPostScriptKey CFSTR("psdata")
/* OSStatus return codes */
enum {
kPMNoError = noErr,
kPMGeneralError = -30870,
kPMOutOfScope = -30871, /* an API call is out of scope */
kPMInvalidParameter = paramErr, /* a required parameter is missing or invalid */
kPMNoDefaultPrinter = -30872, /* no default printer selected */
kPMNotImplemented = -30873, /* this API call is not supported */
kPMNoSuchEntry = -30874, /* no such entry */
kPMInvalidPrintSettings = -30875, /* the printsettings reference is invalid */
kPMInvalidPageFormat = -30876, /* the pageformat reference is invalid */
kPMValueOutOfRange = -30877, /* a value passed in is out of range */
kPMLockIgnored = -30878 /* the lock value was ignored */
};
enum {
kPMInvalidPrintSession = -30879, /* the print session is invalid */
kPMInvalidPrinter = -30880, /* the printer reference is invalid */
kPMObjectInUse = -30881 /* the object is in use */
};
enum {
kPMPrintAllPages = -1
};
enum {
kPMUnlocked = false,
kPMLocked = true
};
struct PMRect {
double top;
double left;
double bottom;
double right;
};
typedef struct PMRect PMRect;
struct PMResolution {
double hRes;
double vRes;
};
typedef struct PMResolution PMResolution;
struct PMLanguageInfo {
Str32 level;
Str32 version;
Str32 release;
};
typedef struct PMLanguageInfo PMLanguageInfo;
#if PRAGMA_STRUCT_ALIGN
#pragma options align=reset
#elif PRAGMA_STRUCT_PACKPUSH
#pragma pack(pop)
#elif PRAGMA_STRUCT_PACK
#pragma pack()
#endif
#ifdef PRAGMA_IMPORT_OFF
#pragma import off
#elif PRAGMA_IMPORT
#pragma import reset
#endif
#endif /* __PMDEFINITIONS__ */