Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ XmPrintToFile(3X) — IRIX 6.5.3f

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

XmPrintSetup(3)

XmPrintShell(3)

XmRedisplayWidget(3)

XmPrintPopupPDM(3)



     XmPrintToFile(3X)         UNIX System V         XmPrintToFile(3X)



     NAME
          XmPrintToFile - Retrieves and saves data that would normally
          be printed by the X Print Server.

     SYNOPSIS
          #include <Xm/Print.h>
          XtEnumXmPrintToFile(
          Display*dpy,
          Stringfilename,
          XPFinishProcfinishproc,
          XtPointerclientdata);

     VERSION
          This page documents Motif 2.1.

     DESCRIPTION
          XmPrintToFilehides the details of X display connection and
          XpGetDocumentDatato the Motif application programmer.

          This function is a convenience routine that hides the
          details of the X and Xp internals to the application
          programmer by calling the XpGetDocumentDatafunction with
          appropriate save and finish callbacks.

          This is used in the context of X Printing when the user has
          specified the "print-to-file" option from a regular Print
          Setup Dialog box.

          XmPrintToFilefirst tries to open the given filename for
          writing and returns Falseif it can't.  Else, it uses
          XpGetDocumentData, giving it a save proc that writes the
          data received in the file and a finish proc that closes the
          file or removes it on an unsuccessful termination.  It calls
          finishprocat that point, passing it the argument received
          from the Xp layer (status == XPGetDocFinishedmeans the file
          is valid and was closed, otherwise the file was removed).

          XmPrintToFile is non-blocking; if it returns successfully,
          it just means the file was opened successfully, not that all
          the data was received.

          dpy       Print display connection.

          filename  Name of the file to put the print data in.

          finish_proc
                    Called when all the data has been received.

          client_data
                    Passed with the finish_proc.

     RETURN VALUE



     Page 1                                          (printed 1/22/99)





     XmPrintToFile(3X)         UNIX System V         XmPrintToFile(3X)



          Returns Falseif the filename could not be created or opened
          for writing, True otherwise.

     ERRORS/WARNINGS
          Not applicable

     EXAMPLES
          A typical OK callback from a DtPrintSetupBox:

          PrintOKCallback(widget...)
          /*-------------*/
          {   int save_data = XPSpool;

              pshell = XmPrintSetup (widget, pbs->print_screen,
                                             "Print", NULL, 0);

              XtAddCallback(pshell, XmNstartJobCallback, startJobCB, data);

              if (pbs->destination == DtPRINT_TO_FILE)
                           save_data = XPGetData;

              /* start job must precede XpGetDocumentData in XmPrintToFile */
              XpStartJob(XtDisplay(pshell), save_data);
              XFlush(XtDisplay(pshell));  /* maintain the sequence
                                           between startjob and getdocument */

              /* setup print to file */
              if (pbs->destination == DtPRINT_TO_FILE)
                  XmPrintToFile(XtDisplay(pshell),
                                           pbs->dest_info, FinishPrintToFile, NULL);
              }

          }

          static void
          startJobCB(Widget, XtPointer call_data, XtPointer client_data)
          {
            print(p);   /* rendering happens here */

            XpEndJob(XtDisplay(p->print_shell));

            /* clean up */
            XtDestroyWidget(p->print_shell);
                    XtCloseDisplay(XtDisplay(p->print_shell));
          }

     SEE ALSO
          XmPrintSetup(3), XmPrintShell(3), XmRedisplayWidget(3),
          XmPrintPopupPDM(3)






     Page 2                                          (printed 1/22/99)



Typewritten Software • bear@typewritten.org • Edmonds, WA 98026