XmPrintSetup(library call) XmPrintSetup(library call)
XmPrintSetup -- setup and create a Print Shell widget
A function that does the appropriate setting and creates a realized XmPrintShell that it
returns to the caller. This function hides the details of the Xt to set up a valid print
shell heirarchy for the application. It is also meant to encourage consistency in the way
applications root their print widget hierarchy.
print_screen must belong to a Display connection that has already been initialized with
The video_widget is used to get at the application context, application name and class,
and argc/argv stored on the applicationShell that roots this widget. If no application-
Shell is found, NULL argv/argc are used.
XmPrintSetup then creates an unrealized ApplicationShell with the same name and class as
the one given by the video display, on the print display and on the print screen speci-
An XmPrintShell is then created as a child of this toplevel shell, using XtCreatePopup-
Shell, with the name print_shell_name, and using the args provided. It then realizes and
maps the print shell, using XtPopup with XtGrabNone.
This way, application resource files and users can specify print specific attributes using
the following syntax (if print_shell_name is "Print"):
A video widget to fetch app video data from.
A print screen on the print display - specifies the screen onto which the new
shell is created.
Specifies the name of the XmPrintShell created on the X Print server.
args Specifies the argument list from which to get the resources for the
num_args Specifies the number of arguments in the argument list.
The id the XmPrintShell widget created on the X Print Server connection, or NULL if an
error has occured.
From the OK callback and the SetUp callback of the primary print dialog widget:
printOKCB(Widget, XtPointer call_data, XtPointer client_data)
AppPrint *p = (AppPrint *) client_data;
DtPrintSetupCallbackStruct *pbs =
(XmPrintCallbackStruct *) call_data;
/* connect if not already done.
the print dialog callback always provides valid
printer name, print display and screen
already initialized: XpInitContext called */
p->print_shell = XmPrintSetup (widget, pbs->print_screen,
"Print", NULL, 0);
XmPrintShell(3), XmRedisplayWidget(3), XmPrintToFile(3), XmPrintPopupPDM(3)