From 4382611f85dc0dcbfc7cca9a4ba175b3bc83da14 Mon Sep 17 00:00:00 2001 From: Kaleb Keithley Date: Fri, 14 Nov 2003 15:54:35 +0000 Subject: R6.6 is the Xorg base-line --- Print.h | 596 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 596 insertions(+) create mode 100644 Print.h (limited to 'Print.h') diff --git a/Print.h b/Print.h new file mode 100644 index 0000000..3a8e4f2 --- /dev/null +++ b/Print.h @@ -0,0 +1,596 @@ +/* $Xorg: Print.h,v 1.3 2000/08/18 04:05:44 coskrey Exp $ */ +/****************************************************************************** + ****************************************************************************** + ** + ** File: Print.h + ** + ** Description: Definitions needed by the server, library, and + ** clients. Subportion restricted to library and + ** clients. + ** + ** Server, Library, Client portion has: + ** o All sz_* defines + ** o Revision and Name defines + ** o Common defines and constants (e.g. Keywords, Masks) + ** o Extension version structure + ** + ** Library and client subportion has: + ** o Convience Marcos + ** o Client side data structures + ** o Client side event structures (non wire) + ** o Library function prototypes + ** o some private stuff denoted with _whatever + ** + ** Printstr.h for server and library, but NOT clients. + ** + ****************************************************************************** + ** + ** (c) Copyright 1996 Hewlett-Packard Company + ** (c) Copyright 1996 International Business Machines Corp. + ** (c) Copyright 1996 Sun Microsystems, Inc. + ** (c) Copyright 1996 Novell, Inc. + ** (c) Copyright 1996 Digital Equipment Corp. + ** (c) Copyright 1996 Fujitsu Limited + ** (c) Copyright 1996 Hitachi, Ltd. + ** + ** Permission is hereby granted, free of charge, to any person obtaining a copy + ** of this software and associated documentation files (the "Software"), to deal + ** in the Software without restriction, including without limitation the rights + ** to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + ** copies of the Software, and to permit persons to whom the Software is + ** furnished to do so, subject to the following conditions: + ** + ** The above copyright notice and this permission notice shall be included in + ** all copies or substantial portions of the Software. + ** + ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + ** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + ** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + ** COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + ** IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + ** CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + ** + ** Except as contained in this notice, the names of the copyright holders shall + ** not be used in advertising or otherwise to promote the sale, use or other + ** dealings in this Software without prior written authorization from said + ** copyright holders. + ** + ****************************************************************************** + *****************************************************************************/ + +#ifndef _XpPrint_H_ +#define _XpPrint_H_ + +#ifndef _XP_PRINT_SERVER_ +#include +#include +#include +#endif /* _XP_PRINT_SERVER_ */ + +#include + +_XFUNCPROTOBEGIN + +/****************************************************************************** + * + * Definitions used by the server, library and client. + */ + +/******************************************************************** + * + * Naming and versioning information. + */ +#define XP_PRINTNAME "XpExtension" + +/* + * Add a define below for each major extension release. + */ +#define XP_DONT_CHECK 0 +#define XP_INITIAL_RELEASE 1 + +/* + * For each single entry above, create one major/minor pair. + */ +#define XP_PROTO_MAJOR 1 +#define XP_PROTO_MINOR 0 + +/* + * Identify current version. + */ +#define XP_MAJOR_VERSION XP_PROTO_MAJOR +#define XP_MINOR_VERSION XP_PROTO_MINOR + +/* + * Misc version defines. + */ +#define XP_ABSENT 0 /* Prior to XP Print support */ +#define XP_PRESENT 1 /* With XP Print support */ + +/******************************************************************** + * + * Xp Print Error codes. + */ +#define XP_ERRORS 3 /* number of error types */ + +#define XPBadContext 0 /* Print Context invalid or missing */ +#define XPBadSequence 1 /* Illegal sequence of XP operations */ +#define XPBadResourceID 2 /* X-resource not valid */ + +/******************************************************************** + * + * Xp Print Event masks and codes. + * + */ +#define XP_EVENTS 2 /* number of event types */ + +#define XPNoEventMask 0 /* not an event - just a null mask */ +#define XPPrintMask (1L<<0) +#define XPAttributeMask (1L<<1) + +#define XPPrintNotify 0 /* contains "detail" - see below */ +#define XPAttributeNotify 1 /* contains "detail" - see below */ + +#define XPStartJobNotify 0 /* value for "detail" in XPPrintNotify*/ +#define XPEndJobNotify 1 +#define XPStartDocNotify 2 +#define XPEndDocNotify 3 +#define XPStartPageNotify 4 +#define XPEndPageNotify 5 + +/******************************************************************** + * + * Xp Print Attribute Object codes (subset of ISO DPA 10175). The + * Xp Server can get and set any of the values, while the Xp Library + * may only be able to set a subset of the attribute objects. + * + * note: the codes are also used as "detail" for XPAttributeNotify + * + * note: XPPageAttr is not defined in ISO DPA 10175. It is unique + * to Xp, and its attributes are a proper subset of XPDocAttr. + */ +typedef unsigned char XPAttributes; /* type of Xp*Attr codes */ + +#define XP_ATTRIBUTES 5 /* those attrs currently supported */ + +#define XPJobAttr 1 /* get/set */ +#define XPDocAttr 2 /* get/set */ +#define XPPageAttr 3 /* get/set - subset of XPDocAttr */ +#define XPPrinterAttr 4 /* get only (library) */ +#define XPServerAttr 5 /* get only (library), no + context needed */ + +/* + * note: ISO DPA 10175 defines a number of "attribute objects", of + * which POSIX 1387.4 and the SI Xp will only support a + * subset. + */ +#define XPMediumAttr 6 /* DPA-Object Medium */ +#define XPFontAttr 7 /* DPA-Object Font */ +#define XPResAttr 8 /* DPA-Object Resource */ +#define XPTransAttr 9 /* DPA-Object Transfer method */ +#define XPDelAttr 10 /* DPA-Object Delivery method */ +#define XPAuxSPkg 11 /* DPA-Object Auxiliary sheet package */ +#define XPAuxS 12 /* DPA-Object Auxiliary sheet */ +#define XPFinishAttr 13 /* DPA-Object Finishing */ +#define XPOutputAttr 14 /* DPA-Object Output method */ +#define XPImpAttr 15 /* DPA-Object Imposition */ +#define XPSchedAttr 16 /* DPA-Object Scheduler */ +#define XPIntJobAttr 17 /* DPA-Object Initial value job */ +#define XPIntDocAttr 18 /* DPA-Object Initial value document */ +#define XPResConAttr 19 /* DPA-Object Resource context */ + + +/* + * Replacement rules for XpSetAttributes + */ +typedef unsigned char XPAttrReplacement; +#define XPAttrReplace 1 +#define XPAttrMerge 2 + + +/* + * Return codes for XpGetDocumentData + */ +typedef unsigned char XPGetDocStatus; +#define XPGetDocFinished 0 /* normal termination */ +#define XPGetDocSecondConsumer 1 /* setup error */ +#define XPGetDocError 2 /* runtime error, see generated error */ + + +/* + * Save data types for XpStartJob. + */ +typedef unsigned char XPSaveData; +#define XPSpool 1 /* Job data sent to spooler */ +#define XPGetData 2 /* Job data via XpGetDocumentData */ + + +/* + * Document types for XpStartDoc. + */ +typedef unsigned char XPDocumentType; +#define XPDocNormal 1 /* Doc data handled by Xserver */ +#define XPDocRaw 2 /* Doc data passed through Xserver */ + + +/******************************************************************** + * + * Xp Print Property Names + */ + + +#ifndef _XP_PRINT_SERVER_ + +/****************************************************************************** + * + * Definitions used by the library and clients only. + */ + +/******************************************************************* + * + * General API defines and such. + */ + +/* + * Print Context for XpInitContext and related calls. + */ +typedef XID XPContext; + +/* + * Struct for XpGetPrinterList. + */ +typedef struct { + char *name; /* name */ + char *desc; /* localized description */ +} XPPrinterRec, *XPPrinterList; + +/* + * Typedefs for XpGetDocumentData + */ +typedef void (*XPSaveProc)( Display *display, + XPContext context, + unsigned char *data, + unsigned int data_len, + XPointer client_data); + +typedef void (*XPFinishProc)( Display *display, + XPContext context, + XPGetDocStatus status, + XPointer client_data); + +/* + * Typedefs for XpSetLocaleHinter and XpGetLocaleHinter + */ +typedef char * (*XPHinterProc)(); + +/******************************************************************* + * + * Extension version structures. + * + */ +typedef struct { + int present; + short major_version; + short minor_version; +} XExtensionVersion; + +/******************************************************************** + * + * Event structs for clients. + * + * note: these events are relative to a print context, and + * not to a window as in core X. + */ +typedef struct { + int type; /* base + XPPrintNotify */ + unsigned long serial; /* # of last request processed by server */ + Bool send_event; /* true if from a SendEvent request */ + Display *display; /* Display the event was read from */ + XPContext context; /* print context where operation was requested */ + Bool cancel; /* was detailed event canceled */ + int detail; /* XPStartJobNotify, XPEndJobNotify, + XPStartDocNotify, XPEndDocNotify, + XPStartPageNotify, XPEndPageNotify */ +} XPPrintEvent; + +typedef struct { + int type; /* base + XPAttributeNotify */ + unsigned long serial; /* # of last request processed by server */ + Bool send_event; /* true if from a SendEvent request */ + Display *display; /* Display the event was read from */ + XPContext context; /* print context where operation was requested */ + int detail; /* XPJobAttr, XPDocAttr, XPPageAttr, + XPPrinterAttr, XPSpoolerAttr, + XPMediumAttr, XPServerAttr */ +} XPAttributeEvent; + +typedef struct { + int type; /* base + XPDataReadyNotify */ + unsigned long serial; /* # of last request processed by server */ + Bool send_event; /* true if from a SendEvent request */ + Display *display; /* Display the event was read from */ + XPContext context; /* print context where operation was requested */ + unsigned long available; /* bytes available for retrieval */ +} XPDataReadyEvent; + + +/********************************************************** + * + * Function prototypes for library side. + */ + +#if NeedFunctionPrototypes + +extern XPContext XpCreateContext ( + Display *display, + char *printer_name +); + +extern void XpSetContext ( + Display *display, + XPContext print_context +); + +extern XPContext XpGetContext ( + Display *display +); + +extern void XpDestroyContext ( + Display *display, + XPContext print_context +); + +extern Screen *XpGetScreenOfContext ( + Display *display, + XPContext print_context +); + +extern Status XpGetPageDimensions ( + Display *display, + XPContext print_context, + unsigned short *width, /* return value */ + unsigned short *height, /* return value */ + XRectangle *reproducible_area /* return value */ +); + +extern void XpStartJob ( + Display *display, + XPSaveData save_data +); + +extern void XpEndJob ( + Display *display +); + +extern void XpCancelJob ( + Display *display, + Bool discard +); + +extern void XpStartDoc ( + Display *display, + XPDocumentType type +); + +extern void XpEndDoc ( + Display *display +); + +extern void XpCancelDoc ( + Display *display, + Bool discard +); + +extern void XpPutDocumentData ( + Display *display, + Drawable drawable, + unsigned char *data, + int data_len, + char *doc_fmt, + char *options +); + +extern Status XpGetDocumentData ( + Display *display, + XPContext context, + XPSaveProc save_proc, + XPFinishProc finish_proc, + XPointer client_data +); + +extern void XpStartPage ( + Display *display, + Window window +); + +extern void XpEndPage ( + Display *display +); + +extern void XpCancelPage ( + Display *display, + Bool discard +); + +extern void XpSelectInput ( + Display *display, + XPContext print_context, + unsigned long event_mask +); + +extern unsigned long XpInputSelected ( + Display *display, + XPContext print_context, + unsigned long *all_events_mask +); + +extern Bool XpSetImageResolution ( + Display *display, + XPContext print_context, + int image_res, + int *prev_res +); + +extern int XpGetImageResolution ( + Display *display, + XPContext print_context +); + +extern char *XpGetAttributes ( + Display *display, + XPContext print_context, + XPAttributes type +); + +extern void XpSetAttributes ( + Display *display, + XPContext print_context, + XPAttributes type, + char *pool, + XPAttrReplacement replacement_rule +); + +extern char *XpGetOneAttribute ( + Display *display, + XPContext print_context, + XPAttributes type, + char *attribute_name +); + +extern XPPrinterList XpGetPrinterList ( + Display *display, + char *printer_name, + int *list_count /* return value */ +); + +extern void XpFreePrinterList ( + XPPrinterList printer_list +); + +extern void XpRehashPrinterList ( + Display *display +); + +extern Status XpQueryVersion ( + Display *display, + short *major_version, /* return value */ + short *minor_version /* return value */ +); + +extern Bool XpQueryExtension ( + Display *display, + int *event_base_return, /* return value */ + int *error_base_return /* return value */ +); + +extern Screen **XpQueryScreens ( + Display *display, + int *list_count /* return value */ +); + +extern Status XpGetPdmStartParams ( + Display *print_display, + Window print_window, + XPContext print_context, + Display *video_display, + Window video_window, + Display **selection_display, /* return value */ + Atom *selection, /* return value */ + Atom *type, /* return value */ + int *format, /* return value */ + unsigned char **data, /* return value */ + int *nelements /* return value */ +); + +extern Status XpGetAuthParams ( + Display *print_display, + Display *video_display, + Display **selection_display, /* return value */ + Atom *selection, /* return value */ + Atom *target /* return value */ +); + +extern Status XpSendAuth ( + Display *display, + Window window +); + +extern Status XpSendOneTicket ( + Display *display, + Window window, + Xauth *ticket, + Bool more +); + +extern void XpSetLocaleHinter ( + XPHinterProc hinter_proc, + char *hinter_desc +); + +extern char *XpGetLocaleHinter ( + XPHinterProc *hinter_proc +); + + + + +extern char *XpGetLocaleNetString(); + +extern char *XpNotifyPdm ( + Display *print_display, + Window print_window, + XPContext print_context, + Display *video_display, + Window video_window, + Bool auth_flag +); + +#else + +extern XPContext XpCreateContext (); +extern void XpSetContext (); +extern XPContext XpGetContext (); +extern void XpDestroyContext (); +extern Screen *XpGetScreenOfContext (); +extern Status XpGetPageDimensions (); +extern void XpStartJob (); +extern void XpEndJob (); +extern void XpCancelJob (); +extern void XpStartDoc (); +extern void XpEndDoc (); +extern void XpCancelDoc (); +extern void XpPutDocumentData (); +extern Status XpGetDocumentData (); +extern void XpStartPage (); +extern void XpEndPage (); +extern void XpCancelPage (); +extern void XpSelectInput (); +extern unsigned long XpInputSelected (); +extern Bool XpSetImageResolution (); +extern int XpGetImageResolution (); +extern char *XpGetAttributes (); +extern void XpSetAttributes (); +extern char *XpGetOneAttribute (); +extern XPPrinterList XpGetPrinterList (); +extern void XpFreePrinterList (); +extern void XpRehashPrinterList (); +extern Status XpQueryVersion (); +extern Bool XpQueryExtension (); +extern Screen **XpQueryScreens (); +extern Status XpGetPdmStartParams (); +extern Status XpGetAuthParams (); +extern Status XpSendAuth (); +extern Status XpSendOneTicket (); +extern void XpSetLocaleHinter (); +extern char *XpGetLocaleHinter (); + +extern char *XpGetLocaleNetString (); +extern char *XpNotifyPdm (); + +#endif /* NeedFunctionPrototypes */ + +#endif /* _XP_PRINT_SERVER_ */ + +_XFUNCPROTOEND + +#endif /* _XpPrint_H_ */ -- cgit v1.2.1