Provided by: libxp-dev_1.0.2-1ubuntu1_amd64 bug

NAME

       XpCreateContext - Creates and initializes a new print context.

SYNOPSIS

             cc [ flag... ] file... -lXp [ library... ]
             #include <X11/extensions/Print.h>

       XPContext XpCreateContext ( display, printer_name )
             Display *display;
             char *printer_name;

ARGUMENTS

       display
              Specifies a pointer to the Display structure; returned from XOpenDisplay.

       printer_name
              The name of a printer on display. String encoded as COMPOUND_TEXT.

DESCRIPTION

       XpCreateContext  creates  a new print context that is initialized with the default printer attributes and
       other information available for printer_name on display. A print  context  maintains  the  printer  name,
       print  attributes,  font  capabilities, print (rendering) state and results, and is the object upon which
       the Xp calls act.

       If the library fails to generate a new print context-id, a value of None is returned, otherwise  a  print
       context-id  is  always returned. If printer_name is invalid, a BadMatch is generated later by the X Print
       Server.

       A call to XpGetPrinterList will return a valid list of values for printer_name.  All printer name  values
       in  the  X  Print  Service  are  encoded  as  COMPOUND_TEXT (of which the ISO-8859-1 code-set is a proper
       subset).

       As soon as a print context is created, the print attributes in it can be accessed and modified by calling
       XpGetAttributes  and  XpSetAttributes,  and  the  event  selections  in  it  can  be  modified by calling
       XpSelectInput and XpInputSelected. Other Xp calls that explicitly take a print context-id as a  parameter
       will operate directly on that print context. All Xp and X calls without a print context-id parameter (for
       example, all rendering oriented calls like XpStartJob and XDrawLine) require that a print context be  set
       on  the  display  connection (see XpSetContext). Failure to set a print context prior to calling a print-
       context-dependent call will result in the generation of an XPBadContext error.

       The XPContext returned by XpCreateContext is an XID, and can be used to set the print context on  display
       connections  by  calling  XpSetContext.  The  XPContext  id  can  be shared between processes and display
       connections. It is the responsibility of the clients sharing a print context to coordinate their usage of
       the context; for example they must ensure that in-use print contexts are not prematurely destroyed.

       The  context_id  remains  valid for all clients until 1) the client creating the print context closes its
       display connection, or 2) any client calls XpDestroyContext. The context_id can be kept valid  after  the
       creating   client's   display   connection   closes  if  XSetCloseDownMode  is  called  on  display  with
       RetainPermanent or RetainTemporary.

       After creating a print context, and possibly modifying the XPDocAttr attribute  document-format  using  a
       value from the list of available formats shown in the XPPrinterAttr attribute document-formats-supported,
       the application must query the X Print Server via XpGetScreenOfContext  for  the  screen  that  has  been
       associated  with  the  print context, and then create all server resources that will be used in the print
       job on that screen. Failure to do so will result in undefined behavior.

       When XpCreateContext is called, the client's locale (see XpSetLocaleHinter) is included in the request as
       a "hint" to the X Print Server.  If supported by the implementation, the X Print Server will use the hint
       to initialize the attribute pools with any localized attribute values (for example,  the  human  readable
       XPPrinterAttr  attribute  "descriptor" may be available in several different languages, and the hint will
       be used to select one). If the X Print Server cannot understand the hint, the X Print  Server  chooses  a
       default value.

       This  function  can generate a BadMatch error if the specified printer_name does not exist on display, or
       if the print server could not interpret the code set specified in printer_name.

DIAGNOSTICS

       BadMatch       The value specified for doc_fmt is not valid for the current document type  or  the  value
                      specified for drawable is not valid for the print context and print screen.

SEE ALSO

       XpDestroyContext(3Xp),     XpGetAttributes(3Xp),     XpGetPrinterList(3Xp),    XpGetScreenOfContext(3Xp),
       XpInputSelected(3Xp),        XpSelectInput(3Xp),         XpSetAttributes(3Xp),         XpSetContext(3Xp),
       XpSetLocaleHinter(3Xp), XpStartJob(3Xp)