Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

xmprinttofile(3) [centos man page]

XmPrintToFile(library call)											       XmPrintToFile(library call)

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, XPFinishProcfinish_proc, XtPointerclient_data); DESCRIPTION
XmPrintToFile hides the details of X display connection and XpGetDocumentData to 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 XpGet- DocumentData function 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. XmPrintToFile first tries to open the given filename for writing and returns False if 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 finish_proc at that point, passing it the argument received from the Xp layer (status == XPGetDocFinished means 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
Returns False if 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) XmPrintToFile(library call)

Check Out this Related Man Page

XmPrintPopupPDM(library call)											     XmPrintPopupPDM(library call)

NAME
XmPrintPopupPDM -- Send a notification for the PDM to be popped up SYNOPSIS
#include <Xm/Print.h> XtEnum XmPrintPopupPDM( Widgetprint_shell, Widgetvideo_transient_for); DESCRIPTION
A convenience function that sends a notification to start a Print Dialog Manager on behalf of the application, XmPrintPopupPDM hides the details of the X selection mechanism used to notify the PDM that a new dialog must be popped up for this application. XmPrintPopupPDM sends a selection request to either the print display of the print shell, or the video display of the transient_for video widget (depending on the environment variable XPDMDISPLAY, which can only takes the value "print" or "video"), asking for the PDM windows to be popped up on behalf of the app. Return right away with status of XmPDM_NOTIFY_FAIL (e.g. if the function couldn't malloc memory for the selection value, or if XPDMDISPLAY is not "print" or "video") or with XmPDM_NOTIFY_SUCCESS , which only means a "message" was sent out to the PDM specified by XPDMSELECTION , not that it's already up on the screen yet. In order to know if the PDM is up, or not running, the application must register a XmNpdmNotificationCallback with the Print Shell. XmPrintPopupPDM puts up an InputOnly window on top of the dialog, so that the end user doesn't use the print setup dialog while the PDM is trying to come up. This window is automatically removed when the shell is about to call the callback for the first time. print_shell The Print Shell used for this print job and context. video_transient_for The video widget dealing with application print setup. RETURN VALUE
Returns XmPDM_NOTIFY_SUCCESS if the function was able to send the notification out to the PDM process, XmPDM_NOTIFY_FAIL otherwise. ERRORS
/WARNINGS Not applicable. EXAMPLES
Example of callback from a Print set up dialog box "Setup..." button: PrintSetupCallback(print_dialog...) /*-------------*/ { if (XmPrintPopupPDM (pshell, XtParent(print_dialog)) != XmPDM_NOTIFY_SUCCESS) { /* some error dialog */ } } Example of XmNpdmNotificationCallback from a Print Shell: pdmNotifyCB(print_shell...) { XmPrintShellCallBackStruct * pr_cb = ... switch (pr_cb->reason) { case XmCR_PDM_NONE: /* no PDM available */ PostErrorDialog(...); break; case XmCR_PDM_VXAUTH: /* PDM is not authorized ... */ PostErrorDialog(...); break; case XmCR_PDM_UP: the PDM is up and running /* everything is fine */ break; default: /* other cases */ } } SEE ALSO
XmPrintSetup(3), XmPrintShell(3), XmRedisplayWidget(3), XmPrintToFile(3) XmPrintPopupPDM(library call)
Man Page