VirtualBox

source: vbox/trunk/src/VBox/Additions/x11/x11include/4.2/include/extensions/Print.h@ 17240

Last change on this file since 17240 was 17240, checked in by vboxsync, 16 years ago

Additions/x11/x11include: blast! Done it again. Reverted r43561.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 15.4 KB
Line 
1/* $Xorg: Print.h,v 1.3 2000/08/18 04:05:44 coskrey Exp $ */
2/******************************************************************************
3 ******************************************************************************
4 **
5 ** File: Print.h
6 **
7 ** Description: Definitions needed by the server, library, and
8 ** clients. Subportion restricted to library and
9 ** clients.
10 **
11 ** Server, Library, Client portion has:
12 ** o All sz_* defines
13 ** o Revision and Name defines
14 ** o Common defines and constants (e.g. Keywords, Masks)
15 ** o Extension version structure
16 **
17 ** Library and client subportion has:
18 ** o Convience Marcos
19 ** o Client side data structures
20 ** o Client side event structures (non wire)
21 ** o Library function prototypes
22 ** o some private stuff denoted with _whatever
23 **
24 ** Printstr.h for server and library, but NOT clients.
25 **
26 ******************************************************************************
27 **
28 ** (c) Copyright 1996 Hewlett-Packard Company
29 ** (c) Copyright 1996 International Business Machines Corp.
30 ** (c) Copyright 1996 Sun Microsystems, Inc.
31 ** (c) Copyright 1996 Novell, Inc.
32 ** (c) Copyright 1996 Digital Equipment Corp.
33 ** (c) Copyright 1996 Fujitsu Limited
34 ** (c) Copyright 1996 Hitachi, Ltd.
35 **
36 ** Permission is hereby granted, free of charge, to any person obtaining a copy
37 ** of this software and associated documentation files (the "Software"), to deal
38 ** in the Software without restriction, including without limitation the rights
39 ** to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
40 ** copies of the Software, and to permit persons to whom the Software is
41 ** furnished to do so, subject to the following conditions:
42 **
43 ** The above copyright notice and this permission notice shall be included in
44 ** all copies or substantial portions of the Software.
45 **
46 ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
47 ** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
48 ** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
49 ** COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
50 ** IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
51 ** CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
52 **
53 ** Except as contained in this notice, the names of the copyright holders shall
54 ** not be used in advertising or otherwise to promote the sale, use or other
55 ** dealings in this Software without prior written authorization from said
56 ** copyright holders.
57 **
58 ******************************************************************************
59 *****************************************************************************/
60/* $XFree86: xc/include/extensions/Print.h,v 1.5 2001/01/17 17:53:15 dawes Exp $ */
61
62#ifndef _XpPrint_H_
63#define _XpPrint_H_
64
65#ifndef _XP_PRINT_SERVER_
66#include <X11/Xlib.h>
67#include <X11/Xresource.h>
68#include <X11/Xauth.h>
69#endif /* _XP_PRINT_SERVER_ */
70
71#include <X11/Xfuncproto.h>
72
73_XFUNCPROTOBEGIN
74
75/******************************************************************************
76 *
77 * Definitions used by the server, library and client.
78 */
79
80/********************************************************************
81 *
82 * Naming and versioning information.
83 */
84#define XP_PRINTNAME "XpExtension"
85
86/*
87 * Add a define below for each major extension release.
88 */
89#define XP_DONT_CHECK 0
90#define XP_INITIAL_RELEASE 1
91
92/*
93 * For each single entry above, create one major/minor pair.
94 */
95#define XP_PROTO_MAJOR 1
96#define XP_PROTO_MINOR 0
97
98/*
99 * Identify current version.
100 */
101#define XP_MAJOR_VERSION XP_PROTO_MAJOR
102#define XP_MINOR_VERSION XP_PROTO_MINOR
103
104/*
105 * Misc version defines.
106 */
107#define XP_ABSENT 0 /* Prior to XP Print support */
108#define XP_PRESENT 1 /* With XP Print support */
109
110/********************************************************************
111 *
112 * Xp Print Error codes.
113 */
114#define XP_ERRORS 3 /* number of error types */
115
116#define XPBadContext 0 /* Print Context invalid or missing */
117#define XPBadSequence 1 /* Illegal sequence of XP operations */
118#define XPBadResourceID 2 /* X-resource not valid */
119
120/********************************************************************
121 *
122 * Xp Print Event masks and codes.
123 *
124 */
125#define XP_EVENTS 2 /* number of event types */
126
127#define XPNoEventMask 0 /* not an event - just a null mask */
128#define XPPrintMask (1L<<0)
129#define XPAttributeMask (1L<<1)
130
131#define XPPrintNotify 0 /* contains "detail" - see below */
132#define XPAttributeNotify 1 /* contains "detail" - see below */
133
134#define XPStartJobNotify 0 /* value for "detail" in XPPrintNotify*/
135#define XPEndJobNotify 1
136#define XPStartDocNotify 2
137#define XPEndDocNotify 3
138#define XPStartPageNotify 4
139#define XPEndPageNotify 5
140
141/********************************************************************
142 *
143 * Xp Print Attribute Object codes (subset of ISO DPA 10175). The
144 * Xp Server can get and set any of the values, while the Xp Library
145 * may only be able to set a subset of the attribute objects.
146 *
147 * note: the codes are also used as "detail" for XPAttributeNotify
148 *
149 * note: XPPageAttr is not defined in ISO DPA 10175. It is unique
150 * to Xp, and its attributes are a proper subset of XPDocAttr.
151 */
152typedef unsigned char XPAttributes; /* type of Xp*Attr codes */
153
154#define XP_ATTRIBUTES 5 /* those attrs currently supported */
155
156#define XPJobAttr 1 /* get/set */
157#define XPDocAttr 2 /* get/set */
158#define XPPageAttr 3 /* get/set - subset of XPDocAttr */
159#define XPPrinterAttr 4 /* get only (library) */
160#define XPServerAttr 5 /* get only (library), no
161 context needed */
162
163/*
164 * note: ISO DPA 10175 defines a number of "attribute objects", of
165 * which POSIX 1387.4 and the SI Xp will only support a
166 * subset.
167 */
168#define XPMediumAttr 6 /* DPA-Object Medium */
169#define XPFontAttr 7 /* DPA-Object Font */
170#define XPResAttr 8 /* DPA-Object Resource */
171#define XPTransAttr 9 /* DPA-Object Transfer method */
172#define XPDelAttr 10 /* DPA-Object Delivery method */
173#define XPAuxSPkg 11 /* DPA-Object Auxiliary sheet package */
174#define XPAuxS 12 /* DPA-Object Auxiliary sheet */
175#define XPFinishAttr 13 /* DPA-Object Finishing */
176#define XPOutputAttr 14 /* DPA-Object Output method */
177#define XPImpAttr 15 /* DPA-Object Imposition */
178#define XPSchedAttr 16 /* DPA-Object Scheduler */
179#define XPIntJobAttr 17 /* DPA-Object Initial value job */
180#define XPIntDocAttr 18 /* DPA-Object Initial value document */
181#define XPResConAttr 19 /* DPA-Object Resource context */
182
183
184/*
185 * Replacement rules for XpSetAttributes
186 */
187typedef unsigned char XPAttrReplacement;
188#define XPAttrReplace 1
189#define XPAttrMerge 2
190
191
192/*
193 * Return codes for XpGetDocumentData
194 */
195typedef unsigned char XPGetDocStatus;
196#define XPGetDocFinished 0 /* normal termination */
197#define XPGetDocSecondConsumer 1 /* setup error */
198#define XPGetDocError 2 /* runtime error, see generated error */
199
200
201/*
202 * Save data types for XpStartJob.
203 */
204typedef unsigned char XPSaveData;
205#define XPSpool 1 /* Job data sent to spooler */
206#define XPGetData 2 /* Job data via XpGetDocumentData */
207
208
209/*
210 * Document types for XpStartDoc.
211 */
212typedef unsigned char XPDocumentType;
213#define XPDocNormal 1 /* Doc data handled by Xserver */
214#define XPDocRaw 2 /* Doc data passed through Xserver */
215
216
217/********************************************************************
218 *
219 * Xp Print Property Names
220 */
221
222
223#ifndef _XP_PRINT_SERVER_
224
225/******************************************************************************
226 *
227 * Definitions used by the library and clients only.
228 */
229
230/*******************************************************************
231 *
232 * General API defines and such.
233 */
234
235/*
236 * Print Context for XpInitContext and related calls.
237 */
238typedef XID XPContext;
239
240/*
241 * Struct for XpGetPrinterList.
242 */
243typedef struct {
244 char *name; /* name */
245 char *desc; /* localized description */
246} XPPrinterRec, *XPPrinterList;
247
248/*
249 * Typedefs for XpGetDocumentData
250 */
251typedef void (*XPSaveProc)( Display *display,
252 XPContext context,
253 unsigned char *data,
254 unsigned int data_len,
255 XPointer client_data);
256
257typedef void (*XPFinishProc)( Display *display,
258 XPContext context,
259 XPGetDocStatus status,
260 XPointer client_data);
261
262/*
263 * Typedefs for XpSetLocaleHinter and XpGetLocaleHinter
264 */
265typedef char * (*XPHinterProc)(void);
266
267#if 0
268/*******************************************************************
269 *
270 * Extension version structures.
271 *
272 **** this structure is now defined localy in the one file that uses it
273 **** in order to avoid clashes with its definition in XI.h
274 */
275typedef struct {
276 int present;
277 short major_version;
278 short minor_version;
279} XExtensionVersion;
280#endif
281
282/********************************************************************
283 *
284 * Event structs for clients.
285 *
286 * note: these events are relative to a print context, and
287 * not to a window as in core X.
288 */
289typedef struct {
290 int type; /* base + XPPrintNotify */
291 unsigned long serial; /* # of last request processed by server */
292 Bool send_event; /* true if from a SendEvent request */
293 Display *display; /* Display the event was read from */
294 XPContext context; /* print context where operation was requested */
295 Bool cancel; /* was detailed event canceled */
296 int detail; /* XPStartJobNotify, XPEndJobNotify,
297 XPStartDocNotify, XPEndDocNotify,
298 XPStartPageNotify, XPEndPageNotify */
299} XPPrintEvent;
300
301typedef struct {
302 int type; /* base + XPAttributeNotify */
303 unsigned long serial; /* # of last request processed by server */
304 Bool send_event; /* true if from a SendEvent request */
305 Display *display; /* Display the event was read from */
306 XPContext context; /* print context where operation was requested */
307 int detail; /* XPJobAttr, XPDocAttr, XPPageAttr,
308 XPPrinterAttr, XPSpoolerAttr,
309 XPMediumAttr, XPServerAttr */
310} XPAttributeEvent;
311
312typedef struct {
313 int type; /* base + XPDataReadyNotify */
314 unsigned long serial; /* # of last request processed by server */
315 Bool send_event; /* true if from a SendEvent request */
316 Display *display; /* Display the event was read from */
317 XPContext context; /* print context where operation was requested */
318 unsigned long available; /* bytes available for retrieval */
319} XPDataReadyEvent;
320
321
322/**********************************************************
323 *
324 * Function prototypes for library side.
325 */
326
327extern XPContext XpCreateContext (
328 Display *display,
329 char *printer_name
330);
331
332extern void XpSetContext (
333 Display *display,
334 XPContext print_context
335);
336
337extern XPContext XpGetContext (
338 Display *display
339);
340
341extern void XpDestroyContext (
342 Display *display,
343 XPContext print_context
344);
345
346extern Screen *XpGetScreenOfContext (
347 Display *display,
348 XPContext print_context
349);
350
351extern Status XpGetPageDimensions (
352 Display *display,
353 XPContext print_context,
354 unsigned short *width, /* return value */
355 unsigned short *height, /* return value */
356 XRectangle *reproducible_area /* return value */
357);
358
359extern void XpStartJob (
360 Display *display,
361 XPSaveData save_data
362);
363
364extern void XpEndJob (
365 Display *display
366);
367
368extern void XpCancelJob (
369 Display *display,
370 Bool discard
371);
372
373extern void XpStartDoc (
374 Display *display,
375 XPDocumentType type
376);
377
378extern void XpEndDoc (
379 Display *display
380);
381
382extern void XpCancelDoc (
383 Display *display,
384 Bool discard
385);
386
387extern void XpPutDocumentData (
388 Display *display,
389 Drawable drawable,
390 unsigned char *data,
391 int data_len,
392 char *doc_fmt,
393 char *options
394);
395
396extern Status XpGetDocumentData (
397 Display *display,
398 XPContext context,
399 XPSaveProc save_proc,
400 XPFinishProc finish_proc,
401 XPointer client_data
402);
403
404extern void XpStartPage (
405 Display *display,
406 Window window
407);
408
409extern void XpEndPage (
410 Display *display
411);
412
413extern void XpCancelPage (
414 Display *display,
415 Bool discard
416);
417
418extern void XpSelectInput (
419 Display *display,
420 XPContext print_context,
421 unsigned long event_mask
422);
423
424extern unsigned long XpInputSelected (
425 Display *display,
426 XPContext print_context,
427 unsigned long *all_events_mask
428);
429
430extern Bool XpSetImageResolution (
431 Display *display,
432 XPContext print_context,
433 int image_res,
434 int *prev_res
435);
436
437extern int XpGetImageResolution (
438 Display *display,
439 XPContext print_context
440);
441
442extern char *XpGetAttributes (
443 Display *display,
444 XPContext print_context,
445 XPAttributes type
446);
447
448extern void XpSetAttributes (
449 Display *display,
450 XPContext print_context,
451 XPAttributes type,
452 char *pool,
453 XPAttrReplacement replacement_rule
454);
455
456extern char *XpGetOneAttribute (
457 Display *display,
458 XPContext print_context,
459 XPAttributes type,
460 char *attribute_name
461);
462
463extern XPPrinterList XpGetPrinterList (
464 Display *display,
465 char *printer_name,
466 int *list_count /* return value */
467);
468
469extern void XpFreePrinterList (
470 XPPrinterList printer_list
471);
472
473extern void XpRehashPrinterList (
474 Display *display
475);
476
477extern Status XpQueryVersion (
478 Display *display,
479 short *major_version, /* return value */
480 short *minor_version /* return value */
481);
482
483extern Bool XpQueryExtension (
484 Display *display,
485 int *event_base_return, /* return value */
486 int *error_base_return /* return value */
487);
488
489extern Screen **XpQueryScreens (
490 Display *display,
491 int *list_count /* return value */
492);
493
494extern Status XpGetPdmStartParams (
495 Display *print_display,
496 Window print_window,
497 XPContext print_context,
498 Display *video_display,
499 Window video_window,
500 Display **selection_display, /* return value */
501 Atom *selection, /* return value */
502 Atom *type, /* return value */
503 int *format, /* return value */
504 unsigned char **data, /* return value */
505 int *nelements /* return value */
506);
507
508extern Status XpGetAuthParams (
509 Display *print_display,
510 Display *video_display,
511 Display **selection_display, /* return value */
512 Atom *selection, /* return value */
513 Atom *target /* return value */
514);
515
516extern Status XpSendAuth (
517 Display *display,
518 Window window
519);
520
521extern Status XpSendOneTicket (
522 Display *display,
523 Window window,
524 Xauth *ticket,
525 Bool more
526);
527
528extern void XpSetLocaleHinter (
529 XPHinterProc hinter_proc,
530 char *hinter_desc
531);
532
533extern char *XpGetLocaleHinter (
534 XPHinterProc *hinter_proc
535);
536
537extern char *XpGetLocaleNetString(void);
538
539extern char *XpNotifyPdm (
540 Display *print_display,
541 Window print_window,
542 XPContext print_context,
543 Display *video_display,
544 Window video_window,
545 Bool auth_flag
546);
547
548#endif /* _XP_PRINT_SERVER_ */
549
550_XFUNCPROTOEND
551
552#endif /* _XpPrint_H_ */
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette