360 lines
14 KiB
C
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__ */
|
|
|