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
print_screen must belong to a Display connection that
has already been initialized with Xt.
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 applicationShell 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 specified.
is then created as a child of this toplevel shell, using
XtCreatePopupShell, with the name
print_shell_name, and using the
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.
Specifies the argument list from which to get the resources for the XmPrintShell.
Specifies the number of arguments in the argument list.
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);