You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2076 lines
73 KiB
2076 lines
73 KiB
/* |
|
File: PMTicket.h |
|
|
|
Contains: Mac OS X Printing Manager Job Ticket Interfaces. |
|
|
|
Version: QuickTime 7.3 |
|
|
|
Copyright: (c) 2007 (c) 1999-2001 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 __MACTYPES__ |
|
#include <MacTypes.h> |
|
#endif |
|
|
|
#ifndef __CFSTRING__ |
|
#include <CFString.h> |
|
#endif |
|
|
|
#ifndef __CFNUMBER__ |
|
#include <CFNumber.h> |
|
#endif |
|
|
|
#ifndef __CFDATE__ |
|
#include <CFDate.h> |
|
#endif |
|
|
|
#ifndef __PMERRORS__ |
|
#include <PMErrors.h> |
|
#endif |
|
|
|
#ifndef __PMDEFINITIONS__ |
|
#include <PMDefinitions.h> |
|
#endif |
|
|
|
#include <stdio.h> |
|
|
|
|
|
#if PRAGMA_ONCE |
|
#pragma once |
|
#endif |
|
|
|
#ifdef __cplusplus |
|
extern "C" { |
|
#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 |
|
|
|
/* SECTION I: DATA TYPES, STUCTURES, and CONSTANTS */ |
|
/* General opaque Ticket object reference. This is returned when you create a PageFormat, */ |
|
/* PrintSettings, DocumentInfo, JobInfo, or JobTicket. A list of Job Tickets or other */ |
|
/* tickets can be saved as a list of references. */ |
|
typedef struct OpaquePMTicketRef* PMTicketRef; |
|
typedef struct OpaquePMTemplateRef* PMTemplateRef; |
|
/* A few constants that will be useful in calling Job Ticket functions. */ |
|
enum { |
|
kPMUnlocked = false, |
|
kPMLocked = true |
|
}; |
|
|
|
#define kPMDontFetchItem NULL /* Used to ask GetItem if an item exists. */ |
|
/* The following constant determines if the ticket code sets an item in the top level ticket */ |
|
/* or down in some sub-ticket within the top level ticket. If passed as the document number, */ |
|
/* the ticket code will simply set the item in the ticket passed. If the document number is */ |
|
/* non "kTopLevel" but the page number is "kTopLevel", the ticket code will set the item in the */ |
|
/* document level sub-ticket. If both parameters are non "kTopLevel", the ticket code will set */ |
|
/* the item in the correct sub ticket for the document and page. */ |
|
/* For now, all calls should use kPMTopLevel for document and page numbers, or the passed in */ |
|
/* docment and page numbers if they are available. In the future we expect to enable embedded */ |
|
/* document and page tickets. */ |
|
enum { |
|
kPMTopLevel = 0 |
|
}; |
|
|
|
/* There are several different types of tickets that use the same accessor functions and */ |
|
/* allow the programmer to use different keys to access the proper fields in each ticket. */ |
|
/* A Job Ticket has the following structure: */ |
|
/* Job Ticket */ |
|
/* Job Ticket Fields */ |
|
/* Page Format Ticket (required) */ |
|
/* Paper Info Ticket (required) */ |
|
/* Print Settings Ticket (required) */ |
|
/* Paper Info Ticket (required) */ |
|
/* DOWNSTREAM TICKETS - Heading from PC or PJC to other modules. */ |
|
#define kPMJobTicket CFSTR("com.apple.print.JobTicket") |
|
#define kPMDocumentTicket CFSTR("com.apple.print.DocumentTicket") |
|
#define kPMPageTicket CFSTR("com.apple.print.PageTicket") |
|
#define kPMPageFormatTicket CFSTR("com.apple.print.PageFormatTicket") |
|
#define kPMPrintSettingsTicket CFSTR("com.apple.print.PrintSettingsTicket") |
|
#define kPMDestinationTicket CFSTR("com.apple.print.DestinationTicket") |
|
#define kPMConverterSetupTicket CFSTR("com.apple.print.ConverterSetupTicket") |
|
/* UPSTREAM TICKETS - Expected to be created by low level modules and passed up. */ |
|
#define kPMPrinterInfoTicket CFSTR("com.apple.print.PrinterInfoTicket") |
|
#define kPMModuleInfoTicket CFSTR("com.apple.print.ModuleInfoTicket") |
|
/* OTHER TICKETS, going either direction */ |
|
#define kPMTicketList CFSTR("com.apple.print.TicketList") |
|
#define kPMPaperInfoTicket CFSTR("com.apple.print.PaperInfoTicket") |
|
/* An enum to keep track in a programmatic way of which type of ticket we're working */ |
|
/* with. These do not need to match up with the order of tickets listed in the ticket */ |
|
/* types in PMTicket.h because we convert from string to enum in an internal function. */ |
|
/* Warning: Don't use these tags when creating tickets. Use the CFSTRs above. */ |
|
typedef SInt16 PMTicketType; |
|
enum { |
|
kPMTicketTypeUnknown = -1, |
|
kPMJobTicketType = 1, |
|
kPMDocumentTicketType = 2, |
|
kPMPageTicketType = 3, |
|
kPMPageFormatTicketType = 4, |
|
kPMPrintSettingsTicketType = 5, |
|
kPMPrinterInfoTicketType = 6, |
|
kPMDestinationTicketType = 7, |
|
kPMConverterSetupTicketType = 8, |
|
kPMModuleInfoTicketType = 9, |
|
kPMTicketListType = 10, |
|
kPMPaperInfoTicketType = 11 |
|
}; |
|
|
|
|
|
/* |
|
* PMPrintingPhaseType |
|
* |
|
* Discussion: |
|
* An enum to demark where in the printing process we are. This |
|
* value will be stored in the print settings ticket at the top |
|
* level in the Job Ticket. It will be used to signal shift from one |
|
* phase to the next and may be set by just about any part of the |
|
* system. Users will want to check for ">" (greater than) or "<" |
|
* (less than) conditions when possible, allowing for additional |
|
* phases to be defined later on. |
|
*/ |
|
typedef UInt16 PMPrintingPhaseType; |
|
enum { |
|
kPMPhaseUnknown = 0, /* Not clear what phase we're in yet. */ |
|
kPMPhasePreDialog = 1, /* Just before we execute the code to open the dialog. */ |
|
kPMPhaseDialogsUp = 2, /* One of the dialogs is in front of the user. */ |
|
kPMPhasePostDialogs = 3, /* Dialogs are down, not yet spooling. */ |
|
kPMPhasePreAppDrawing = 4, /* Just before we begin to spool */ |
|
kPMPhaseAppDrawing = 5, /* We're spooling drawing commands from the app. */ |
|
kPMPhasePostAppDrawing = 6, /* Finished with spooling, not yet rendering or converting. */ |
|
kPMPhasePreConversion = 7, /* Just before we begin to convert to PS, Raster, or other final format. */ |
|
kPMPhaseConverting = 8, /* Converting from Spool file to final printer format. */ |
|
kPMPhasePostConversion = 9, /* Done with printer ready data, waiting for completion. */ |
|
kPMPhasePrinting = 10 /* In the process of waiting for the printer. */ |
|
}; |
|
|
|
typedef SInt16 PMTicketErrors; |
|
/* BATCH PROCESSING ENUMS AND STRUCTURES */ |
|
/* - Look in this section for help creating statically defined tickets. */ |
|
/* We have the ability to create a Ticket from an array of key/item pairs that define */ |
|
/* the keys and items for the entries in the ticket. To facilitate easy conversion of */ |
|
/* these key/item pairs, we've defined a few constants to help in the batch processing of */ |
|
/* these arrays. These are basically key types that are allowed for batch processing. */ |
|
typedef UInt16 PMTicketItemType; |
|
enum { |
|
kPMItemInvalidType = 0, |
|
kPMItemCStringType = 1, /* a C string pointed to by a char* */ |
|
kPMItemSInt32Type = 2, /* a C signed 32 bit integer. */ |
|
kPMItemBooleanType = 3, /* A Boolean */ |
|
kPMItemCStrListType = 4, /* A list of c-strings. */ |
|
kPMItemPMRectType = 5, /* A pointer to a PMRect */ |
|
kPMItemSInt32ListType = 6, /* A pointer to a SInt32List */ |
|
kPMItemPMRectListType = 7 /* A pointer to a PMRectList */ |
|
}; |
|
|
|
|
|
/* A structure that holds a list of CString pointers, along with a definition for a constant list. */ |
|
struct CStrList { |
|
SInt32 count; /* Number of CString pointers in the array. */ |
|
const char ** strArray; /* Pointer to first CString pointer. */ |
|
}; |
|
typedef struct CStrList CStrList; |
|
typedef const CStrList ConstCStrList; |
|
/* A structure to hold a list of Signed 32 bit integers. */ |
|
struct SInt32List { |
|
SInt32 count; /* Number of Signed 32 bit values in array. */ |
|
const SInt32 * sInt32Array; /* Pointer to the first 32 bit value in array. */ |
|
}; |
|
typedef struct SInt32List SInt32List; |
|
typedef const SInt32List ConstSInt32List; |
|
/* A structure to hold a list of PMRect structures. PMRect is defined in PMDefinitions.h */ |
|
/* and is basically a set of four doubles (top, left, bottom, and right). */ |
|
struct PMRectList { |
|
SInt32 count; /* Number of PMRect pointers in the array. */ |
|
const PMRect ** pmRectArray; /* Pointer to the first PMRect pointer. */ |
|
}; |
|
typedef struct PMRectList PMRectList; |
|
typedef const PMRectList ConstPMRectList; |
|
/* CF types can't be statically initialized, but CString and Pascal strings can be. */ |
|
/* We have created utilities to convert from static C and Pascal based data into CF types. */ |
|
/* The structure below will serve as a statically defined "Ticket Item" that can then be */ |
|
/* converted into a job ticket item. An array of these structures would be made into a ticket. */ |
|
struct PMTicketItemStruct { |
|
char * key; /* The CString for the key. */ |
|
PMTicketItemType itemType; /* What type of item is being defined in union below. */ |
|
Boolean locked; /* Can other callers change this after it's entered in a ticket? */ |
|
union { /* The item data itself. */ |
|
const void * GenericData; /* Generic data */ |
|
const char * cString; /* kPMItemCStringType */ |
|
SInt32 sInt32; /* kPMItemSInt32Type */ |
|
UInt32 boolean; /* kPMItemBooleanType */ |
|
ConstCStrList * cStrlist; /* kPMItemCStrListType */ |
|
PMRect * rect; /* kPMItemPMRectType */ |
|
ConstSInt32List * sInt32List; /* kPMItemSInt32ListType */ |
|
ConstPMRectList * pmRectList; /* kPMItemPMRectListType */ |
|
} value; |
|
}; |
|
typedef struct PMTicketItemStruct PMTicketItemStruct; |
|
/* END OF BATCH PROCESSING ENUMS AND STRUCTURES */ |
|
/* ENUMS for Ticket Values */ |
|
/* The values for kPMDuplexingKey */ |
|
enum { |
|
kPMDuplexNone = 1, |
|
kPMDuplexNoTumble = 2, /* Print on both sides of the paper, pages flip from left to right.*/ |
|
kPMDuplexTumble = 3, /* Print on both sides of the paper, tumbling on so pages flip top to bottom.*/ |
|
kPMSimplexTumble = 4, /* Print on only one side of the paper, but tumble the images while printing.*/ |
|
kPMDuplexDefault = kPMDuplexNone /* If the kPMDuplexingKey is not in a ticket then kPMDuplexDefault should be assumed.*/ |
|
}; |
|
|
|
|
|
/* Values for the kPMPSErrorHandlerKey */ |
|
enum { |
|
kPSNoErrorHandler = 0, |
|
kPSErrorHandler = 1 |
|
}; |
|
|
|
/* If the kPMCopyCollateKey is not present, then kPMCopyCollateDefault should be assumed. */ |
|
enum { |
|
kPMCopyCollateDefault = true |
|
}; |
|
|
|
|
|
|
|
/* END OF SECTION I: DATA TYPES, STUCTURES, and CONSTANTS */ |
|
|
|
/* SECTION II: TICKET KEYS */ |
|
/* - Look in this section for particular predefined keys for various tickets. */ |
|
/* Each key is defined to store it's data as a particular CF type, but there are some */ |
|
/* utilities defined to fetch data in different formats. For instance, it would be simple */ |
|
/* to read in the Job Name as a CFString, or as a 'C' string. */ |
|
/* Ticket: PAPER INFO TICKET |
|
This ticket contains a single Paper Info set, with all the information necessary to |
|
describe a paper type available from the Printer Module. |
|
*/ |
|
#define kPMPaperInfoPrelude "com.apple.print.PaperInfo." |
|
/* CFString for the name of the paper displayed in UI */ |
|
#define kPMPaperNameStr "com.apple.print.PaperInfo.PMPaperName" |
|
#define kPMPaperNameKey CFSTR("com.apple.print.PaperInfo.PMPaperName") |
|
/* CFArray of 4 CFNumbers of kCFNumberDoubleType for paper size in points. */ |
|
#define kPMUnadjustedPaperRectStr "com.apple.print.PaperInfo.PMUnadjustedPaperRect" |
|
#define kPMUnadjustedPaperRectKey CFSTR("com.apple.print.PaperInfo.PMUnadjustedPaperRect") |
|
/* CFArray of 4 CFNumbers of kCFNumberDoubleType for page size within the paper, in points. */ |
|
#define kPMUnadjustedPageRectStr "com.apple.print.PaperInfo.PMUnadjustedPageRect" |
|
#define kPMUnadjustedPageRectKey CFSTR("com.apple.print.PaperInfo.PMUnadjustedPageRect") |
|
/* CFBoolean tells if we need to find a closest match for this paper */ |
|
#define kPMMatchPaperStr "com.apple.print.PaperInfo.PMMatchPaper" |
|
#define kPMMatchPaperKey CFSTR("com.apple.print.PaperInfo.PMMatchPaper") |
|
|
|
/* Ticket: PAGE FORMAT TICKET |
|
Describes the application's drawing environment, including resolution, scaling, and |
|
orientation. All information in the page format ticket is saved with the user's document, |
|
so the single paper info stored inside the page format ticket describes the logical page |
|
an application may draw to. This logical page is then mapped to a physical page defined |
|
in the Print Settings Ticket. |
|
*/ |
|
#define kPMPageFormatPrelude "com.apple.print.PageFormat." |
|
/* CFArray of 4 CFNumbers of kCFNumberDoubleType for scaled and rotated page rectangle. */ |
|
#define kPMAdjustedPaperRectStr "com.apple.print.PageFormat.PMAdjustedPaperRect" |
|
#define kPMAdjustedPaperRectKey CFSTR("com.apple.print.PageFormat.PMAdjustedPaperRect") |
|
/* CFArray of 4 CFNumbers of kCFNumberDoubleType for scaled and rotated page rectangle, in points. */ |
|
#define kPMAdjustedPageRectStr "com.apple.print.PageFormat.PMAdjustedPageRect" |
|
#define kPMAdjustedPageRectKey CFSTR("com.apple.print.PageFormat.PMAdjustedPageRect") |
|
/* CFNumber - kCFNumberDoubleType, Drawing resolution in horizontal direction. */ |
|
#define kPMDrawingResHorizontalStr "com.apple.print.PageFormat.PMHorizontalRes" |
|
#define kPMDrawingResHorizontalKey CFSTR("com.apple.print.PageFormat.PMHorizontalRes") |
|
/* CFNumber - kCFNumberDoubleType, Drawing resolution in vertical direction. */ |
|
#define kPMDrawingResVerticalStr "com.apple.print.PageFormat.PMVerticalRes" |
|
#define kPMDrawingResVerticalKey CFSTR("com.apple.print.PageFormat.PMVerticalRes") |
|
/* CFNumber - kCFNumberDoubleType, Horizontal scaling factor applied to original page size - 1 = 100% */ |
|
#define kPMPageScalingHorizontalStr "com.apple.print.PageFormat.PMScaling" |
|
#define kPMPageScalingHorizontalKey CFSTR("com.apple.print.PageFormat.PMScaling") |
|
/* CFNumber - kCFNumberDoubleType, Vertical scaling factor applied to original page size - 1 = 100%. */ |
|
#define kPMPageScalingVerticalStr "com.apple.print.PageFormat.PMVerticalScaling" |
|
#define kPMPageScalingVerticalKey CFSTR("com.apple.print.PageFormat.PMVerticalScaling") |
|
/* CFNumber - kCFNumberSInt32Type, PMOrientation, 1 = portrait, 2 = landscape, 3 = reverse landscape, 4 = reverse portrait. */ |
|
#define kPMPageOrientationStr "com.apple.print.PageFormat.PMOrientation" |
|
#define kPMPageOrientationKey CFSTR("com.apple.print.PageFormat.PMOrientation") |
|
/* CFData - Print record handle, allowing easy access during most calls. Not used when flattened. (OS8 Only) */ |
|
#define kPMPageBackupRecordHdlStr "com.apple.print.PageFormat.BackupPrintRecordHandle" |
|
#define kPMPageBackupRecordHdlKey CFSTR("com.apple.print.PageFormat.BackupPrintRecordHandle") |
|
/* CFData - Print record stored in complete form - used when flattening Ticket w/ record. (OS8 only) */ |
|
#define kPMPageBackupRecordDataStr "com.apple.print.PageFormat.BackupPrintRecord" |
|
#define kPMPageBackupRecordDataKey CFSTR("com.apple.print.PageFormat.BackupPrintRecord") |
|
/* CFData - Handle to the print record using for custom dialog calls. Not stored when flattened. (OS8 Only) */ |
|
#define kPMPageCustomDialogHdlStr "com.apple.print.PageFormat.CustomDialogRecord" |
|
#define kPMPageCustomDialogHdlKey CFSTR("com.apple.print.PageFormat.CustomDialogRecord") |
|
/* CFString - name of the formating printer */ |
|
#define kPMFormattingPrinterStr "com.apple.print.PageFormat.FormattingPrinter" |
|
#define kPMFormattingPrinterKey CFSTR("com.apple.print.PageFormat.FormattingPrinter") |
|
/* Ticket: PRINT SETTINGS TICKET |
|
Contains the user's print dialog selections. Includes items set by the application to |
|
further refine the output produced on the printer. Information in this ticket may also |
|
be saved with the decument, but are likely to be overwritten by any saved settings. |
|
Logical page information is mapped to the physical page defined in this ticket. |
|
*/ |
|
#define kPMPrintSettingsPrelude "com.apple.print.PrintSettings." |
|
/* CFNumber, kCFNumberSInt32Type kPMDestinationPrinter kPMDestinationFile kPMDestinationFax. */ |
|
#define kPMDestinationTypeStr "com.apple.print.PrintSettings.PMDestinationType" |
|
#define kPMDestinationTypeKey CFSTR("com.apple.print.PrintSettings.PMDestinationType") |
|
/* CFString - URL for the output filename. */ |
|
#define kPMOutputFilenameStr "com.apple.print.PrintSettings.PMOutputFilename" |
|
#define kPMOutputFilenameKey CFSTR("com.apple.print.PrintSettings.PMOutputFilename") |
|
/* CFNumber, kCFNumberSInt32Type, number of copies to print. */ |
|
#define kPMCopiesStr "com.apple.print.PrintSettings.PMCopies" |
|
#define kPMCopiesKey CFSTR("com.apple.print.PrintSettings.PMCopies") |
|
/* CFBoolean, Turns on collating */ |
|
#define kPMCopyCollateStr "com.apple.print.PrintSettings.PMCopyCollate" |
|
#define kPMCopyCollateKey CFSTR("com.apple.print.PrintSettings.PMCopyCollate") |
|
/* CFBoolean, If true, we print sheets back to front. All layout options are unaffected by reverse order. */ |
|
#define kPMReverseOrderStr "com.apple.print.PrintSettings.PMReverseOrder" |
|
#define kPMReverseOrderKey CFSTR("com.apple.print.PrintSettings.PMReverseOrder") |
|
/* CFArray of kCFNumberSInt32Type, each pair indicating valid range of pages that the application is able to print. Does not signify user choices. */ |
|
#define kPMPageRangeStr "com.apple.print.PrintSettings.PMPageRange" |
|
#define kPMPageRangeKey CFSTR("com.apple.print.PrintSettings.PMPageRange") |
|
/* CFNumber - kCFNumberSInt32Type, first page selected by user to print. */ |
|
#define kPMFirstPageStr "com.apple.print.PrintSettings.PMFirstPage" |
|
#define kPMFirstPageKey CFSTR("com.apple.print.PrintSettings.PMFirstPage") |
|
/* CFNumber - kCFNumberSInt32Type, last page selected by user to print. */ |
|
#define kPMLastPageStr "com.apple.print.PrintSettings.PMLastPage" |
|
#define kPMLastPageKey CFSTR("com.apple.print.PrintSettings.PMLastPage") |
|
/* CFBoolean - If true, we do borders. */ |
|
#define kPMBorderStr "com.apple.print.PrintSettings.PMBorder" |
|
#define kPMBorderKey CFSTR("com.apple.print.PrintSettings.PMBorder") |
|
/* CFNumber - kCFNumberSInt32Type, Enum (PMBorderType) */ |
|
#define kPMBorderTypeStr "com.apple.print.PrintSettings.PMBorderType" |
|
#define kPMBorderTypeKey CFSTR("com.apple.print.PrintSettings.PMBorderType") |
|
/* CFBoolean, Turns on N-Up layout. */ |
|
#define kPMLayoutNUpStr "com.apple.print.PrintSettings.PMLayoutNUp" |
|
#define kPMLayoutNUpKey CFSTR("com.apple.print.PrintSettings.PMLayoutNUp") |
|
/* CFNumber - kCFNumberSInt32Type, indicates number of layout rows. */ |
|
#define kPMLayoutRowsStr "com.apple.print.PrintSettings.PMLayoutRows" |
|
#define kPMLayoutRowsKey CFSTR("com.apple.print.PrintSettings.PMLayoutRows") |
|
/* CFNumber - kCFNumberSInt32Type, indicates number of layout columns. */ |
|
#define kPMLayoutColumnsStr "com.apple.print.PrintSettings.PMLayoutColumns" |
|
#define kPMLayoutColumnsKey CFSTR("com.apple.print.PrintSettings.PMLayoutColumns") |
|
/* CFNumber - kCFNumberSInt32Type, Enum (PMLayoutDirection) */ |
|
#define kPMLayoutDirectionStr "com.apple.print.PrintSettings.PMLayoutDirection" |
|
#define kPMLayoutDirectionKey CFSTR("com.apple.print.PrintSettings.PMLayoutDirection") |
|
/* CFNumber - kCFNumberSInt32Type, PMOrientation, 1 = portrait, 2 = landscape, etc. */ |
|
#define kPMLayoutTileOrientationStr "com.apple.print.PrintSettings.PMLayoutTileOrientation" |
|
#define kPMLayoutTileOrientationKey CFSTR("com.apple.print.PrintSettings.PMLayoutTileOrientation") |
|
/* CFNumber - kCFNumberSInt32Type, Enum, draft, normal, best */ |
|
#define kPMQualityStr "com.apple.print.PrintSettings.PMQuality" |
|
#define kPMQualityKey CFSTR("com.apple.print.PrintSettings.PMQuality") |
|
/* CFNumber - kCFNumberSInt32Type, Enum, draft, normal, best */ |
|
#define kPMPaperTypeStr "com.apple.print.PrintSettings.PMPaperType" |
|
#define kPMPaperTypeKey CFSTR("com.apple.print.PrintSettings.PMPaperType") |
|
/* CFNumber - kCFNumberSInt32Type, Enum, active = 0, pending, hold until, hold indefinitely, aborted, finished */ |
|
#define kPMJobStateStr "com.apple.print.PrintSettings.PMJobState" |
|
#define kPMJobStateKey CFSTR("com.apple.print.PrintSettings.PMJobState") |
|
/* CFDate - Time we expect to print the job. */ |
|
#define kPMJobHoldUntilTimeStr "com.apple.print.PrintSettings.PMJobHoldUntilTime" |
|
#define kPMJobHoldUntilTimeKey CFSTR("com.apple.print.PrintSettings.PMJobHoldUntilTime") |
|
/* CFNumber - kCFNumberSInt32Type, Enum, Low = 0, normal, urgent */ |
|
#define kPMJobPriorityStr "com.apple.print.PrintSettings.PMJobPriority" |
|
#define kPMJobPriorityKey CFSTR("com.apple.print.PrintSettings.PMJobPriority") |
|
/* CFNUmber - kCFNumberSInt32Type, Enum, paper sources. */ |
|
#define kPMPaperSourceStr "com.apple.print.PrintSettings.PMPaperSource" |
|
#define kPMPaperSourceKey CFSTR("com.apple.print.PrintSettings.PMPaperSource") |
|
/* CFNumber - kCFNumberSInt32Type, Enum, kPMDuplexNone, kPMDuplexNoTumble, kPMDuplexTumble, kPMSimplexTumble */ |
|
#define kPMDuplexingStr "com.apple.print.PrintSettings.PMDuplexing" |
|
#define kPMDuplexingKey CFSTR("com.apple.print.PrintSettings.PMDuplexing") |
|
/* CFNumber - kCFNumberSInt32Type, Enum, B/W, Grayscale, Color, HiFi Color. */ |
|
#define kPMColorModeStr "com.apple.print.PrintSettings.PMColorMode" |
|
#define kPMColorModeKey CFSTR("com.apple.print.PrintSettings.PMColorMode") |
|
/* CFNumber - kCFNumberSInt32Type, ID of profile to use. */ |
|
#define kPMColorSyncProfileIDStr "com.apple.print.PrintSettings.PMColorSyncProfileID" |
|
#define kPMColorSyncProfileIDKey CFSTR("com.apple.print.PrintSettings.PMColorSyncProfileID") |
|
/* CFString - path of system profile. */ |
|
#define kPMColorSyncSystemProfilePathStr "com.apple.print.PrintSettings.PMColorSyncSystemProfilePath" |
|
#define kPMColorSyncSystemProfilePathKey CFSTR("com.apple.print.PrintSettings.PMColorSyncSystemProfilePath") |
|
/* CFNumber - kCFNumberDoubleType, Horizontal scaling factor applied to original page size. */ |
|
#define kPMPrintScalingHorizontalStr "com.apple.print.PrintSettings.PMScaling" |
|
#define kPMPrintScalingHorizontalKey CFSTR("com.apple.print.PrintSettings.PMScaling") |
|
/* CFNumber - kCFNumberDoubleType, Vertical scaling factor applied to original page size. */ |
|
#define kPMPrintScalingVerticalStr "com.apple.print.PrintSettings.PMVerticalScaling" |
|
#define kPMPrintScalingVerticalKey CFSTR("com.apple.print.PrintSettings.PMVerticalScaling") |
|
/* CFNumber - kCFNumberSInt32Type, Enum (PMScalingAlignment) */ |
|
#define kPMPrintScalingAlignmentStr "com.apple.print.PrintSettings.PMScalingAlignment" |
|
#define kPMPrintScalingAlignmentKey CFSTR("com.apple.print.PrintSettings.PMScalingAlignment") |
|
/* CFNumber - kCFNumberSInt32Type, PMOrientation, 1 = portrait, 2 = landscape, etc. */ |
|
#define kPMPrintOrientationStr "com.apple.print.PrintSettings.PMOrientation" |
|
#define kPMPrintOrientationKey CFSTR("com.apple.print.PrintSettings.PMOrientation") |
|
/* CFString - YES means the user clicked on the Preview button */ |
|
#define kPMPreviewStr "com.apple.print.PrintSettings.PMPreview" |
|
#define kPMPreviewKey CFSTR("com.apple.print.PrintSettings.PMPreview") |
|
/* CFData - Print record handle, allowing easy access during most calls. Not used when flattened. (OS8 Only) */ |
|
#define kPMPrintBackupRecordHdlStr "com.apple.print.PrintSettings.BackupPrintRecordHandle" |
|
#define kPMPrintBackupRecordHdlKey CFSTR("com.apple.print.PrintSettings.BackupPrintRecordHandle") |
|
/* CFData - Print record stored in complete form - used when flattening Ticket w/ record. (OS8 only) */ |
|
#define kPMPrintBackupRecordDataStr "com.apple.print.PrintSettings.BackupPrintRecord" |
|
#define kPMPrintBackupRecordDataKey CFSTR("com.apple.print.PrintSettings.BackupPrintRecord") |
|
/* CFData - Handle to the print record using for custom dialog calls. Not stored when flattened. (OS8 Only) */ |
|
#define kPMPrintCustomDialogHdlStr "com.apple.print.PrintSettings.CustomDialogRecord" |
|
#define kPMPrintCustomDialogHdlKey CFSTR("com.apple.print.PrintSettings.CustomDialogRecord") |
|
/* CFArray - main & option PPD key for input paper feed */ |
|
#define kPMPrimaryPaperFeedStr "com.apple.print.PrintSettings.PMPrimaryPaperFeed" |
|
#define kPMPrimaryPaperFeedKey CFSTR("com.apple.print.PrintSettings.PMPrimaryPaperFeed") |
|
/* CFArray - main & option PPD key for input paper feed */ |
|
#define kPMSecondaryPaperFeedStr "com.apple.print.PrintSettings.PMSecondaryPaperFeed" |
|
#define kPMSecondaryPaperFeedKey CFSTR("com.apple.print.PrintSettings.PMSecondaryPaperFeed") |
|
/* CFNumber - kCFNumberSInt32Type */ |
|
#define kPMPSErrorHandlerStr "com.apple.print.PrintSettings.PMPSErrorHandler" |
|
#define kPMPSErrorHandlerKey CFSTR("com.apple.print.PrintSettings.PMPSErrorHandler") |
|
/* CFBoolean, Turns on PS error on screen notification. */ |
|
#define kPMPSErrorOnScreenStr "com.apple.print.PrintSettings.PMPSErrorOnScreen" |
|
#define kPMPSErrorOnScreenKey CFSTR("com.apple.print.PrintSettings.PMPSErrorOnScreen") |
|
/* CFArray - main & option PPD key for tray switching */ |
|
#define kPMPSTraySwitchStr "com.apple.print.PrintSettings.PMPSTraySwitch" |
|
#define kPMPSTraySwitchKey CFSTR("com.apple.print.PrintSettings.PMPSTraySwitch") |
|
/* CFDictionary - main & option PPD keys for additional features */ |
|
#define kPMPPDDictStr "com.apple.print.PrintSettings.kPMPPDDictStr" |
|
#define kPMPPDDictKey CFSTR("com.apple.print.PrintSettings.kPMPPDDictStr") |
|
/* Ticket: PAGE TICKET |
|
Future Feature. Intended to hold Page Format and Print Settings ticket for a single |
|
page of the document. Not yet implemented. |
|
*/ |
|
#define kPMPageTicketPrelude "com.apple.print.PageTicket." |
|
/* Ticket: DOCUMENT TICKET |
|
Future Feature. Intended to hold multiple Page Tickets and separate Page Format |
|
and Print Settings tickets for a single document. Not yet implemented. For now, |
|
the keys listed here will be included at the Job Ticket Level. |
|
*/ |
|
#define kPMDocumentTicketPrelude "com.apple.print.DocumentTicket." |
|
/* CFString. Indicates format of data stored in the spool file. */ |
|
#define kPMSpoolFormatStr "com.apple.print.DocumentTicket.PMSpoolFormat" |
|
#define kPMSpoolFormatKey CFSTR("com.apple.print.DocumentTicket.PMSpoolFormat") |
|
/* CFString. Indicates format of data going to the Printer Module. */ |
|
#define kPMPrinterModuleFormatStr "com.apple.print.DocumentTicket.PMDocPMInputFormat" |
|
#define kPMPrinterModuleFormatKey CFSTR("com.apple.print.DocumentTicket.PMDocPMInputFormat") |
|
/* Ticket: JOB TICKET |
|
Holds a Page Format and Print Settings ticket, as well as a few other fields that |
|
are Job Specific, such as information about the user that submitted the job. The |
|
fidelity bit controls what happens when the system encounters settings that can't |
|
be obeyed. |
|
In the future a Job Ticket may hold multiple document tickets in addition to the |
|
Print Settings and Page Format tickets. |
|
*/ |
|
#define kPMJobTicketPrelude "com.apple.print.JobInfo." |
|
/* CFString, The name of the job to be displayed in the queue window. */ |
|
#define kPMJobNameStr "com.apple.print.JobInfo.PMJobName" |
|
#define kPMJobNameKey CFSTR("com.apple.print.JobInfo.PMJobName") |
|
/* CFString, The application's name */ |
|
#define kPMApplicationNameStr "com.apple.print.JobInfo.PMApplicationName" |
|
#define kPMApplicationNameKey CFSTR("com.apple.print.JobInfo.PMApplicationName") |
|
/* CFNumber - kCFNumberSInt32Type, TBD how this is interpreted. */ |
|
#define kPMUserLanguageStr "com.apple.print.JobInfo.PMUserLanguage" |
|
#define kPMUserLanguageKey CFSTR("com.apple.print.JobInfo.PMUserLanguage") |
|
/* CFString - Name of the user who submitted the job. */ |
|
#define kPMJobOwnerStr "com.apple.print.JobInfo.PMJobOwner" |
|
#define kPMJobOwnerKey CFSTR("com.apple.print.JobInfo.PMJobOwner") |
|
/* CFDictionary - PMTemplateRef, actually. See PMTemplate.h */ |
|
#define kPMJobTemplateStr "com.apple.print.JobInfo.PMJobTemplate" |
|
#define kPMJobTemplateKey CFSTR("com.apple.print.JobInfo.PMJobTemplate") |
|
/* CFNumber, kCFNumberSInt32Type, Enum - Spooling, RIPing, etc. */ |
|
#define kPMPhaseStr "com.apple.print.JobInfo.PMPrintingPhase" |
|
#define kPMPhaseKey CFSTR("com.apple.print.JobInfo.PMPrintingPhase") |
|
/* CFString, Mime type from the kPMOutputTypeListKey array the printer module should generate. */ |
|
#define kPMOutputTypeStr "com.apple.print.JobInfo.PMOutputType" |
|
#define kPMOutputTypeKey CFSTR("com.apple.print.JobInfo.PMOutputType") |
|
/* Ticket: LIST TICKET |
|
Contains a list of other tickets. There is no restriction on the type of tickets |
|
that can be stored in a list, any ticket will do. |
|
*/ |
|
#define kPMTicketListPrelude "com.apple.print.TicketList." |
|
|
|
|
|
/* Ticket: Printer Info Ticket |
|
Created by the Printer Module to describe features and settings of the current |
|
printer. This is information largely used by the Printer Module itself and the Print |
|
Dialog Extensions associated with the PM. All "range" type values that would be |
|
verified at dialog time should go in a separate Template. |
|
*/ |
|
#define kPMPrinterInfoPrelude "com.apple.print.PrinterInfo." |
|
/* CFString, Full name of the printer. */ |
|
#define kPMPrinterLongNameStr "com.apple.print.PrinterInfo.PMPrinterLongName" |
|
#define kPMPrinterLongNameKey CFSTR("com.apple.print.PrinterInfo.PMPrinterLongName") |
|
/* CFString, Shorter name to use when you have less space. */ |
|
#define kPMPrinterShortNameStr "com.apple.print.PrinterInfo.PMPrinterShortName" |
|
#define kPMPrinterShortNameKey CFSTR("com.apple.print.PrinterInfo.PMPrinterShortName") |
|
/* CFString, Product name is used for ???? */ |
|
#define kPMMakeAndModelNameStr "com.apple.print.PrinterInfo.PMMakeAndModelName" |
|
#define kPMMakeAndModelNameKey CFSTR("com.apple.print.PrinterInfo.PMMakeAndModelName") |
|
/* CFData, Product address. */ |
|
#define kPMPrinterAddressStr "com.apple.print.PrinterInfo.PMPrinterAddress" |
|
#define kPMPrinterAddressKey CFSTR("com.apple.print.PrinterInfo.PMPrinterAddress") |
|
/* CFBoolean, If Non-zero, printer/PM can do color. */ |
|
#define kPMSupportsColorStr "com.apple.print.PrinterInfo.PMSupportsColor" |
|
#define kPMSupportsColorKey CFSTR("com.apple.print.PrinterInfo.PMSupportsColor") |
|
/* CFBoolean, If Non-zero, printer/PM can do copies */ |
|
#define kPMDoesCopiesStr "com.apple.print.PrinterInfo.PMDoesCopies" |
|
#define kPMDoesCopiesKey CFSTR("com.apple.print.PrinterInfo.PMDoesCopies") |
|
/* CFBoolean, If Non-zero, printer/PM can collate. */ |
|
#define kPMDoesCopyCollateStr "com.apple.print.PrinterInfo.PMDoesCopyCollate" |
|
#define kPMDoesCopyCollateKey CFSTR("com.apple.print.PrinterInfo.PMDoesCopyCollate") |
|
/* CFBoolean, If Non-zero, printer/PM can reverse the printing order. */ |
|
#define kPMDoesReverseOrderStr "com.apple.print.PrinterInfo.PMDoesReverseOrderK" |
|
#define kPMDoesReverseOrderKey CFSTR("com.apple.print.PrinterInfo.PMDoesReverseOrderK") |
|
/* CFArray of CFStrings indicating file types. See PMDefinitions.h for complete list. */ |
|
#define kPMInputFileTypeListStr "com.apple.print.PrinterInfo.PMInputFileTypeList" |
|
#define kPMInputFileTypeListKey CFSTR("com.apple.print.PrinterInfo.PMInputFileTypeList") |
|
/* CFArray of CFStrings indicating the MIME type for the data is can send to an IO module. */ |
|
#define kPMOutputTypeListStr "com.apple.print.PrinterInfo.PMOutputTypeList" |
|
#define kPMOutputTypeListKey CFSTR("com.apple.print.PrinterInfo.PMOutputTypeList") |
|
/* Postscript printing related tags */ |
|
/* CFNumber - kCFNumberSInt32Type, indicates PostScript Language level. Contains one of the values from the enum below */ |
|
#define kPMPostScriptLevelStr "com.apple.print.PrinterInfo.PMPostScriptLevel" |
|
#define kPMPostScriptLevelKey CFSTR("com.apple.print.PrinterInfo.PMPostScriptLevel") |
|
/* CFString e.g."2040.113"*/ |
|
#define kPMPostScriptVersionStr "com.apple.print.PrinterInfo.PMPSVersion" |
|
#define kPMPostScriptVersionKey CFSTR("com.apple.print.PrinterInfo.PMPSVersion") |
|
/* CFNumber - kCFNumberSInt32Type, contains the PostScript revision which is an integer.*/ |
|
#define kPMPostScriptRevisionStr "com.apple.print.PrinterInfo.PMPSRevision" |
|
#define kPMPostScriptRevisionKey CFSTR("com.apple.print.PrinterInfo.PMPSRevision") |
|
/* CFNumber - kCFNumberSInt32Type, contains one of the values from the enum below.*/ |
|
#define kPMPostScriptTrueTypeFontRasterizerStr "com.apple.print.PrinterInfo.PMPSTTRasterizer" |
|
#define kPMPostScriptTrueTypeFontRasterizerKey CFSTR("com.apple.print.PrinterInfo.PMPSTTRasterizer") |
|
|
|
/* Enum for the possible font rasterizers. */ |
|
enum { |
|
kPMPSTTRasterizerUnknown = 0, /* unknown*/ |
|
kPMPSTTRasterizerNone = 1, /* none*/ |
|
kPMPSTTRasterizerAccept68K = 2, /* accept 68k*/ |
|
kPMPSTTRasterizerType42 = 3 /* type 42*/ |
|
}; |
|
|
|
/* Enum for possible PostScript Language Levels. */ |
|
enum { |
|
kPMPSTargetLanguageLevel2and3 = -3, /* Level 2 Compatible, may take advantage of Level 3 features*/ |
|
kPMPSTargetLanguageLevel1and2 = -2, /* Level 1 Compatible, may take advantage of Level 2 and 3 features*/ |
|
kPMPSTargetLanguageLevelUnknown = -1, /* language level of target is unknown*/ |
|
kPMPSTargetLanguageLevel1 = 1, /* level 1*/ |
|
kPMPSTargetLanguageLevel2 = 2, /* level 2*/ |
|
kPMPSTargetLanguageLevel3 = 3, /* level 3*/ |
|
kPMPSTargetLanguageLevelDefault = kPMPSTargetLanguageLevelUnknown /* default*/ |
|
}; |
|
|
|
|
|
/* Note, we've removed the PMLanguageInfoKey because it's not valid to store strings or structures, everything needs to be a CFType.*/ |
|
/* CFNumber - kCFNumberSInt32Type, Memory on the Printer itself. */ |
|
#define kPMTotalMemInstalledStr "com.apple.print.PrinterInfo.PMTotalMemInstalled" |
|
#define kPMTotalMemInstalledKey CFSTR("com.apple.print.PrinterInfo.PMTotalMemInstalled") |
|
/* CFNumber - kCFNumberSInt32Type, Remaining memory available for use. */ |
|
#define kPMTotalMemAvailableStr "com.apple.print.PrinterInfo.PMTotalMemAvailable" |
|
#define kPMTotalMemAvailableKey CFSTR("com.apple.print.PrinterInfo.PMTotalMemAvailable") |
|
/* PPD related tags */ |
|
/* CFString, PPD file name or other description file. */ |
|
#define kPMDescriptionFileStr "com.apple.print.PrinterInfo.PMDescriptionFile" |
|
#define kPMDescriptionFileKey CFSTR("com.apple.print.PrinterInfo.PMDescriptionFile") |
|
/* CFData, Compiled PPD file to ease parsing after the fact. Not sure we need. */ |
|
#define kPMCompiledPPDStr "com.apple.print.PrinterInfo.PMCompiledPPD" |
|
#define kPMCompiledPPDKey CFSTR("com.apple.print.PrinterInfo.PMCompiledPPD") |
|
/* ColorSync related tags */ |
|
/* CFString, representing a CFUUID - must be unique per device */ |
|
#define kPMColorDeviceIDStr "com.apple.print.PrinterInfo.PMColorDeviceID" |
|
#define kPMColorDeviceIDKey CFSTR("com.apple.print.PrinterInfo.PMColorDeviceID") |
|
/* CFArray - of CFDicts, one for each factory profile. */ |
|
#define kPMColorSyncProfilesStr "com.apple.print.PrinterInfo.PMColorSyncProfiles" |
|
#define kPMColorSyncProfilesKey CFSTR("com.apple.print.PrinterInfo.PMColorSyncProfiles") |
|
/* Installable options string. */ |
|
/* CFData, Installable options from PPD file. */ |
|
#define kPMInstallableOptionStr "com.apple.print.PrinterInfo.PMInstallableOption" |
|
#define kPMInstallableOptionKey CFSTR("com.apple.print.PrinterInfo.PMInstallableOption") |
|
/* Suggested app drawing resolutions */ |
|
/* CFArray - array of pairs of kCFNumberDoubleType - One pair for each recommended resolution*/ |
|
#define kPMPrinterSuggestedResStr "com.apple.print.PrinterInfo.PMPrinterSuggestedRes" |
|
#define kPMPrinterSuggestedResKey CFSTR("com.apple.print.PrinterInfo.PMPrinterSuggestedRes") |
|
/* Min and max range of resolutions */ |
|
/* CFArray - 2 CFNumber, kCFNumberDoubleType, min resolution of printer */ |
|
#define kPMPrinterMinResStr "com.apple.print.PrinterInfo.PMPrinterMinRes" |
|
#define kPMPrinterMinResKey CFSTR("com.apple.print.PrinterInfo.PMPrinterMinRes") |
|
/* CFArray - 2 CFNumber, kCFNumberDoubleType, max resolution of printer */ |
|
#define kPMPrinterMaxResStr "com.apple.print.PrinterInfo.PMPrinterMaxRes" |
|
#define kPMPrinterMaxResKey CFSTR("com.apple.print.PrinterInfo.PMPrinterMaxRes") |
|
/* driver creator code */ |
|
/* CFNumber - kCFNumberSInt32Type creator signiture for driver*/ |
|
#define kPMDriverCreatorStr "com.apple.print.PrinterInfo.PMDriverCreator" |
|
#define kPMDriverCreatorKey CFSTR("com.apple.print.PrinterInfo.PMDriverCreator") |
|
/* Printer Resident font data handle */ |
|
/* CFData, Printer resident fonts from printer query. */ |
|
#define kPMPrinterFontStr "com.apple.print.PrinterInfo.Printer Fonts" |
|
#define kPMPrinterFontKey CFSTR("com.apple.print.PrinterInfo.Printer Fonts") |
|
/* CFBoolean - PJCIsPostScriptDriver*/ |
|
#define kPMPrinterIsPostScriptDriverStr "com.apple.print.PrinterInfo.PMIsPostScriptDriver" |
|
#define kPMPrinterIsPostScriptDriverKey CFSTR("com.apple.print.PrinterInfo.PMIsPostScriptDriver") |
|
#define kPMIsBinaryOKStr "com.apple.print.PrinterInfo.PMIsBinaryOK" |
|
#define kPMIsBinaryOKKey CFSTR("com.apple.print.PrinterInfo.PMIsBinaryOK") |
|
/* CFBoolean - Can the comm channel take bytes with the high bit set?*/ |
|
#define kPM8BitCommStr "com.apple.print.PrinterInfo.PM8BitComm" |
|
#define kPM8BitCommKey CFSTR("com.apple.print.PrinterInfo.PM8BitComm") |
|
#define kPMTransparentCommStr "com.apple.print.PrinterInfo.PMTransparentComm" |
|
#define kPMTransparentCommKey CFSTR("com.apple.print.PrinterInfo.PMTransparentComm") |
|
/* Ticket: Converter Setup Ticket |
|
Contains controls for converter. Generally, the Printer Module and Job Manager will set |
|
tags in this ticket to control the various settings of the conversion process. |
|
*/ |
|
#define kPMConverterSetupPrelude "com.apple.print.ConverterSetup." |
|
/* CFBoolean, turns on banding if it's available. */ |
|
#define kPMBandingRequestedStr "com.apple.print.ConverterSetup.PMBandingRequested" |
|
#define kPMBandingRequestedKey CFSTR("com.apple.print.ConverterSetup.PMBandingRequested") |
|
/* CFNumber, number of scan lines needed for each band. Could be whole page, in which case banding is disabled. */ |
|
#define kPMRequiredBandHeightStr "com.apple.print.ConverterSetup.PMRequiredBandHeight" |
|
#define kPMRequiredBandHeightKey CFSTR("com.apple.print.ConverterSetup.PMRequiredBandHeight") |
|
/* CFBoolean. If true, the printer module wants converter to switch between b/w bands and color bands when possible. */ |
|
#define kPMDepthSwitchingEnabledStr "com.apple.print.ConverterSetup.PMDepthSwitching" |
|
#define kPMDepthSwitchingEnabledKey CFSTR("com.apple.print.ConverterSetup.PMDepthSwitching") |
|
/* CFBoolean. If true, the printer module wants converter to skip over white space if possible. */ |
|
#define kPMWhiteSkippingEnabledStr "com.apple.print.ConverterSetup.PMWhiteSpaceSkipping" |
|
#define kPMWhiteSkippingEnabledKey CFSTR("com.apple.print.ConverterSetup.PMWhiteSpaceSkipping") |
|
/* CFNumber, CFNumberDoubleType indicating horizontal final rendering resolution. */ |
|
#define kPMConverterResHorizontalStr "com.apple.print.ConverterSetup.PMConversionResHorizontal" |
|
#define kPMConverterResHorizontalKey CFSTR("com.apple.print.ConverterSetup.PMConversionResHorizontal") |
|
/* CFNumber, CFNumberDoubleType indicating vertical final rendering resolution. */ |
|
#define kPMConverterResVerticalStr "com.apple.print.ConverterSetup.PMConversionResVertcial" |
|
#define kPMConverterResVerticalKey CFSTR("com.apple.print.ConverterSetup.PMConversionResVertcial") |
|
/* CFNumber, CFNumberLongType, indicates the pixel format requested of the converter. */ |
|
#define kPMRequestedPixelFormatStr "com.apple.print.ConverterSetup.PMPixelFormat" |
|
#define kPMRequestedPixelFormatKey CFSTR("com.apple.print.ConverterSetup.PMPixelFormat") |
|
/* CFNumber, CFNumberLongType, indicates the pixel layout requested of the converter. */ |
|
#define kPMRequestedPixelLayoutStr "com.apple.print.ConverterSetup.PMPixelLayout" |
|
#define kPMRequestedPixelLayoutKey CFSTR("com.apple.print.ConverterSetup.PMPixelLayout") |
|
/* CFNumber, kCFNumberSInt32Type, the profile ID for the profile to be used with this job. */ |
|
#define kPMCVColorSyncProfileIDStr "com.apple.print.ConverterSetup.PMProfileID" |
|
#define kPMCVColorSyncProfileIDKey CFSTR("com.apple.print.ConverterSetup.PMProfileID") |
|
|
|
/* END OF SECTION II: TICKET KEYS */ |
|
/* SECTION III, FUNCTIONS: */ |
|
/* Create, or copy a Ticket. As a Ticket is created, its type is stored in the object itself */ |
|
/* and used to help the programmer make sure they are adding the correct fields to the object. */ |
|
/* |
|
* PMTicketCreate() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
PMTicketCreate( |
|
CFAllocatorRef allocator, |
|
CFStringRef ticketType, |
|
PMTicketRef * newTicket); |
|
|
|
|
|
/* |
|
* PMTicketCopy() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
PMTicketCopy( |
|
CFAllocatorRef allocator, |
|
PMTicketRef sourceTicket, |
|
PMTicketRef * destinationTicket); |
|
|
|
|
|
/* Retain, release, or get retain count of a Ticket. The behavior is modelled after */ |
|
/* CoreFoundation's CFRetain, CFRelease, and CFGetRetainCount APIs. */ |
|
/* |
|
* PMTicketGetRetainCount() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
PMTicketGetRetainCount( |
|
PMTicketRef ticket, |
|
CFIndex * retainCount); |
|
|
|
|
|
/* |
|
* PMTicketRetain() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
PMTicketRetain(PMTicketRef ticket); |
|
|
|
|
|
/* |
|
* PMTicketRelease() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
PMTicketRelease(PMTicketRef ticket); |
|
|
|
|
|
|
|
/* |
|
* PMTicketReleaseAndClear() |
|
* |
|
* Discussion: |
|
* PMTicketReleaseAndClear does the same thing as PMTicketRelease |
|
* except that it sets the passed in pointer to NULL, which we think |
|
* is good programming practice. Other references to the ticket may |
|
* still be valid, but this one is no longer expected to be used. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
PMTicketReleaseAndClear(PMTicketRef * ticket); |
|
|
|
|
|
|
|
|
|
/* |
|
* PMTicketGetLockedState() |
|
* |
|
* Discussion: |
|
* Tickets may be locked by the printing system, so we provide a |
|
* function to determine if the ticket is indeed locked. Any |
|
* attempted changes to a locked ticket will result in |
|
* "kPMTicketLocked" error. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
PMTicketGetLockedState( |
|
PMTicketRef ticket, |
|
Boolean * lockedState); |
|
|
|
|
|
|
|
/* |
|
* PMTicketConfirmTicket() |
|
* |
|
* Discussion: |
|
* To confirm that we have a real ticket, this short function gets |
|
* called. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
PMTicketConfirmTicket(PMTicketRef ticket); |
|
|
|
|
|
|
|
/* |
|
* PMTicketValidate() |
|
* |
|
* Discussion: |
|
* We validate an entire ticket by calling our PMTicketValidate |
|
* function, passing a template which contains constraints for all |
|
* the values in the ticket. Those entries in the ticket that don't |
|
* have constraints will not be checked, so developers can add their |
|
* own custom data. For now we have to verify a single ticket at a |
|
* time. Future updates will allow the caller to confirm an entire |
|
* tree of tickets. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
PMTicketValidate( |
|
PMTicketRef ticket, |
|
PMTemplateRef verifyingTemplate, |
|
CFArrayRef * invalidItems); |
|
|
|
|
|
|
|
/* A couple of utility functions to find out what type of ticket is references, as well */ |
|
/* as access to the allocator function passed in for a ticket. We also provide a function */ |
|
/* to check the API version for a ticket, to protect against future conversion problems */ |
|
/* from old to new tickets. */ |
|
/* |
|
* PMTicketGetType() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
PMTicketGetType( |
|
PMTicketRef ticket, |
|
CFStringRef * ticketType); |
|
|
|
|
|
/* |
|
* PMTicketGetEnumType() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
PMTicketGetEnumType( |
|
PMTicketRef ticket, |
|
PMTicketType * ticketType); |
|
|
|
|
|
/* |
|
* PMTicketGetAllocator() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
PMTicketGetAllocator( |
|
PMTicketRef ticket, |
|
CFAllocatorRef * allocator); |
|
|
|
|
|
/* |
|
* PMTicketGetAPIVersion() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
PMTicketGetAPIVersion( |
|
PMTicketRef ticket, |
|
CFStringRef * apiVersion); |
|
|
|
|
|
|
|
/* To store a Ticket object it needs to be converted to XML, a serialization that */ |
|
/* creates human readable text. If the data is to be written to file anyway, a second */ |
|
/* function is provided to go "all the way." */ |
|
/* |
|
* PMTicketToXML() |
|
* |
|
* Discussion: |
|
* Convert to XML |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
PMTicketToXML( |
|
PMTicketRef ticket, |
|
CFDataRef * anXMLTicket); |
|
|
|
|
|
/* |
|
* PMTicketWriteXMLToFile() |
|
* |
|
* Discussion: |
|
* Convert to XML and write to file |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
PMTicketWriteXMLToFile( |
|
PMTicketRef ticket, |
|
const char * path); |
|
|
|
|
|
/* |
|
* PMTicketWriteXML() |
|
* |
|
* Discussion: |
|
* Convert to XML and write to FILE stream |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
PMTicketWriteXML( |
|
PMTicketRef ticket, |
|
FILE * xmlFile); |
|
|
|
|
|
/* |
|
* PMXMLToTicket() |
|
* |
|
* Discussion: |
|
* Convert from XML |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
PMXMLToTicket( |
|
CFAllocatorRef allocator, |
|
CFDataRef anXMLTicket, |
|
PMTicketRef * ticket, |
|
CFStringRef * conversionError); |
|
|
|
|
|
/* |
|
* PMTicketReadXMLFromFile() |
|
* |
|
* Discussion: |
|
* Read from XML file |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
PMTicketReadXMLFromFile( |
|
CFAllocatorRef allocator, |
|
const char * path, |
|
PMTicketRef * ticket, |
|
CFStringRef * errorString); |
|
|
|
|
|
|
|
/* To add an item to a ticket, the "SetItem" call for the specific data type is used whenever */ |
|
/* possible. This adds a new item if one doesn't exist and updates a previous item if it */ |
|
/* already exists. The "locked" field will determine if subsequent updates are allowed. */ |
|
/* Strings: */ |
|
/* CFString */ |
|
/* |
|
* PMTicketSetCFString() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
PMTicketSetCFString( |
|
PMTicketRef ticket, |
|
CFStringRef clientID, |
|
CFStringRef key, |
|
CFStringRef item, |
|
Boolean locked); |
|
|
|
|
|
/* Pascal String */ |
|
/* |
|
* PMTicketSetPString() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
PMTicketSetPString( |
|
PMTicketRef ticket, |
|
CFStringRef clientID, |
|
CFStringRef key, |
|
ConstStringPtr value, |
|
Boolean locked); |
|
|
|
|
|
/* 'C' String */ |
|
/* |
|
* PMTicketSetCString() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
PMTicketSetCString( |
|
PMTicketRef ticket, |
|
CFStringRef clientID, |
|
CFStringRef key, |
|
const char * value, |
|
Boolean locked); |
|
|
|
|
|
/* Array of 'C' Strings */ |
|
/* |
|
* PMTicketSetCStringArray() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
PMTicketSetCStringArray( |
|
PMTicketRef ticket, |
|
CFStringRef clientID, |
|
CFStringRef key, |
|
const char ** cStringArray, |
|
UInt32 count, |
|
Boolean locked); |
|
|
|
|
|
|
|
/* Numbers: */ |
|
/* CFNumber */ |
|
/* |
|
* PMTicketSetCFNumber() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
PMTicketSetCFNumber( |
|
PMTicketRef ticket, |
|
CFStringRef clientID, |
|
CFStringRef key, |
|
CFNumberRef item, |
|
Boolean locked); |
|
|
|
|
|
/* SInt32 */ |
|
/* |
|
* PMTicketSetSInt32() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
PMTicketSetSInt32( |
|
PMTicketRef ticket, |
|
CFStringRef clientID, |
|
CFStringRef key, |
|
SInt32 value, |
|
Boolean locked); |
|
|
|
|
|
/* Array of SInt32 */ |
|
/* |
|
* PMTicketSetSInt32Array() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
PMTicketSetSInt32Array( |
|
PMTicketRef ticket, |
|
CFStringRef clientID, |
|
CFStringRef key, |
|
const SInt32 * sInt32Array, |
|
UInt32 count, |
|
Boolean locked); |
|
|
|
|
|
/* UInt32 */ |
|
/* NOTE: The underlying code uses SInt32s in the CF code, so this function can't set -1 */ |
|
/* as the largest unsigned number. Please avoid setting the high bit */ |
|
/* |
|
* PMTicketSetUInt32() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
PMTicketSetUInt32( |
|
PMTicketRef ticket, |
|
CFStringRef clientID, |
|
CFStringRef key, |
|
UInt32 value, |
|
Boolean locked); |
|
|
|
|
|
/* Array of UInt32 */ |
|
/* NOTE: The underlying code uses SInt32s in the CF code, so this function can't set -1 */ |
|
/* as the largest unsigned number. Please avoid setting the high bit */ |
|
/* |
|
* PMTicketSetUInt32Array() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
PMTicketSetUInt32Array( |
|
PMTicketRef ticket, |
|
CFStringRef clientID, |
|
CFStringRef key, |
|
const UInt32 * uInt32Array, |
|
UInt32 count, |
|
Boolean locked); |
|
|
|
|
|
/* Double */ |
|
/* |
|
* PMTicketSetDouble() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
PMTicketSetDouble( |
|
PMTicketRef ticket, |
|
CFStringRef clientID, |
|
CFStringRef key, |
|
double value, |
|
Boolean locked); |
|
|
|
|
|
/* Array of doubles */ |
|
/* |
|
* PMTicketSetDoubleArray() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
PMTicketSetDoubleArray( |
|
PMTicketRef ticket, |
|
CFStringRef clientID, |
|
CFStringRef key, |
|
const double * doubleArray, |
|
UInt32 count, |
|
Boolean changeable); |
|
|
|
|
|
/* PMResolution - Array of 2 Doubles */ |
|
/* |
|
* PMTicketSetPMResolution() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
PMTicketSetPMResolution( |
|
PMTicketRef ticket, |
|
CFStringRef clientID, |
|
CFStringRef key, |
|
PMResolution * value, |
|
Boolean locked); |
|
|
|
|
|
/* Array of PMResolution */ |
|
/* |
|
* PMTicketSetPMResolutionArray() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
PMTicketSetPMResolutionArray( |
|
PMTicketRef ticket, |
|
CFStringRef clientID, |
|
CFStringRef key, |
|
PMResolution * pmResolutionArray, |
|
UInt32 count, |
|
Boolean locked); |
|
|
|
|
|
/* PMRect - Array of 4 Doubles */ |
|
/* |
|
* PMTicketSetPMRect() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
PMTicketSetPMRect( |
|
PMTicketRef ticket, |
|
CFStringRef clientID, |
|
CFStringRef key, |
|
PMRect * value, |
|
Boolean locked); |
|
|
|
|
|
/* Array of PMRects */ |
|
/* |
|
* PMTicketSetPMRectArray() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
PMTicketSetPMRectArray( |
|
PMTicketRef ticket, |
|
CFStringRef clientID, |
|
CFStringRef key, |
|
PMRect * pmRectArray, |
|
UInt32 count, |
|
Boolean locked); |
|
|
|
|
|
/* Raw Data */ |
|
/* CFData */ |
|
/* |
|
* PMTicketSetCFData() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
PMTicketSetCFData( |
|
PMTicketRef ticket, |
|
CFStringRef clientID, |
|
CFStringRef key, |
|
CFDataRef item, |
|
Boolean locked); |
|
|
|
|
|
/* UInt8 - 'C' Bytes */ |
|
/* |
|
* PMTicketSetBytes() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
PMTicketSetBytes( |
|
PMTicketRef ticket, |
|
CFStringRef clientID, |
|
CFStringRef key, |
|
const UInt8 * data, |
|
UInt32 size, |
|
Boolean locked); |
|
|
|
|
|
/* Booleans */ |
|
/* CFBoolean */ |
|
/* |
|
* PMTicketSetCFBoolean() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
PMTicketSetCFBoolean( |
|
PMTicketRef ticket, |
|
CFStringRef clientID, |
|
CFStringRef key, |
|
CFBooleanRef item, |
|
Boolean locked); |
|
|
|
|
|
/* 'C' Boolean */ |
|
/* |
|
* PMTicketSetBoolean() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
PMTicketSetBoolean( |
|
PMTicketRef ticket, |
|
CFStringRef clientID, |
|
CFStringRef key, |
|
Boolean value, |
|
Boolean locked); |
|
|
|
|
|
|
|
/* Dates */ |
|
/* |
|
* PMTicketSetCFDate() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
PMTicketSetCFDate( |
|
PMTicketRef ticket, |
|
CFStringRef clientID, |
|
CFStringRef key, |
|
CFDateRef item, |
|
Boolean locked); |
|
|
|
|
|
/* Arrays */ |
|
/* |
|
* PMTicketSetCFArray() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
PMTicketSetCFArray( |
|
PMTicketRef ticket, |
|
CFStringRef clientID, |
|
CFStringRef key, |
|
CFArrayRef item, |
|
Boolean locked); |
|
|
|
|
|
/* Dictionaries */ |
|
/* |
|
* PMTicketSetCFDictionary() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
PMTicketSetCFDictionary( |
|
PMTicketRef ticket, |
|
CFStringRef clientID, |
|
CFStringRef key, |
|
CFDictionaryRef item, |
|
Boolean locked); |
|
|
|
|
|
/* Templates, which are defined to be opaque. */ |
|
/* |
|
* PMTicketSetTemplate() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
PMTicketSetTemplate( |
|
PMTicketRef ticket, |
|
CFStringRef clientID, |
|
CFStringRef key, |
|
PMTemplateRef item, |
|
Boolean locked); |
|
|
|
|
|
/* Generic CF Type */ |
|
/* |
|
* PMTicketSetItem() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
PMTicketSetItem( |
|
PMTicketRef ticket, |
|
CFStringRef clientID, |
|
CFStringRef key, |
|
CFTypeRef item, |
|
Boolean locked); |
|
|
|
|
|
|
|
/* |
|
* PMTicketSetMetaItem() |
|
* |
|
* Discussion: |
|
* To add an item that doesn't need to be stored in the XML file, |
|
* use the PMTicketSetMetaItem() call. It allows simple addition of |
|
* an item, but that item won't be written to XML when the rest of |
|
* the ticket is stored. By definition, all meta items are not |
|
* locked, simply because we have no easy mechanism for keeping |
|
* track of a locked state for a meta item. Our intent is to allow a |
|
* caller to add items temporarily to a ticket, perhaps to keep |
|
* track of the "default" ticket in a list of tickets, or the |
|
* "current" paper info in a list of papers. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
PMTicketSetMetaItem( |
|
PMTicketRef ticket, |
|
CFStringRef key, |
|
CFTypeRef item); |
|
|
|
|
|
|
|
/* |
|
* PMTicketFillFromArray() |
|
* |
|
* Discussion: |
|
* Convert an array of static item structures into entries for a |
|
* ticket and add them one at a time to the ticket. Could fail part |
|
* way through. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
PMTicketFillFromArray( |
|
PMTicketRef ticket, |
|
CFStringRef clientID, |
|
const PMTicketItemStruct * items, |
|
UInt32 itemCount); |
|
|
|
|
|
|
|
/* |
|
* PMTicketCopyItem() |
|
* |
|
* Discussion: |
|
* If an item must be copied from one ticket to another, use the |
|
* "CopyItem" call to make the simple transfer. This will update the |
|
* recorded date and client ID for the item. The "locked" field will |
|
* determine if subsequent updates may be made. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
PMTicketCopyItem( |
|
PMTicketRef sourceTicket, |
|
PMTicketRef destTicket, |
|
CFStringRef clientID, |
|
CFStringRef key, |
|
Boolean locked); |
|
|
|
|
|
|
|
/* A couple of functions that will help in managing the "locked" state of any ticket */ |
|
/* item. These functions only work for items directly stored in the current ticket, not */ |
|
/* for items in sub-tickets. */ |
|
/* |
|
* PMTicketIsItemLocked() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
PMTicketIsItemLocked( |
|
PMTicketRef ticket, |
|
CFStringRef key, |
|
Boolean * locked); |
|
|
|
|
|
/* |
|
* PMTicketLockItem() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
PMTicketLockItem( |
|
PMTicketRef ticket, |
|
CFStringRef clientID, |
|
CFStringRef key); |
|
|
|
|
|
/* |
|
* PMTicketUnlockItem() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
PMTicketUnlockItem( |
|
PMTicketRef ticket, |
|
CFStringRef clientID, |
|
CFStringRef key); |
|
|
|
|
|
|
|
/* |
|
* PMTicketDeleteItem() |
|
* |
|
* Discussion: |
|
* Disable an item using PMTicketDelete. Future callers will see |
|
* "ItemNotFound" errors. This call actually tags a new set of |
|
* structures to the end of an item's dictionary, in order to keep a |
|
* history of the item. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
PMTicketDeleteItem( |
|
PMTicketRef ticket, |
|
CFStringRef clientID, |
|
CFStringRef key); |
|
|
|
|
|
/* |
|
* PMTicketReleaseItem() |
|
* |
|
* Discussion: |
|
* Release an item (quite different from delete) when you want it |
|
* completely removed from the ticket. This can only be done if the |
|
* item is unlocked. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
PMTicketReleaseItem( |
|
PMTicketRef ticket, |
|
CFStringRef key); |
|
|
|
|
|
/* |
|
* PMTicketContainsItem() |
|
* |
|
* Discussion: |
|
* Fetching an item back out of the ticket requires the "GetItem" |
|
* call for the particular type of data you're fetching. In some |
|
* cases, the caller doesn't know what type of data is being |
|
* returned, so we have a generic "GetItem" call, but for all other |
|
* cases developers are encouraged to use the specific call for the |
|
* data they need, thus enabling type checking and reducing errors. |
|
* Returns true if item exists. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( Boolean ) |
|
PMTicketContainsItem( |
|
PMTicketRef ticket, |
|
UInt32 nodeIndex1, |
|
UInt32 nodeIndex2, |
|
CFStringRef key); |
|
|
|
|
|
/* Strings */ |
|
/* CFString */ |
|
/* |
|
* PMTicketGetCFString() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
PMTicketGetCFString( |
|
PMTicketRef ticket, |
|
UInt32 nodeIndex1, |
|
UInt32 nodeIndex2, |
|
CFStringRef key, |
|
CFStringRef * item); |
|
|
|
|
|
/* Pascal String */ |
|
/* |
|
* PMTicketGetPString() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
PMTicketGetPString( |
|
PMTicketRef ticket, |
|
UInt32 nodeIndex1, |
|
UInt32 nodeIndex2, |
|
CFStringRef key, |
|
UInt32 bufferSize, |
|
CFStringEncoding encoding, |
|
StringPtr value); |
|
|
|
|
|
/* 'C' String */ |
|
/* |
|
* PMTicketGetCString() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
PMTicketGetCString( |
|
PMTicketRef ticket, |
|
UInt32 nodeIndex1, |
|
UInt32 nodeIndex2, |
|
CFStringRef key, |
|
UInt32 bufferSize, |
|
CFStringEncoding encoding, |
|
char * value); |
|
|
|
|
|
|
|
/* Numbers */ |
|
/* CFNumber */ |
|
/* |
|
* PMTicketGetCFNumber() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
PMTicketGetCFNumber( |
|
PMTicketRef ticket, |
|
UInt32 nodeIndex1, |
|
UInt32 nodeIndex2, |
|
CFStringRef key, |
|
CFNumberRef * item); |
|
|
|
|
|
/* SInt32 */ |
|
/* |
|
* PMTicketGetSInt32() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
PMTicketGetSInt32( |
|
PMTicketRef ticket, |
|
UInt32 nodeIndex1, |
|
UInt32 nodeIndex2, |
|
CFStringRef key, |
|
SInt32 * value); |
|
|
|
|
|
/* UInt32 */ |
|
/* |
|
* PMTicketGetUInt32() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
PMTicketGetUInt32( |
|
PMTicketRef ticket, |
|
UInt32 nodeIndex1, |
|
UInt32 nodeIndex2, |
|
CFStringRef key, |
|
UInt32 * value); |
|
|
|
|
|
/* Double */ |
|
/* |
|
* PMTicketGetDouble() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
PMTicketGetDouble( |
|
PMTicketRef ticket, |
|
UInt32 nodeIndex1, |
|
UInt32 nodeIndex2, |
|
CFStringRef key, |
|
double * value); |
|
|
|
|
|
/* PMResolution - Array of 2 doubles */ |
|
/* |
|
* PMTicketGetPMResolution() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
PMTicketGetPMResolution( |
|
PMTicketRef ticket, |
|
UInt32 nodeIndex1, |
|
UInt32 nodeIndex2, |
|
CFStringRef key, |
|
PMResolution * res); |
|
|
|
|
|
/* |
|
* PMTicketGetIndexPMResolution() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
PMTicketGetIndexPMResolution( |
|
PMTicketRef ticket, |
|
UInt32 nodeIndex1, |
|
UInt32 nodeIndex2, |
|
CFStringRef key, |
|
UInt32 index, |
|
PMResolution * res); |
|
|
|
|
|
/* PMRect - Array of 4 doubles */ |
|
/* |
|
* PMTicketGetPMRect() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
PMTicketGetPMRect( |
|
PMTicketRef ticket, |
|
UInt32 nodeIndex1, |
|
UInt32 nodeIndex2, |
|
CFStringRef key, |
|
PMRect * value); |
|
|
|
|
|
|
|
/* Raw Data */ |
|
/* CFData */ |
|
/* |
|
* PMTicketGetCFData() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
PMTicketGetCFData( |
|
PMTicketRef ticket, |
|
UInt32 nodeIndex1, |
|
UInt32 nodeIndex2, |
|
CFStringRef key, |
|
CFDataRef * item); |
|
|
|
|
|
/* UInt8 - 'C' Bytes */ |
|
/* NOTE: Caller is expected to call twice if size is unknown, passing null for data pointer */ |
|
/* and a valid pointer for the size before allocating space and calling back with both pointers */ |
|
/* set, this time with valid data pointer and valid size pointer pointing to # of bytes requested. */ |
|
/* |
|
* PMTicketGetBytes() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
PMTicketGetBytes( |
|
PMTicketRef ticket, |
|
UInt32 nodeIndex1, |
|
UInt32 nodeIndex2, |
|
CFStringRef key, |
|
UInt8 * data, |
|
UInt32 * size); |
|
|
|
|
|
/* Booleans */ |
|
/* CFBoolean */ |
|
/* |
|
* PMTicketGetCFBoolean() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
PMTicketGetCFBoolean( |
|
PMTicketRef ticket, |
|
UInt32 nodeIndex1, |
|
UInt32 nodeIndex2, |
|
CFStringRef key, |
|
CFBooleanRef * item); |
|
|
|
|
|
/* 'C' Boolean */ |
|
/* |
|
* PMTicketGetBoolean() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
PMTicketGetBoolean( |
|
PMTicketRef ticket, |
|
UInt32 nodeIndex1, |
|
UInt32 nodeIndex2, |
|
CFStringRef key, |
|
Boolean * value); |
|
|
|
|
|
/* Dates */ |
|
/* |
|
* PMTicketGetCFDate() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
PMTicketGetCFDate( |
|
PMTicketRef ticket, |
|
UInt32 nodeIndex1, |
|
UInt32 nodeIndex2, |
|
CFStringRef key, |
|
CFDateRef * item); |
|
|
|
|
|
/* Non-numeric Arrays */ |
|
/* |
|
* PMTicketGetCFArray() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
PMTicketGetCFArray( |
|
PMTicketRef ticket, |
|
UInt32 nodeIndex1, |
|
UInt32 nodeIndex2, |
|
CFStringRef key, |
|
CFArrayRef * item); |
|
|
|
|
|
/* Dictionaries */ |
|
/* |
|
* PMTicketGetCFDictionary() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
PMTicketGetCFDictionary( |
|
PMTicketRef ticket, |
|
UInt32 nodeIndex1, |
|
UInt32 nodeIndex2, |
|
CFStringRef key, |
|
CFDictionaryRef * item); |
|
|
|
|
|
/* PMTemplates, which are defined to be opaque. */ |
|
/* |
|
* PMTicketCreateTemplate() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
PMTicketCreateTemplate( |
|
PMTicketRef ticket, |
|
UInt32 nodeIndex1, |
|
UInt32 nodeIndex2, |
|
CFStringRef key, |
|
PMTemplateRef * item); |
|
|
|
|
|
|
|
/* The generic calls for regular items and meta items. See notes on "SetMetaItem" for more details. */ |
|
/* |
|
* PMTicketGetItem() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
PMTicketGetItem( |
|
PMTicketRef ticket, |
|
UInt32 nodeIndex1, |
|
UInt32 nodeIndex2, |
|
CFStringRef key, |
|
CFTypeRef * item); |
|
|
|
|
|
/* Meta items don't get saved to XML. */ |
|
/* |
|
* PMTicketGetMetaItem() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
PMTicketGetMetaItem( |
|
PMTicketRef ticket, |
|
CFStringRef key, |
|
CFTypeRef * item); |
|
|
|
|
|
|
|
/* Any ticket can contain another ticket, allowing us to store multiple PageFormat tickets */ |
|
/* (one for each page) and multiple Document Info tickets (for multi-document jobs). The following */ |
|
/* functions allow us to put a ticket into another ticket as a sub-ticket, and retreive it */ |
|
/* later on. */ |
|
/* |
|
* PMTicketSetTicket() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
PMTicketSetTicket( |
|
PMTicketRef ticket, |
|
PMTicketRef ticketToAdd, |
|
UInt32 index); |
|
|
|
|
|
/* |
|
* PMTicketContainsTicket() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
PMTicketContainsTicket( |
|
PMTicketRef ticket, |
|
CFStringRef requestedType, |
|
UInt32 index, |
|
Boolean * exists); |
|
|
|
|
|
/* |
|
* PMTicketGetTicket() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
PMTicketGetTicket( |
|
PMTicketRef ticket, |
|
CFStringRef requestedType, |
|
UInt32 index, |
|
PMTicketRef * retreivedTicket); |
|
|
|
|
|
/* |
|
* PMTicketRemoveTicket() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
PMTicketRemoveTicket( |
|
PMTicketRef ticket, |
|
CFStringRef typeToRemove, |
|
UInt32 index); |
|
|
|
|
|
/* |
|
* PMTicketGetPPDDict() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
PMTicketGetPPDDict( |
|
PMTicketRef ticket, |
|
UInt32 nodeIndex1, |
|
UInt32 nodeIndex2, |
|
CFMutableDictionaryRef * dict); |
|
|
|
|
|
|
|
|
|
|
|
#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 |
|
|
|
#ifdef __cplusplus |
|
} |
|
#endif
|
|
|