Logo Search packages:      
Sourcecode: x11proto-print version File versions  Download package

Printstr.h

/* $Xorg: Printstr.h,v 1.3 2000/08/18 04:05:44 coskrey Exp $ */
/******************************************************************************
 ******************************************************************************
 **
 ** File:         Printstr.h
 **
 ** Description: Definitions needed by the server and library, but
 **              not clients.
 **
 **              Print.h for server, library and 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.
 **
 ******************************************************************************
 *****************************************************************************/
/* $XFree86: xc/include/extensions/Printstr.h,v 1.5 2001/08/01 00:44:35 tsi Exp $ */


#ifndef _XpPrintstr_H_
#define _XpPrintstr_H_

/*
 * NEED_EVENTS and NEED_REPLIES are hacks to limit the linker symbol-table
 * size.   When function prototypes are needed from Print.h, this sets up
 * a cascading dependency on Printstr.h and eventually Xproto.h to provide
 * the event and reply struct definitions.
 */
#ifndef NEED_EVENTS
#define NEED_EVENTS
#endif /* NEED_EVENTS */

#define NEED_REPLIES

#include <X11/Xproto.h>
#ifndef _XP_PRINT_SERVER_
#include <X11/Xlib.h>
#endif /* _XP_PRINT_SERVER_ */

/*
 * Pull in other definitions.  Print.h will hide some things if we're
 * doing server side work.
 */
#include <X11/extensions/Print.h>

#include <X11/Xfuncproto.h>

_XFUNCPROTOBEGIN

/******************************************************************************
 *
 * Protocol requests constants and alignment values
 *
 * Note: Xlib macro's expect X_ABC where ABC is the name of the
 * protocol request.
 */
#define X_PrintQueryVersion         0
#define X_PrintGetPrinterList       1
#define X_PrintCreateContext        2
#define X_PrintSetContext           3
#define X_PrintGetContext           4
#define X_PrintDestroyContext       5
#define X_PrintGetContextScreen           6
#define X_PrintStartJob             7
#define X_PrintEndJob               8
#define X_PrintStartDoc             9
#define X_PrintEndDoc               10
#define X_PrintPutDocumentData            11
#define X_PrintGetDocumentData            12
#define X_PrintStartPage            13
#define X_PrintEndPage              14
#define X_PrintSelectInput          15
#define X_PrintInputSelected        16
#define X_PrintGetAttributes        17
#define X_PrintSetAttributes        18
#define X_PrintGetOneAttribute            19
#define X_PrintRehashPrinterList    20
#define X_PrintGetPageDimensions    21
#define X_PrintQueryScreens         22
#define X_PrintSetImageResolution   23
#define X_PrintGetImageResolution   24

/********************************************************************
 *
 * Protocol data types
 */
#define PCONTEXT CARD32
#define WINDOW   CARD32
#define DRAWABLE CARD32
#define BITMASK  CARD32

/******************************************************************************
 *
 * Event wire struct definitions
 *
 * Note: Xlib macro's expect xABC struct names and sz_xABC size
 * constants where ABC is the name of the protocol request.
 */


/*********************************************************************
 *
 * Events.
 *
 * See Print.h for the protocol "type" values.
 */
typedef struct _xPrintPrintEvent {
      BYTE type;        /* XPPrintNotify + extEntry->eventBase */
      BYTE detail;            /* XPStartJobNotify, XPEndJobNotify,
                           XPStartDocNotify, XPEndDocNotify,
                           XPStartPageNotify, XPEndPageNotify */
      CARD16 sequenceNumber B16;
      PCONTEXT printContext B32; /* print context */
      BOOL   cancel;          /* canceled flag */
      CARD8  pad1;            /* rest is unused */
      CARD16 pad2 B16;
      CARD32 pad3 B32;
      CARD32 pad4 B32;
      CARD32 pad5 B32;
      CARD32 pad6 B32;
      CARD32 pad7 B32;
} xPrintPrintEvent;
#define sz_xPrintPrintEvent 32;

typedef struct _xPrintAttributeEvent {
      BYTE   type;            /* XPAttributeNotify + extEntry->eventBase */
      BYTE   detail;          /* XPJobAttr, XPDocAttr, XPPageAttr,
                           XPPrinterAttr, XPSpoolerAttr,
                           XPMediumAttr, XPServerAttr */
      CARD16 sequenceNumber B16;
      PCONTEXT printContext B32; /* print context */
      CARD32 pad1 B32;
      CARD32 pad2 B32;
      CARD32 pad3 B32;
      CARD32 pad4 B32;
      CARD32 pad5 B32;
      CARD32 pad6 B32;
} xPrintAttributeEvent;
#define sz_xPrintAttributeEvent 32;


/*********************************************************************
 *
 * Requests
 */
typedef struct _PrintQueryVersion {
      CARD8 reqType;          /* always PrintReqCode */
      CARD8 printReqType;           /* always X_PrintQueryVersion */
      CARD16      length B16;
} xPrintQueryVersionReq;
#define sz_xPrintQueryVersionReq    4

typedef struct {
      BYTE  type;             /* X_Reply */
      CARD8 unused;                 /* not used */
      CARD16      sequenceNumber B16;
      CARD32      length B32;
      CARD16      majorVersion B16; /* major version of Xp protocol */
      CARD16      minorVersion B16; /* minor version of Xp protocol */
      CARD32      pad1 B32;
      CARD32      pad2 B32;
      CARD32      pad3 B32;
      CARD32      pad4 B32;
      CARD32      pad5 B32;
} xPrintQueryVersionReply;
#define sz_xPrintQueryVersionReply  32


typedef struct _PrintGetPrinterList {
      CARD8 reqType;          /* always PrintReqCode */
      CARD8 printReqType;           /* always X_PrintGetPrinterList */
      CARD16      length B16;
      CARD32      printerNameLen B32;     /* length of printer name */
      CARD32      localeLen B32;          /* length of locale string */

      /* variable portion *****************************************
      STRING8     printerName;             * printer name *
      BYTE  pad(printerNameLen)      * unused *
      STRING8     locale;                  * locale *
      BYTE  pad(localeLen)           * unused *
      ************************************************************/
} xPrintGetPrinterListReq;
#define sz_xPrintGetPrinterListReq  12

typedef struct {
      BYTE  type;             /* X_Reply */
      CARD8 unused;                 /* not used */
      CARD16      sequenceNumber B16;
      CARD32      length B32;
      CARD32      listCount B32;          /* of PRINTER recs below */
      CARD32      pad1 B32;
      CARD32      pad2 B32;
      CARD32      pad3 B32;
      CARD32      pad4 B32;
      CARD32      pad5 B32;

      /* variable portion *****************************************
      CARD32      nameLen B32;            * length of name in bytes *
      STRING8     name;             * name *
      BYTE  pad(nameLen)            * unused *

      CARD32      descLen B32;            * length of desc in bytes *
      STRING8     desc;             * localized description *
      BYTE  pad(descLen)            * unused *
      ************************************************************/
} xPrintGetPrinterListReply;
#define sz_xPrintGetPrinterListReply      32


typedef struct _PrintRehashPrinterList {
      CARD8 reqType;          /* always PrintReqCode */
      CARD8 printReqType;           /* always X_PrintRehashPrinterList */
      CARD16      length B16;
} xPrintRehashPrinterListReq;
#define sz_xPrintRehashPrinterListReq     4


typedef struct _PrintCreateContext {
      CARD8 reqType;          /* always PrintReqCode */
      CARD8 printReqType;           /* always X_PrintInitSetContext */
      CARD16      length B16;
      CARD32      contextID B32;          /* ID for context */
      CARD32      printerNameLen B32;     /* length of printerName in bytes */
      CARD32      localeLen B32;          /* length of locale in bytes */

      /* variable portion *****************************************
      STRING8     printerName        * printer name *
      BYTE  pad(printerNameLen)      * unused *
      STRING8     locale                   * locale *
      BYTE  pad(locale)        * unused *
      ************************************************************/
} xPrintCreateContextReq;           
#define sz_xPrintCreateContextReq   16


typedef struct _PrintSetContext {
      CARD8 reqType;          /* always PrintReqCode */
      CARD8 printReqType;           /* always X_PrintSetContext */
      CARD16      length B16;
      PCONTEXT printContext B32;    /* print context */
} xPrintSetContextReq;        
#define sz_xPrintSetContextReq            8


typedef struct _PrintGetContext {
      CARD8 reqType;          /* always PrintReqCode */
      CARD8 printReqType;           /* always X_PrintGetContext */
      CARD16      length B16;
} xPrintGetContextReq;        
#define sz_xPrintGetContextReq            4

typedef struct {
      BYTE  type;             /* X_Reply */
      CARD8 unused;                 /* not used */
      CARD16      sequenceNumber B16;
      CARD32      length B32;
      PCONTEXT printContext B32;    /* print context */
      CARD32      pad1 B32;
      CARD32      pad2 B32;
      CARD32      pad3 B32;
      CARD32      pad4 B32;
      CARD32      pad5 B32;
} xPrintGetContextReply;
#define sz_xPrintGetContextReply    32


typedef struct _PrintDestroyContext {
      CARD8 reqType;          /* always PrintReqCode */
      CARD8 printReqType;           /* always X_PrintDestroyContext */
      CARD16      length B16;
      PCONTEXT printContext B32;    /* print context */
} xPrintDestroyContextReq;          
#define sz_xPrintDestroyContextReq  8


typedef struct _PrintGetContextScreen {
      CARD8 reqType;          /* always PrintReqCode */
      CARD8 printReqType;           /* always X_PrintGetContextScreen */
      CARD16      length B16;
      PCONTEXT printContext B32;    /* print context */
} xPrintGetContextScreenReq;        
#define sz_xPrintGetContextScreenReq      8

typedef struct {
      BYTE  type;             /* X_Reply */
      CARD8 unused;                 /* not used */
      CARD16      sequenceNumber B16;
      CARD32      length B32;
      WINDOW  rootWindow;           /* screenPtr represented as rootWin */
      CARD32      pad1 B32;
      CARD32      pad2 B32;
      CARD32      pad3 B32;
      CARD32      pad4 B32;
      CARD32      pad5 B32;
} xPrintGetContextScreenReply;
#define sz_xPrintGetContextScreenReply    32


typedef struct _PrintStartJob {
      CARD8 reqType;          /* always PrintReqCode */
      CARD8 printReqType;           /* always X_PrintStartJob */
      CARD16      length B16;
      CARD8 saveData;         /* save data boolean */
      CARD8 pad1;
      CARD16      pad2 B16;
} xPrintStartJobReq;          
#define sz_xPrintStartJobReq        8

typedef struct _PrintEndJob {
      CARD8 reqType;          /* always PrintReqCode */
      CARD8 printReqType;           /* always X_PrintEndJob */
      CARD16      length B16;
      BOOL  cancel;                 /* cancel boolean */
      CARD8 pad1;
      CARD16      pad2 B16;
} xPrintEndJobReq;
#define sz_xPrintEndJobReq          8


typedef struct _PrintStartDoc {
      CARD8 reqType;          /* always PrintReqCode */
      CARD8 printReqType;           /* always X_PrintStartDoc */
      CARD16      length B16;
      CARD8 type;             /* type for document */
      CARD8 pad1;
      CARD16      pad2 B16;
} xPrintStartDocReq;          
#define sz_xPrintStartDocReq        8

typedef struct _PrintEndDoc {
      CARD8 reqType;          /* always PrintReqCode */
      CARD8 printReqType;           /* always X_PrintEndDoc */
      CARD16      length B16;
      BOOL  cancel;                 /* cancel boolean */
      CARD8 pad1;
      CARD16      pad2 B16;
} xPrintEndDocReq;
#define sz_xPrintEndDocReq          8


typedef struct _PrintPutDocumentData {
      CARD8 reqType;          /* always PrintReqCode */
      CARD8 printReqType;           /* always X_PrintPutDocumentData */
      CARD16      length B16;
      DRAWABLE drawable B32;        /* target drawable */
      CARD32      len_data B32;           /* big len in bytes */
      CARD16      len_fmt;          /* len in bytes */
      CARD16      len_options;            /* len in bytes */

      /* variable portion *****************************************
      LISTofBYTE  data;        * data *
      BYTE        pad(len_data)      * unused *
      STRING8           doc_fmt;     * ISO compliant desc of data type *
      BYTE        pad(len_fmt)       * unused *
      STRING8           options;     * additional device-dependent desc *
      BYTE        pad(len_options) * unused *
      ************************************************************/
} xPrintPutDocumentDataReq;
#define sz_xPrintPutDocumentDataReq 16


typedef struct _PrintGetDocumentData {
      CARD8 reqType;          /* always PrintReqCode */
      CARD8 printReqType;           /* always X_PrintGetDocumentData */
      CARD16      length B16;
      PCONTEXT printContext B32;    /* print context */
      CARD32      maxBufferSize B32;      /* maximum buffer size requested */
} xPrintGetDocumentDataReq;         
#define sz_xPrintGetDocumentDataReq 12

typedef struct {
      BYTE  type;             /* X_Reply */
      CARD8 unused;                 /* not used */
      CARD16      sequenceNumber B16;
      CARD32      length B32;
      CARD32      statusCode B32;         /* status code for reply */
      CARD32      finishedFlag B32; /* is this the last reply */
      CARD32      dataLen B32;            /* data length */
      CARD32      pad1 B32;
      CARD32      pad2 B32;
      CARD32      pad3 B32;

      /* variable portion *****************************************
      LISTofBYTE  data;        * data *
      BYTE        pad(count)   * unused *
      ************************************************************/
} xPrintGetDocumentDataReply;
#define sz_xPrintGetDocumentDataReply     32


typedef struct _PrintStartPage {
      CARD8 reqType;          /* always PrintReqCode */
      CARD8 printReqType;           /* always X_PrintStartPage */
      CARD16      length B16;
      WINDOW      window B32;       /* window */
} xPrintStartPageReq;         
#define sz_xPrintStartPageReq       8

typedef struct _PrintEndPage {
      CARD8 reqType;          /* always PrintReqCode */
      CARD8 printReqType;           /* always X_PrintEndPage */
      CARD16      length B16;
      BOOL  cancel;                 /* cancel boolean */
      CARD8 pad1;
      CARD16      pad2 B16;
} xPrintEndPageReq;
#define sz_xPrintEndPageReq         8


typedef struct _PrintSelectInput {
        CARD8   reqType;            /* always PrintReqCode */
      CARD8   printReqType;         /* always X_PrintSelectInput */
      CARD16      length B16;
      PCONTEXT printContext B32;    /* print context */
      BITMASK     eventMask B32;
} xPrintSelectInputReq;
#define sz_xPrintSelectInputReq           12


typedef struct _PrintInputSelected {
        CARD8   reqType;            /* always PrintReqCode */
      CARD8   printReqType;         /* always X_PrintInputSelected */
      CARD16      length B16;
      PCONTEXT printContext B32;    /* print context */
} xPrintInputSelectedReq;
#define sz_xPrintInputSelectedReq   8

typedef struct {
      BYTE  type;             /* X_Reply */
      CARD8 unused;                 /* not used */
      CARD16      sequenceNumber B16;
      CARD32      length B32;
      BITMASK     eventMask B32;          /* your event mask */
      BITMASK     allEventsMask B32;      /* all event mask */
      CARD32      pad1 B32;
      CARD32      pad2 B32;
      CARD32      pad3 B32;
      CARD32      pad4 B32;
} xPrintInputSelectedReply;
#define sz_xPrintInputSelectedReply 32

typedef struct _PrintGetAttributes {
        CARD8   reqType;            /* always PrintReqCode */
      CARD8   printReqType;         /* always X_PrintGetAttributes */
      CARD16      length B16;
      PCONTEXT printContext B32;    /* print context */
        CARD8   type;               /* type */
        CARD8   pad1;               /* unused */
        CARD16  pad2 B16;           /* unused */
} xPrintGetAttributesReq;
#define sz_xPrintGetAttributesReq   12

typedef struct {
      BYTE  type;             /* X_Reply */
      CARD8 unused;                 /* not used */
      CARD16      sequenceNumber B16;
      CARD32      length B32;
      CARD32      stringLen B32;          /* length of xrm db string */
      CARD32      pad1 B32;
      CARD32      pad2 B32;
      CARD32      pad3 B32;
      CARD32      pad4 B32;
      CARD32      pad5 B32;

        /* variable portion *****************************************
      STRING8     string;                  * xrm db as a string *
      BYTE  pad(stringLen)           * unused *
        ************************************************************/
} xPrintGetAttributesReply;
#define sz_xPrintGetAttributesReply 32


typedef struct _PrintSetAttributes {
        CARD8   reqType;            /* always PrintReqCode */
      CARD8   printReqType;         /* always X_PrintSetAttributes */
      CARD16      length B16;
      PCONTEXT printContext B32;    /* print context */
      CARD32      stringLen B32;          /* length of xrm db string */
        CARD8   type;                   /* type */
      CARD8   rule;                 /* replacement rule */
      CARD16  pad1 B16;       /* unused */

        /* variable portion *****************************************
      STRING8     string;                  * xrm db as a string *
      BYTE  pad(stringLen)           * unused *
        ************************************************************/
} xPrintSetAttributesReq;
#define sz_xPrintSetAttributesReq   16


typedef struct _PrintGetOneAttribute {
        CARD8   reqType;            /* always PrintReqCode */
      CARD8   printReqType;         /* always X_PrintGetOneAttribute */
      CARD16      length B16;
      PCONTEXT printContext B32;    /* print context */
      CARD32      nameLen;          /* length of name string */
        CARD8   type;               /* type */
        CARD8   pad1;               /* unused */
        CARD16  pad2 B16;           /* unused */

        /* variable portion *****************************************
      STRING8     name;              * name as a string *
      BYTE  pad(name)          * unused *
        ************************************************************/
} xPrintGetOneAttributeReq;
#define sz_xPrintGetOneAttributeReq 16

typedef struct {
      BYTE  type;             /* X_Reply */
      CARD8 unused;                 /* not used */
      CARD16      sequenceNumber B16;
      CARD32      length B32;
      CARD32      valueLen B32;           /* length of value string */
      CARD32      pad1 B32;
      CARD32      pad2 B32;
      CARD32      pad3 B32;
      CARD32      pad4 B32;
      CARD32      pad5 B32;

        /* variable portion *****************************************
      STRING8     value;                   * value as a string *
      BYTE  pad(value)         * unused *
        ************************************************************/
} xPrintGetOneAttributeReply;
#define sz_xPrintGetOneAttributeReply     32


typedef struct _PrintGetPageDimensions {
      CARD8 reqType;          /* always PrintReqCode */
      CARD8 printReqType;           /* always X_PrintGetPageDimensions */
      CARD16      length B16;
      PCONTEXT printContext B32;    /* print context */
} xPrintGetPageDimensionsReq;       
#define sz_xPrintGetPageDimensionsReq     8

typedef struct {
      BYTE  type;             /* X_Reply */
      CARD8 unused;                 /* not used */
      CARD16      sequenceNumber B16;
      CARD32      length B32;
      CARD16      width;                  /* total pixel width */
      CARD16      height;                 /* total pixel height */
      CARD16      rx;               /* reproducable x pixel offset */
      CARD16      ry;               /* reproducable y pixel offset */
      CARD16      rwidth;                 /* reproducable x pixel width */
      CARD16      rheight;          /* reproducable y pixel width */
      CARD32      pad1 B32;
      CARD32      pad2 B32;
      CARD32      pad3 B32;
} xPrintGetPageDimensionsReply;
#define sz_xPrintGetPageDimensionsReply   32


typedef struct _PrintQueryScreens {
      CARD8 reqType;          /* always PrintReqCode */
      CARD8 printReqType;           /* always X_PrintQueryScreens */
      CARD16      length B16;
} xPrintQueryScreensReq;            
#define sz_xPrintQueryScreensReq    4

typedef struct {
      BYTE  type;             /* X_Reply */
      CARD8 unused;                 /* not used */
      CARD16      sequenceNumber B16;
      CARD32      length B32;
      CARD32      listCount;        /* number of screens following */
      CARD32      pad1 B32;
      CARD32      pad2 B32;
      CARD32      pad3 B32;
      CARD32      pad4 B32;
      CARD32      pad5 B32;

        /* variable portion *****************************************
      WINDOW      rootWindow;        * root window of screen *
        ************************************************************/
} xPrintQueryScreensReply;
#define sz_xPrintQueryScreensReply  32

typedef struct _PrintSetImageResolution {
      CARD8 reqType;          /* always PrintReqCode */
      CARD8 printReqType;           /* always X_PrintSetImageResolution */
      CARD16      length B16;
      PCONTEXT printContext B32;    /* print context */
      CARD16 imageRes B16;          /* image resolution */
      CARD16 pad1 B16;
} xPrintSetImageResolutionReq;
#define sz_xPrintSetImageResolutionReq    12

typedef struct {
      BYTE  type;             /* X_Reply */
      BOOL  status;                 /* accepted or not */
      CARD16      sequenceNumber B16;
      CARD32      length B32;
      CARD16      prevRes B16;            /* previous resolution */
      CARD16      pad1 B32;
      CARD32      pad2 B32;
      CARD32      pad3 B32;
      CARD32      pad4 B32;
      CARD32      pad5 B32;
      CARD32      pad6 B32;
} xPrintSetImageResolutionReply;
#define sz_xPrintSetImageResolutionReply 32

typedef struct _PrintGetImageResolution {
      CARD8 reqType;          /* always PrintReqCode */
      CARD8 printReqType;           /* always X_PrintGetImageResolution */
      CARD16      length B16;
      PCONTEXT printContext B32;    /* print context */
} xPrintGetImageResolutionReq;
#define sz_xPrintGetImageResolutionReq    8

typedef struct {
      BYTE  type;             /* X_Reply */
      CARD8 unused;
      CARD16      sequenceNumber B16;
      CARD32      length B32;
      CARD16      imageRes B16;           /* image resolution */
      CARD16      pad1 B32;
      CARD32      pad2 B32;
      CARD32      pad3 B32;
      CARD32      pad4 B32;
      CARD32      pad5 B32;
      CARD32      pad6 B32;
} xPrintGetImageResolutionReply;
#define sz_xPrintGetImageResolutionReply 32

#ifndef _XP_PRINT_SERVER_
/***********************************************************************
 *
 * Library-only definitions.
 */
extern XPHinterProc  _xp_hinter_proc;
extern char         *_xp_hinter_desc;
extern int           _xp_hinter_init;

#else /* _XP_PRINT_SERVER_ */

/***********************************************************************
 *
 * Server-only definitions shared between the extension and DDX layers.
 *
 */
 
/*
 * Internal return code used to indicate that the requesting
 * client has been suspended.
 */
#define Suspended 84

struct _XpContext;

extern void XpRegisterPrinterScreen(
    ScreenPtr pScreen,
    int (*CreateContext)(struct _XpContext *));

typedef struct _xpprintFuncs {
    int (*StartJob)(
      struct _XpContext *     /* pContext */,
      Bool              /* sendClientData */,
      ClientPtr         /* client */);
    int (*EndJob)(struct _XpContext *, int);
    int (*StartDoc)(
      struct _XpContext *     /* pContext */,
      XPDocumentType          /* type */);
    int (*EndDoc)(struct _XpContext *, int);
    int (*StartPage)(
      struct _XpContext *     /* pContext */,
      WindowPtr         /* pWin */);
    int (*EndPage)(
      struct _XpContext *     /* pContext */,
      WindowPtr         /* pWin */);
    int (*PutDocumentData)(
      struct _XpContext *     /* pContext */,
      DrawablePtr       /* pDraw */,
      char *                  /* pData */,
      int               /* len_data */,
      char *                  /* pDoc_fmt */,
      int               /* len_fmt */,
      char *                  /* pOptions */,
      int               /* len_options */,
      ClientPtr         /* client */);
    int (*GetDocumentData)(
      struct _XpContext *     /* pContext */,
      ClientPtr         /* client */,
      int               /* maxBufferSize */);
    int (*DestroyContext)(
      struct _XpContext *);   /* pContext */
    char *(*GetAttributes)(
      struct _XpContext *,
      XPAttributes            /* pool */);
    char *(*GetOneAttribute)(
      struct _XpContext *     /* pContext */,
      XPAttributes            /* pool */,
      char *                  /* attrs */);
    int (*SetAttributes)(
      struct _XpContext *     /* pContext */,
      XPAttributes            /* pool */,
      char *                  /* attrs */);
    int (*AugmentAttributes)(
      struct _XpContext *     /* pContext */,
      XPAttributes            /* pool */,
      char *                  /* attrs */);
    int (*GetMediumDimensions)(
      struct _XpContext *     /* pPrintContext */,
      CARD16 *          /* pWidth */,
      CARD16 *          /* pHeight */);
    int (*GetReproducibleArea)(
      struct _XpContext *     /* pPrintContext */,
      xRectangle *            /* pRect */);
    int (*SetImageResolution)(
      struct _XpContext *     /* pPrintContext */,
      int               /* imageRes */,
      Bool *                  /* pStatus */);
} XpDriverFuncs, *XpDriverFuncsPtr;

/*
 * Each print context is represented by one of the following structs
 * associated with a resource ID of type RTcontext .  A pointer to
 * the context is placed in the Xp extension's devPrivates
 * element in each client * which establishes a context via
 * either initContext or setContext.
 * The context pointer is also placed in the struct indicated by the
 * RTpage resource associated with each StartPage'd window.
 */
typedef struct _XpContext {
        XID contextID;
        char *printerName;
        int screenNum;          /* screen containing the printer */
        struct _XpClient *clientHead; /* list of clients */
        CARD32 state;
        VisualID pageWin;
        DevUnion *devPrivates;
        XpDriverFuncs funcs;
      ClientPtr clientSlept;
      int imageRes;
} XpContextRec, *XpContextPtr;

#include <X11/fonts/fontstruct.h>   /* FontResolutionPtr */

extern Bool XpAllocateContextPrivate(int, unsigned);
extern FontResolutionPtr XpGetClientResolutions(ClientPtr, int *);
extern XpContextPtr XpContextOfClient(ClientPtr);
extern XpContextPtr XpGetPrintContext(ClientPtr);
extern int XpAllocateContextPrivateIndex(void);
extern int XpRehashPrinterList(void);
extern void XpSetFontResFunc(ClientPtr);
extern void XpUnsetFontResFunc(ClientPtr);
extern void XpRegisterInitFunc(ScreenPtr, char *, int (*)(struct _XpContext *));

#endif /* _XP_PRINT_SERVER_ */

_XFUNCPROTOEND

#endif /* _XpPrintstr_H_ */

Generated by  Doxygen 1.6.0   Back to index