PuiPrintBox(3X) Impressario PuiPrintBox(3X)NAMEPuiPrintBox - print spooler interface widget
SYNOPSIS
#include <Sgm/PrintBox.h>
Linkage:
... -lprintui -lspool -lXm -lXt -lX11 -lgen ...
Instantiation Methods:
widget = PuiCreatePrintBox(parent, name, args, nargs);
widget = PuiCreatePrintDialog(parent, name, args, nargs);
widget = XtCreateWidget(name, puiPrintBoxWidgetClass,
parent, args, nargs);
DESCRIPTION
The PuiPrintBox widget provides a graphical user interface to the lp
printing command of the AT&T System V print spooling system. Using the
PrintBox widget an application may submit a file or buffer for printing.
In addition, the printer and options for the print job may be selected.
The PrintBox widget contains six areas:
- Filename entry area
- Printer selection area
- Job option area
- Action area
- Work area
These areas are described below.
Filename entry area
If the print job is a file, the filename area provides a text
field to enter the name(s) of the file(s) to be printed.
Multiple files may be specified with each filename being
separated by whitespace. Bourne shell filename meta characters
may be specified but job control and other meta characters
should not be used and may be disallowed by the text field.
This area will be displayed only if the PuiNjobType resource
(described below) is set to PuiPRINTJOB_FILENAME and the
PuiNshowFilename resource is True. When present, the filename
entry area is located in the upper left portion of the widget.
Printer selection area
The left portion of the PrintBox widget contains the printer
selection area. This area displays a list of the printers
available to the print spooling system. Any printer from the
list may be selected for print job submittal. The
PuiNdefaultPrinterFont resource can be used to differentiate
the default printer from the other printers on the list.
Page 1
PuiPrintBox(3X) Impressario PuiPrintBox(3X)
Job option area
This area on the right side of the widget provides controls for
various print job options. Job parameters such as the number of
copies and banner page title may be specified in this area.
There is also a text field provided for specifying options
unique to the printer selected. The job option area will not be
displayed if the PuiNshowOptions resource (described below) is
set to False. Each option in the job option area can be
selectively displayed by setting the appropriate resource
(described below) to False.
Action area
The action area is located at the bottom of the widget and
contains the PrintBox action push buttons. There are five
action area push buttons, three of which are displayed by
default. The following buttons are managed (visible) by
default:
Print Submits the specified file or buffer for printing by
the spooling system. First the functions registered
on the PuiNprintCallback list are invoked. Next, if
the PuiNprintingPolicy resource is set to
PuiWIDGET_PRINTING (the default), the PrintBox
widget's internal function is called to submit the
print job to the spooling system for printing. If
PuiNprintingPolicy is set to PuiAPPLICATION_PRINTING,
the widget's internal job submission function is not
called, and it becomes the application's
responsibility to submit the job for printing. If
the print job was successfully submitted, the
functions on the PuiNjobInfoCallback list will be
invoked. If an error has occurred submitting the job,
the functions on the PuiNerrorCallback will be
invoked. Finally, if the PrintBox widget's
XmNautoUnmanage resource is set to True and the
widget is a child of a DialogShell, the PrintBox will
be automatically unmanaged (popped down) after the
callback and print functions have been called.
More Options...
Many printers provide specialized, vendor-specific
options. The job option area provides a text type-in
field for specifying these printer-specific options.
However, some printers provide a graphical dialog for
specifying the printer-specific options. If such a
dialog is available for the selected printer, the
More Options... button will have a normal appearance.
If no dialog is available, the button will appear
grayed out.
When the More Options... button is pressed the
graphical options dialog for the selected printer
Page 2
PuiPrintBox(3X) Impressario PuiPrintBox(3X)
will be displayed. At the same time, the printer-
specific options type-in field in the job option area
will be grayed out and not editable. When the desired
options have been selected on the option dialog, the
OK button on the dialog should be pressed. This will
remove the dialog from the screen and will place text
in the printer-specific options field in the job
option area. This text represents the options
selected on the graphical option dialog. An Apply
button is also available for specifying options
without dismissing the dialog. Note that the type in
field in the job option area becomes ungrayed and
editable when the option dialog is no longer
displayed.
Save Options...
Brings up a dialog that allows spooler and printer-
specific option settings to be saved to disk. The
spooler option settings are written to the file
~/.glprc. Spooler options consist of all settings in
the job option area except the printer-specific
options type-in values and the number of copies. If
printer-specific options have been modified for any
listed printer, those printers are listed on the
dialog. These options are stored on a per printer
basis in files named /var/spool/lp/settings/<printer
name>/<username>. Note that the number of copies is
not saved to either file since this option is more
appropriately specified on the command line or via
the job option are control. Printer-specific options
cannot be saved for printer classes. If the PrintBox
widget is created by either the user root or lp
(based on the uid at the time the widget is
instantiated), the Save dialog permits the saving of
printer-specific options for all users of the
selected printer.
Cancel Calls the functions registered on the
PuiNcancelCallback list. This button normally is used
to pop down the PrintBox widget when it is used as a
pop up dialog. If the PrintBox widget's
XmNautoUnmanage resource is set to True and the
widget is a child of a DialogShell, the PrintBox will
be automatically unmanaged (popped down) after the
callback functions have been invoked.
Help Calls the functions registered on the
PuiNhelpCallback list.
In addition to these five buttons, there are four user-
definable action area buttons that are unmanaged (invisible) by
default. These buttons, called User1, User2, User3 and User4,
Page 3
PuiPrintBox(3X) Impressario PuiPrintBox(3X)
are positioned between the Print and Cancel buttons. These
buttons may be managed using the XtManageChild function,
specifying the widget ID for the desired button. The widget ID
can be obtained from the PuiPrintBoxGetChild function. When
activated, the User buttons invoke the functions registered on
their respective callback lists, PuiNuser1Callback
PuiNuser2Callback, PuiNuser3Callback and PuiNuser4Callback.
Work area The PrintBox widget allows an application to specify one child
widget. This widget would typically be a Manager class widget
that would contain application-specific printing controls such
as page number range. When present, the work area is placed at
the top of the PrintBox and spans the entire width of the
widget.
Settings Files
When the PrintBox widget is created, it will read the file .glprc if it
exists in the user's home directory. This file is expected to contain a
single line of System V spooler option switches. The switches are the
same as those available on the lp command line except that the -d, -o and
-n options must not be specified.
On creation the PrintBox widget also looks for files named
/var/spool/lp/settings/<printer name>/<username> for each printer on the
available printer list. For each printer, if the <username> file is not
found a file name defaultSettings will be read, if it exists. The file
is expected to contain a single line of printer-specific options. The
options are listed as they would be typed into the printer-specific
options type-in field in the job options area. Any additional lines in
the file will be ignored. Any printer-specific options specified on the
command line will be appended to the options found in the settings file
for the initially selected printer. Note that printer-specific options
are maintained on a per printer, per user basis. When a new printer is
selected from the list of available printers, any options specified for
that printer will be displayed in the job option area.
Spooler and printer-specific options can be saved using the Save
Options... button in the action area.
The PrintBox widget reads the spooler and printer-specific options files
when it is instantiated (e.g. when XtCreateWidget is called). The
settings from these options files override any resource values for the
corresponding options. Therefore, spooler and printer-specific option
resources should not be set at the creation of the PrintBox widget.
Spooler and printer-specific options resources should be set after widget
creation using the XtSetValues function.
Classes
The PrintBox widget inherits behavior and resources from the Core,
Composite, Constraint, XmManager, and XmBulletinBoard widget classes.
Page 4
PuiPrintBox(3X) Impressario PuiPrintBox(3X)
The class pointer is puiPrintBoxWidgetClass and the class name is
PuiPrintBox.
New Resources
The following table defines a set of widget resources used by the
programmer to specify data. The programmer can also set the resource
values for the inherited classes to set attributes for this widget. To
reference a resource by name or by class in a .Xdefaults file, remove the
PuiN or PuiC prefix and use the remaining letters. To specify one of the
defined constant values for a resource in a .Xdefaults file, use the
constant name as listed (including the Pui prefix, the case and any
underscores). The codes in the access column indicate whether the given
resource can be set at creation time (C), set by using XtSetValues (S),
retrieved by using XtGetValues (G), or is not applicable (N/A).
Page 5
PuiPrintBox(3X) Impressario PuiPrintBox(3X)
_____________________________________________________
PuiPrintBox Setup Resources
____________________________________________________
Name Default Access
Class Type
____________________________________________________
PuiNbuffer NULL CSG
PuiCBuffer XtPointer
____________________________________________________
PuiNbufSize 0 CSG
PuiCBufSize int
____________________________________________________
PuiNdefPrinter NULL G
PuiCDefPrinter char*
____________________________________________________
PuiNfd 0 CSG
PuiCFd int
____________________________________________________
PuiNfilename NULL CSG
PuiCFilename char*
____________________________________________________
PuiNjobType PuiPRINTJOB_FILENAME CG
PuiCJobType int
____________________________________________________
PuiNnumPrinters 0 G
PuiCNumPrinters int
____________________________________________________
PuiNprinter dynamic CSG
PuiCPrinter char*
____________________________________________________
PuiNprinterList NULL G
PuiCPrinterList SLPrinterStruct*
____________________________________________________
PuiNprintingPolicy PuiWIDGET_PRINTING CSG
PuiCPrintingPolicy int
____________________________________________________
|
|
PuiNbuffer
Specifies a buffer to be printed. This resource is used when
PuiNjobType is set to PuiPRINTJOB_BUFFER and is otherwise
ignored. If this resource is read, the value returned is a
pointer into widget private storage and must not be
deallocated.
PuiNbufSize
Specifies the number of bytes in the buffer specified by
PuiNbuffer. This resource is used when PuiNjobType is set to
PuiPRINTJOB_BUFFER and is otherwise ignored.
PuiNdefPrinter
This read-only resource provides the name of the spooling
system default printer. If no default printer is known to the
Page 6
PuiPrintBox(3X) Impressario PuiPrintBox(3X)
spooling system, this resource will be NULL. If a non-NULL
value is returned, it is a pointer into widget private storage
and must not be deallocated.
PuiNfd Specifies an open file descriptor from which data is to be
printed. This resource is used when PuiNjobType is set to
PuiPRINTJOB_DESCRIPTOR and is ignored otherwise.
PuiNfilename
Specifies the name(s) of file(s) to be printed. Multiple
filenames may be specified separated by whitespace. Bourne
shell filename meta characters may be specified but job control
and other meta characters should not be specified and may be
disallowed by the widget. This resource is used when
PuiNjobType is set to PuiPRINTJOB_FILENAME otherwise it is
ignored. If this resource is read and the value is not NULL,
the storage associated with this resource should be freed using
XtFree(3Xt) when no longer needed.
PuiNjobType
The PrintBox widget can print data from three sources: files,
file descriptors or buffers. PuiNjobType specifies which print
source is to be used. The following table indicates the values
which this resource may take:
Print Source PuiNjobType Also specify
____________________________________________________
File(s) PuiPRINTJOB_FILENAME PuiNfilename
Descriptor PuiPRINTJOB_DESCRIPTOR PuiNfd
Buffer PuiPRINTJOB_BUFFER PuiNbuffer,
PuiNbufSize
Note that the filename entry area is displayed only when
PuiNjobType is set to PuiPRINTJOB_FILENAME and PuiNshowFilename
is True.
PuiNnumPrinters
This read-only resource indicates the number of printers
currently available from the spooling system and listed in the
printer selection area of the widget.
PuiNprinter
Setting this resource selects the specified printer name for
printing. If the specified printer is not in the list of
available printers, the widget will attempt to select the
system default printer. If there is no default printer, the
first printer in the printer list will be selected. Reading
this resource provides the name of the currently selected
printer. If this resource is read, the value returned is a
pointer into widget private storage and must not be
deallocated.
Page 7
PuiPrintBox(3X) Impressario PuiPrintBox(3X)
PuiNprinterList
This read-only resource provides the list of available
printers. The list is an array with PuiNnumPrinters items each
of type SLPrinterStruct. Refer to the man pages for libspool(3)
and SLGetPrinterList(3X) for more information regarding this
structure. If this resource is read, the value returned is a
pointer into widget private storage and must not be
deallocated.
PuiNprintingPolicy
Specifies who is responsible for submitting print jobs to the
spooling system. The PrintBox widget has an internal routine
for submitting jobs. This routine is invoked by activating the
Print button or by calling the PuiPrintBoxDoPrint(3X) function.
If PuiNprintingPolicy is set to PuiWIDGET_PRINTING (the
default) the internal job submittal function will be used. If
this resource is set to PuiAPPLICATION_PRINTING the internal
routine will not be called and it becomes the responsibility of
the application to submit the print job to the spooling system.
Page 8
PuiPrintBox(3X) Impressario PuiPrintBox(3X)
____________________________________________
PuiPrintBox Print Job Option Resources
___________________________________________
Name Default Access
Class Type
___________________________________________
PuiNcopy dynamic SG
PuiCCopy Boolean
___________________________________________
PuiNjobTitle dynamic SG
PuiCJobTitle char*
___________________________________________
PuiNmail dynamic SG
PuiCMail Boolean
___________________________________________
PuiNmessage dynamic SG
PuiNMessage Boolean
___________________________________________
PuiNnumCopies 1 CSG
PuiCNumCopies int
___________________________________________
PuiNprinterOptions dynamic SG
PuiCPrinterOptions char*
___________________________________________
|
|
These options are similar to the command line flags for the System V lp
command. Refer to the lp(1) man page for additional information on the
meaning of these options.
The initial values of these resources, with the exception of
PuiNnumCopies, is determined at widget creation by the contents of the
spooler options file ~/.glprc, if it exists. New values for these
resources may be specified after the PrintBox widget has been created.
PuiNcopy If True, specifies that the file(s) to be printed should be
copied to the printer spooling directory thereby allowing the
original file(s) to be modified without affecting the printed
versions. If set to False links to the actual files will be
created in the spooling directory. In this case, any
modifications to the file(s) will be reflected in the printed
output. In the absence of a spooler options file, the value of
this resource defaults to False.
PuiNjobTitle
Specifies a title to be printed on the banner page of the print
job. If this resource is read and the value is not NULL, the
storage associated with this resource should be freed using
XtFree(3Xt) when no longer needed. In the absence of a spooler
options file, the value of this resource defaults to NULL.
Page 9
PuiPrintBox(3X) Impressario PuiPrintBox(3X)
PuiNmail If True a mail message will be sent upon completion of the
print job. Otherwise, no mail will be sent. In the absence of a
spooler options file, the value of this resource defaults to
False.
PuiNmessage
If True an attempt will be made to print a message on the
user's terminal indicating that the print job has completed. If
the terminal cannot be found, a mail message will be sent. In
the absence of a spooler options file, the value of this
resource defaults to False.
PuiNnumCopies
Specifies the number of copies to be printed.
PuiNprinterOptions
Specifies a string of printer-specific options. Multiple
options may be specified separated by whitespace. If this
resource is read and the value is not NULL, the storage
associated with this resource should be freed using XtFree(3Xt)
when no longer needed. In the absence of a spooler options
file, the value of this resource defaults to NULL.
Page 10
PuiPrintBox(3X) Impressario PuiPrintBox(3X)
_______________________________________________________________
PuiPrintBox Layout Resources
______________________________________________________________
Name Default Access
Class Type
______________________________________________________________
PuiNbusyCursor Watch CSG
PuiCCursor Cursor
______________________________________________________________
PuiNbuttonPlacement PuiBUTTONS_CENTER CG
PuiCButtonPlacement int
______________________________________________________________
PuiNbuttonSpacing 8 CG
PuiCButtonSpacing int
______________________________________________________________
PuiNdefaultPrinterFont [see description below] CG
PuiCFont XFontStruct*
______________________________________________________________
PuiNfilenameSensitive True CSG
PuiCSensitive Boolean
______________________________________________________________
PuiNinsensitiveBackground SGILightGrey CSG
PuiCBackground Pixel
______________________________________________________________
PuiNinsensitiveForeground black CSG
PuiCForeground Pixel
______________________________________________________________
PuiNlistVisibleItemCount 8 CG
PuiCVisibleItemCount int
______________________________________________________________
PuiNnumCopiesSensitive True CSG
PuiCSensitive Boolean
______________________________________________________________
PuiNprinterFont [see description below] CG
PuiCFont XFontStruct*
______________________________________________________________
PuiNprinterOptionsSensitive True CSG
PuiCSensitive Boolean
______________________________________________________________
PuiNshowBannerTitle True CG
PuiCShowBannerTitle Boolean
______________________________________________________________
PuiNshowCompletion True CG
PuiCShowCompletion Boolean
______________________________________________________________
PuiNshowFilename dynamic CG
PuiCShowFilename Boolean
______________________________________________________________
|
|
Page 11
PuiPrintBox(3X) Impressario PuiPrintBox(3X)
________________________________________________
PuiPrintBox Layout Resources (cont'd)
_______________________________________________
Name Default Access
Class Type
_______________________________________________
PuiNshowHandling True CG
PuiCShowHanding Boolean
_______________________________________________
PuiNshowNumCopies True CG
PuiCShowNumCopies Boolean
_______________________________________________
PuiNshowOptions True CG
PuiCShowOptions Boolean
_______________________________________________
PuiNshowOptionsButton True CG
PuiCShowOptionsButton Boolean
_______________________________________________
PuiNshowPrinterOptions True CG
PuiCShowPrinterOptions Boolean
_______________________________________________
PuiNshowSaveButton True CG
PuiCShowSaveButton Boolean
_______________________________________________
|
|
PuiNbusyCursor
Specifies the cursor shape to use during the period between the
pressing of the More Options... button and the actual
appearance on the screen of the option dialog.
PuiNbuttonPlacement
The action area push buttons can be grouped on the left side,
right side or center of the action area by setting this
resource to PuiBUTTONS_LEFT, PuiBUTTONS_RIGHT, or
PuiBUTTONS_CENTER respectively. By default the buttons area
centered in the action area.
PuiNbuttonSpacing
Specifies the horizontal spacing between the push buttons in
the action area.
PuiNdefaultPrinterFont
Specifies the font in which the default printer should be
displayed on the available printers list. Typically, the font
selected will be a bold version of the font specified by
PuiNprinterFont. The font selected should be a fixed width
font. If this resource is read, the value returned is a pointer
into widget private storage and must not be deallocated. The
default for this resource is -*-screen-bold-r-normal-*-15*.
Page 12
PuiPrintBox(3X) Impressario PuiPrintBox(3X)
PuiNfilenameSensitive
If set to True, the filename text field will permit user input
of filenames. If set to False, the field will not accept input,
the background of the field will be set to the color specified
by the PuiNinsensitiveBackground resource and the foreground
will be set to the color specified by
PuiNinsensitiveForeground.
PuiNinsensitiveBackground
Specifies the background color for text entry fields when they
are in an insensitive state.
PuiNinsensitiveForeground
Specifies the foreground color for text entry fields when they
are in an insensitive state.
PuiNlistVisibleItemCount
Specifies the number of lines to display for the available
printers list. This resource is ignored if the job option area
is displayed (showOptions is True). In this case the number of
lines displayed is determined by the height of the job option
area.
PuiNnumCopiesSensitive
If set to True, the copies text field will permit user input
for the number of copies. If set to False, the field will not
accept input, the background of the field will be set to the
color specified by the PuiNinsensitiveBackground resource and
the foreground will be set to the color specified by
PuiNinsensitiveForeground.
PuiNprinterFont
Specifies the font in which the available printer list should
be displayed. Typically, the font selected will be a non-bold
version version of the font used for the default printer. The
font selected should be a fixed width font. If this resource is
read, the value returned is a pointer into widget private
storage and must not be deallocated. The default for this
resource is -*-screen-medium-r-normal-*-15*.
PuiNprinterOptionsSensitive
If set to True, the printer-specific options text field will
permit user input. If set to False, the field will not accept
input, the background of the field will be set to the color
specified by the PuiNinsensitiveBackground resource and the
foreground will be set to the color specified by
PuiNinsensitiveForeground.
PuiNshowBannerTitle
If set to False, the banner page title options will not be
displayed.
Page 13
PuiPrintBox(3X) Impressario PuiPrintBox(3X)
PuiNshowCompletion
If set to False, the job completion notification options will
not be displayed.
PuiNshowFilename
If set to False the filename entry area will not be displayed.
Note that when PuiNjobType is set to PuiNPRINTJOB_BUFFER or
PuiPRINTJOB_DESCRIPTOR the filename entry area is not displayed
regardless of the value of this resource.
PuiNshowHandling
If set to False, the print file handling options will not be
displayed.
PuiNshowNumCopies
If set to False, the number of copies option will not be
displayed.
PuiNshowOptions
If set to False, the job option area will not be displayed.
PuiNshowOptionsButton
If set to False, the More Options... button will not be
displayed in the action area.
PuiNshowPrinterOptions
If set to False, the printer-specific options will not be
displayed.
PuiNshowSaveButton
If set to False, the Save Options... button will not be
displayed in the action area.
Page 14
PuiPrintBox(3X) Impressario PuiPrintBox(3X)
______________________________________________________________
PuiPrintBox Label Resources
_____________________________________________________________
Name Default Access
Class Type
_____________________________________________________________
PuiNcancelLabelString "Cancel" CSG
PuiCCancelLabelString XmString
_____________________________________________________________
PuiNcompletionLabelString [see desc. below] CSG
PuiCCompletionLabelString XmString
_____________________________________________________________
PuiNcopyJobLabelString [see desc. below] CSG
PuiCCopyJobLabelString XmString
_____________________________________________________________
PuiNfilenameLabelString "Files to print:" CSG
PuiCFilenameLabelString XmString
_____________________________________________________________
PuiNhandlingLabelString [see desc.below] CSG
PuiCHandlingLabelString XmString
_____________________________________________________________
PuiNhelpLabelString "Help" CSG
PuiCHelpLabelString XmString
_____________________________________________________________
PuiNjobDefTitleLabelString "Default" CSG
PuiCJobDefTitleLabelString XmString
_____________________________________________________________
PuiNjobSpecTitleLabelString "Custom:" CSG
PuiCJobSpecTitleLabelString XmString
_____________________________________________________________
PuiNjobTitleLabelString "Banner page title:" CSG
PuiCJobTitleLabelString XmString
_____________________________________________________________
PuiNlinkJobLabelString [see desc. below] CSG
PuiCLinkJobLabelString XmString
_____________________________________________________________
PuiNmailLabelString "Send mail" CSG
PuiCMailLabelString XmString
_____________________________________________________________
PuiNmessageLabelString [see desc. below] CSG
PuiCMessageLabelString XmString
_____________________________________________________________
PuiNnumCopiesLabelString "Number of copies:" CSG
PuiCNumCopiesLabelString XmString
_____________________________________________________________
PuiNoptionLabelString "Options:" CSG
PuiCOptionLabelString XmString
_____________________________________________________________
|
|
Page 15
PuiPrintBox(3X) Impressario PuiPrintBox(3X)
________________________________________________________________
PuiPrintBox Label Resources (cont'd)
_______________________________________________________________
Name Default Access
Class Type
_______________________________________________________________
PuiNoptionsbLabelString "More Options..." CSG
PuiCOptionsbLabelString XmString
_______________________________________________________________
PuiNprinterLabelString "Available printers:" CSG
PuiCPrinterLabelString XmString
_______________________________________________________________
PuiNprinterSpecLabelString [see desc. below] CSG
PuiCPrinterSpecLabelString XmString
_______________________________________________________________
PuiNprintLabelString "Print" CSG
PuiCPrintLabelString XmString
_______________________________________________________________
PuiNsaveLabelString "Save Options..." CSG
PuiCSaveLabelString XmString
_______________________________________________________________
PuiNsaveDlgTitleLabelString "Save Settings" CSG
PuiCSaveDlgTitleLabelString XmString
_______________________________________________________________
PuiNsaveDlgSaveLabelString "Save" CSG
PuiCSaveDlgSaveLabelString XmString
_______________________________________________________________
PuiNsaveDlgUserLabelString "Save - Personal" CSG
PuiCSaveDlgUserLabelString XmString
_______________________________________________________________
PuiNsaveDlgAllLabelString "Save - All Users" CSG
PuiCSaveDlgAllLabelString XmString
_______________________________________________________________
PuiNsaveDlgCancelLabelString "Cancel" CSG
PuiCSaveDlgCancelLabelString XmString
_______________________________________________________________
PuiNsaveDlgMsgLabelString [see desc. below] CSG
PuiCSaveDlgMsgLabelString XmString
_______________________________________________________________
PuiNuser1LabelString "User1" CSG
PuiCUser1LabelString XmString
_______________________________________________________________
PuiNuser2LabelString "User2" CSG
PuiCUser2LabelString XmString
_______________________________________________________________
|
|
Page 16
PuiPrintBox(3X) Impressario PuiPrintBox(3X)
_______________________________________________
PuiPrintBox Label Resources (cont'd)
______________________________________________
Name Default Access
Class Type
______________________________________________
PuiNuser3LabelString "User3" CSG
PuiCUser3LabelString XmString
______________________________________________
PuiNuser4LabelString "User4" CSG
PuiCUser4LabelString XmString
______________________________________________
|
|
PuiNcancelLabelString
Specifies the label for the Cancel button. If this resource is
read and the value is not NULL, the storage associated with
this resource should be freed using XtFree(3Xt) when no longer
needed.
PuiNcompletionLabelString
Specifies the label for the print job completion notification
option. The default value for this option is "When job is
complete:". If this resource is read and the value is not NULL,
the storage associated with this resource should be freed using
XtFree(3Xt) when no longer needed.
PuiNcopyJobLabelString
Specifies the label for the print file copy handling option.
The default value for this option is "Copy to spool directory".
If this resource is read and the value is not NULL, the storage
associated with this resource should be freed using XtFree(3Xt)
when no longer needed.
PuiNfilenameLabelString
Specifies the section title for the filename entry area. If
this resource is read and the value is not NULL, the storage
associated with this resource should be freed using XtFree(3Xt)
when no longer needed.
PuiNhandlingLabelString
Specifies the label for the print file handling option. If this
resource is read and the value is not NULL, the storage
associated with this resource should be freed using XtFree(3Xt)
when no longer needed. The default value for this resource is
"Print file handling:".
PuiNhelpLabelString
Specifies the label for the Help button. If this resource is
read and the value is not NULL, the storage associated with
this resource should be freed using XtFree(3Xt) when no longer
needed.
Page 17
PuiPrintBox(3X) Impressario PuiPrintBox(3X)
PuiNjobDefTitleLabelString
Specifies the label for the default banner page title option.
If this resource is read and the value is not NULL, the storage
associated with this resource should be freed using XtFree(3Xt)
when no longer needed.
PuiNjobSpecTitleLabelString
Specifies the label for the user specified banner page title
option. If this resource is read and the value is not NULL, the
storage associated with this resource should be freed using
XtFree(3Xt) when no longer needed.
PuiNjobTitleLabelString
Specifies the label for the banner page title options. If this
resource is read and the value is not NULL, the storage
associated with this resource should be freed using XtFree(3Xt)
when no longer needed.
PuiNlinkJobLabelString
Specifies the label for the link print file handling option.
The default value for this option is "Link in spool directory".
If this resource is read and the value is not NULL, the storage
associated with this resource should be freed using XtFree(3Xt)
when no longer needed.
PuiNmailLabelString
Specifies the label for the send mail upon job completion
option. If this resource is read and the value is not NULL, the
storage associated with this resource should be freed using
XtFree(3Xt) when no longer needed.
PuiNmessageLabelString
Specifies the label for the console message upon completion
option. The default value for this option is "Send message to
console". If this resource is read and the value is not NULL,
the storage associated with this resource should be freed using
XtFree(3Xt) when no longer needed. PuiNnumCopiesLabelString
Specifies the label for the number of copies option. If this
resource is read and the value is not NULL, the storage
associated with this resource should be freed using XtFree(3Xt)
when no longer needed.
PuiNoptionLabelString
Specifies the section title for the job option area. If this
resource is read and the value is not NULL, the storage
associated with this resource should be freed using XtFree(3Xt)
when no longer needed.
PuiNoptionsbLabelString
Specifies the label for the More Options... button. If this
resource is read and the value is not NULL, the storage
associated with this resource should be freed using XtFree(3Xt)
Page 18
PuiPrintBox(3X) Impressario PuiPrintBox(3X)
when no longer needed.
PuiNprinterLabelString
Specifies the section title for the printer selection area. If
this resource is read and the value is not NULL, the storage
associated with this resource should be freed using XtFree(3Xt)
when no longer needed.
PuiNprinterSpecLabelString
Specifies the label for the printer-specific options. The
default value for this option is "Printer-specific options:".
If this resource is read and the value is not NULL, the storage
associated with this resource should be freed using XtFree(3Xt)
when no longer needed.
PuiNprintLabelString
Specifies the label for the Print button. If this resource is
read and the value is not NULL, the storage associated with
this resource should be freed using XtFree(3Xt) when no longer
needed.
PuiNsaveLabelString
Specifies the label for the Save Options... button. If this
resource is read and the value is not NULL, the storage
associated with this resource should be freed using XtFree(3Xt)
when no longer needed.
PuiNsaveDlgTitleLabelString
Specifies the title of the options save dialog box. If this
resource is read and the value is not NULL, the storage
associated with this resource should be freed using XtFree(3Xt)
when no longer needed.
PuiNsaveDlgSaveLabelString
Specifies the label for the Save button on the options save
dialog box. This label is used when the user is not "root" or
"lp". If this resource is read and the value is not NULL, the
storage associated with this resource should be freed using
XtFree(3Xt) when no longer needed.
PuiNsaveDlgUserLabelString
Specifies the label for the save personal settings button on
the save options dialog box. This button appears when the user
is "root" or "lp". If this resource is read and the value is
not NULL, the storage associated with this resource should be
freed using XtFree(3Xt) when no longer needed.
PuiNsaveDlgAllLabelString
Specifies the label for the save default settings button on the
save options dialog box. This button appears when the user is
"root" or "lp". If this resource is read and the value is not
NULL, the storage associated with this resource should be freed
Page 19
PuiPrintBox(3X) Impressario PuiPrintBox(3X)
using XtFree(3Xt) when no longer needed.
PuiNsaveDlgCancelLabelString
Specifies the label for the Cancel button on the save options
dialog box. If this resource is read and the value is not
NULL, the storage associated with this resource should be freed
using XtFree(3Xt) when no longer needed.
PuiNsaveDlgMsgLabelString
Specifies the explanatory message that appears at the top of
the save options dialog box. If this resource is read and the
value is not NULL, the storage associated with this resource
should be freed using XtFree(3Xt) when no longer needed. The
default value for this resource is "Save spooler
settings.<nl><nl>In addition, save printer-specific settings
for:".
PuiNuser1LabelString
Specifies the label for the User1 button. If this resource is
read and the value is not NULL, the storage associated with
this resource should be freed using XtFree(3Xt) when no longer
needed.
PuiNuser2LabelString
Specifies the label for the User2 button. If this resource is
read and the value is not NULL, the storage associated with
this resource should be freed using XtFree(3Xt) when no longer
needed.
PuiNuser3LabelString
Specifies the label for the User3 button. If this resource is
read and the value is not NULL, the storage associated with
this resource should be freed using XtFree(3Xt) when no longer
needed.
PuiNuser4LabelString
Specifies the label for the User4 button. If this resource is
read and the value is not NULL, the storage associated with
this resource should be freed using XtFree(3Xt) when no longer
needed.
Page 20
PuiPrintBox(3X) Impressario PuiPrintBox(3X)
________________________________________________________
PuiPrintBox Callback Resources
_______________________________________________________
Name Default Access
Class Type
_______________________________________________________
PuiNcancelCallback NULL C
PuiCCallback XtCallbackList
_______________________________________________________
PuiNerrorCallback NULL C
PuiCCallback XtCallbackList
_______________________________________________________
PuiNhelpCallback NULL C
PuiCCallback XtCallbackList
_______________________________________________________
PuiNjobInfoCallback NULL C
PuiCCallback XtCallbackList
_______________________________________________________
PuiNoptionErrorCallback NULL C
PuiCCallback XtCallbackList
_______________________________________________________
PuiNprintCallback NULL C
PuiCCallback XtCallbackList
_______________________________________________________
PuiNprinterActionCallback NULL C
PuiCCallback XtCallbackList
_______________________________________________________
PuiNprinterSelectCallback NULL C
PuiCCallback XtCallbackList
_______________________________________________________
PuiNuser1Callback NULL C
PuiCCallback XtCallbackList
_______________________________________________________
PuiNuser2Callback NULL C
PuiCCallback XtCallbackList
_______________________________________________________
PuiNuser3Callback NULL C
PuiCCallback XtCallbackList
_______________________________________________________
PuiNuser4Callback NULL C
PuiCCallback XtCallbackList
_______________________________________________________
|
|
PuiNcancelCallback
Specifies the list of callback functions called when the user
activates the Cancel button. The callback reason is
PuiCR_CANCEL.
PuiNerrorCallback
Specifies the list of callback functions called when an error
has occurred in the submittal of a print job. An error can also
be triggered by other interactions with the spooling system
Page 21
PuiPrintBox(3X) Impressario PuiPrintBox(3X)
such as determining the available printers. The callback reason
is PuiCR_ERROR. Error caused by executing a printer options
dialog are reported on the PuiNoptionErrorCallback.
PuiNhelpCallback
Specifies the list of callback functions called when the user
activates the Help button. The callback reason is PuiCR_HELP.
PuiNjobInfoCallback
When a print job has been successfully submitted to the
spooling system the functions on this callback list will be
called. The callback data will provide information on the job.
The callback reason is PuiCR_JOB_INFO.
PuiNoptionErrorCallback
Specifies the list of callback functions called when an error
has occurred while executing a printer-specific option panel
program. The callback reason is PuiCR_OPT_ERROR. Printing
errors are reported on the PuiNerrorCallback.
PuiNprintCallback
Specifies the list of callback functions called when the user
activates the Print button or calls the PuiPrintBoxDoPrint(3X)
function. The callback reason is PuiCR_PRINT. This callback
provides a number of capabilities. If PuiNprintingPolicy is
PuiWIDGET_PRINTING (the default), the functions on this
callback are called before any printing is performed by the
widget. This allows the application to perform any pre-printing
processing such as setting a busy cursor or specifying a buffer
for the PuiPrintBox widget to print. Upon return from the last
user specified callback function, the widget will submit a
print job. If PuiNprintingPolicy is PuiAPPLICATION_PRINTING,
this callback would be used by the application to submit a
print job using its own printing method.
PuiNprinterActionCallback
Specifies the list of callback functions called when a printer
on the available printer list is double clicked. The callback
reason is PuiCR_PR_ACTION.
PuiNprinterSelectCallback
Specifies the list of callback functions called when a printer
is selected from the available printer list. These callbacks
are also called when a new printer is selected using the
PuiNprinter resource. The callback reason is PuiCR_PR_SELECT.
PuiNuser1Callback
Specifies the list of callback functions called when the user
activates the User1 button. The callback reason is PuiCR_USER1.
Page 22
PuiPrintBox(3X) Impressario PuiPrintBox(3X)
PuiNuser2Callback
Specifies the list of callback functions called when the user
activates the User2 button. The callback reason is PuiCR_USER2.
PuiNuser3Callback
Specifies the list of callback functions called when the user
activates the User3 button. The callback reason is PuiCR_USER3.
PuiNuser4Callback
Specifies the list of callback functions called when the user
activates the User4 button. The callback reason is PuiCR_USER4.
Inherited Resources
The PrintBox widget inherits behavior and resources from the following
superclasses. For a complete description of each resource, refer to the
man page for that superclass.
Page 23
PuiPrintBox(3X) Impressario PuiPrintBox(3X)
___________________________________________________
XmBulletinBoard Resources
__________________________________________________
Name Default Access
Class Type
__________________________________________________
XmNallowOverlap True CSG
XmCAllowOverlap Boolean
__________________________________________________
XmNautoUnmanage True CG
XmCAutoUnmanage Boolean
__________________________________________________
XmNbuttonFontList dynamic CSG
XmCButtonFontList XmFontList
__________________________________________________
XmNcancelButton dynamic SG
XmCWidget Widget
__________________________________________________
XmNdefaultButton dynamic SG
XmCWidget Widget
__________________________________________________
XmNdefaultPosition True CSG
XmCDefaultPosition Boolean
__________________________________________________
XmNdialogStyle dynamic CSG
XmCDialogStyle unsigned char
__________________________________________________
XmNdialogTitle NULL CSG
XmCDialogTitle XmString
__________________________________________________
XmNfocusCallback NULL C
XmCCallback XtCallbackList
__________________________________________________
XmNlabelFontList dynamic CSG
XmCLabelFontList XmFontList
__________________________________________________
XmNmapCallback NULL C
XmCCallback XtCallbackList
__________________________________________________
XmNmarginHeight 10 CSG
XmCMarginHeight Dimension
__________________________________________________
XmNmarginWidth 10 CSG
XmCMarginWidth Dimension
__________________________________________________
XmNnoResize False CSG
XmCNoResize Boolean
__________________________________________________
|
|
Page 24
PuiPrintBox(3X) Impressario PuiPrintBox(3X)
__________________________________________________
XmBulletinBoard Resources (cont'd)
_________________________________________________
Name Default Access
Class Type
_________________________________________________
XmNresizePolicy XmRESIZE_ANY CSG
XmCResizePolicy unsigned char
_________________________________________________
XmNshadowType XmSHADOW_OUT CSG
XmCShadowType unsigned char
_________________________________________________
XmNtextFontList dynamic CSG
XmCTextFontList XmFontList
_________________________________________________
XmNtextTranslations NULL C
XmCTranslations XtTranslations
_________________________________________________
XmNunmapCallbackXt NULL C
XmCCallback XtCallbackList
_________________________________________________
|
|
Page 25
PuiPrintBox(3X) Impressario PuiPrintBox(3X)
_______________________________________________________________
XmManager Resources
______________________________________________________________
Name Default Access
Class Type
______________________________________________________________
XmNbottomShadowColor dynamic CSG
XmCBottomShadowColor Pixel
______________________________________________________________
XmNbottomShadowPixmap XmUNSPECIFIED_PIXMAP CSG
XmCBottomShadowPixmap Pixmap
______________________________________________________________
XmNforeground dynamic CSG
XmCForeground Pixel
______________________________________________________________
XmNhelpCallback NULL C
XmCCallback XtCallbackList
______________________________________________________________
XmNhighlightColor dynamic CSG
XmCHighlightColor Pixel
______________________________________________________________
XmNhighlightPixmap dynamic CSG
XmCHighlightPixmap Pixmap
______________________________________________________________
XmNinitialFocus NULL CSG
XmCInitialFocus Widget
______________________________________________________________
XmNnavigationType dynamic CSG
XmCNavigationType XmNavigationType
______________________________________________________________
XmNshadowThickness dynamic CSG
XmCShadowThickness Dimension
______________________________________________________________
XmNstringDirection dynamic CG
XmCStringDirection XmStringDirection
______________________________________________________________
XmNtopShadowColor dynamic CSG
XmCBackgroundTopShadowColor Pixel
______________________________________________________________
XmNtopShadowPixmap dynamic CSG
XmCTopShadowPixmap Pixmap
______________________________________________________________
XmNtraversalOn True CSG
XmCTraversalOn Boolean
______________________________________________________________
|
|
Page 26
PuiPrintBox(3X) Impressario PuiPrintBox(3X)
___________________________________________
XmManager Resources (cont'd)
__________________________________________
Name Default Access
Class Type
__________________________________________
XmNunitType dynamic CSG
XmCUnitType unsigned char
__________________________________________
XmNuserData NULL CSG
XmCUserData Pointer
__________________________________________
|
|
Page 27
PuiPrintBox(3X) Impressario PuiPrintBox(3X)
______________________________________________
Composite Resources
_____________________________________________
Name Default Access
Class Type
_____________________________________________
XmNchildren NULL G
XmCReadOnly WidgetList
_____________________________________________
XmNinsertPosition NULL CSG
XmCInsertPosition (*)()
_____________________________________________
XmNnumChildren 0 G
XmCReadOnly Cardinal
_____________________________________________
|
|
Page 28
PuiPrintBox(3X) Impressario PuiPrintBox(3X)
________________________________________________________________
Core Resources
_______________________________________________________________
Name Default Access
Class Type
_______________________________________________________________
XmNaccelerators dynamic N/A
XmCAccelerators XtAccelerators
_______________________________________________________________
XmNancestorSensitive dynamic G
XmCSensitive Boolean
_______________________________________________________________
XmNbackground dynamic CSG
XmCBackground Pixel
_______________________________________________________________
XmNbackgroundPixmap XmUNSPECIFIED_PIXMAP CSG
XmCPixmap Pixmap
_______________________________________________________________
XmNborderColor XtDefaultForeground CSG
XmCBorderColor Pixel
_______________________________________________________________
XmNborderPixmap XmUNSPECIFIED_PIXMAP CSG
XmCPixmap Pixmap
_______________________________________________________________
XmNborderWidth 0 CSG
XmCBorderWidth Dimension
_______________________________________________________________
XmNcolormap dynamic CG
XmCColormap Colormap
_______________________________________________________________
XmNdepth dynamic CG
XmCDepth int
_______________________________________________________________
XmNdestroyCallback NULL C
XmCCallback XtCallbackList
_______________________________________________________________
XmNheight dynamic CSG
XmCHeight Dimension
_______________________________________________________________
XmNinitialResourcesPersistent True C
XmCInitialResourcesPersistent Boolean
_______________________________________________________________
XmNmappedWhenManaged True CSG
XmCMappedWhenManaged Boolean
_______________________________________________________________
XmNscreen dynamic CG
XmCScreen Screen*
_______________________________________________________________
|
|
Page 29
PuiPrintBox(3X) Impressario PuiPrintBox(3X)
________________________________________________
Core Resources (cont'd)
_______________________________________________
Name Default Access
Class Type
_______________________________________________
XmNsensitive True CSG
XmCSensitive Boolean
_______________________________________________
XmNtranslations dynamic CSG
XmCTranslations XtTranslations
_______________________________________________
XmNwidth dynamic CSG
XmCWidth Dimension
_______________________________________________
XmNx 0 CSG
XmCPosition Position
_______________________________________________
XmNy 0 CSG
XmCPosition Position
_______________________________________________
|
|
Page 30
PuiPrintBox(3X) Impressario PuiPrintBox(3X)
Callback Information
A pointer to the following structure is passed as call_data to each
callback function:
typedef struct _PuiPrintBoxCallbackStruct {
int reason;
XEvent *event;
SLPrintJob *job_info;
char *selected_printer;
int selected_position;
int error_code;
} PuiPrintBoxCallbackStruct;
reason Indicates why the callback was invoked.
event Points to the X event that triggered the callback.
job_info Provides print job submittal information.
selected_printer
Provides the name of the printer selected from the list of
available printers. This string is a pointer to internal
storage and must not be deallocated or reallocated by the
user. Copy the string to user allocated storage to
preserve it across callbacks.
selected_position
Provides the position of the selected printer in the list
of available printers. For consistency with the Motif List
widget the position of items start with 1 instead of 0.
error_code Provides an error condition code. If the callback reason
is PuiCR_ERROR, the error code is the libspool error code
reported by SLerrno. Refer to the man pages for
libspool(3) and SLPerror(3X) for more information. If the
callback reason is PuiCR_OPT_ERROR, the error code is the
standard system error code reported by errno.
Not all callback fields are relevant for all callback conditions. The
reason field indicates which callback structure fields are valid. The
valid fields for each reason are summarized in the following table:
Reason Valid Fields
___________________________________________
PuiCR_PRINT reason, event
PuiCR_CANCEL reason, event
PuiCR_HELP reason, event
PuiCR_USER1 reason, event
PuiCR_USER2 reason, event
Page 31
PuiPrintBox(3X) Impressario PuiPrintBox(3X)
PuiCR_USER3 reason, event
PuiCR_USER4 reason, event
PuiCR_JOB_INFO reason, job_info
PuiCR_PR_SELECT reason, selected_printer,
selected_position
PuiCR_PR_ACTION reason, selected_printer,
selected_position
PuiCR_ERROR reason, error_code
PuiCR_OPT_ERROR reason, error_code
Translations
The PrintBox widget inherits its translations from the XmBulletinBoard
widget class.
NOTES
1. The PrintBox widget determines what printers are available when it
is instantiated. Therefore, the PuiNprinterList, PuiNnumPrinters,
and PuiNdefPrinter resources are not updated if the printing
environment changes during the PrintBox widget's lifetime.
2. The PrintBox widget can report an error condition on its
PuiNerrorCallback during initial management and realization if the
System V print spooling scheduler lpsched is not running or if an
error occurs determining the list of available printers.
Applications with functions registered on this callback list should
be prepared to handle errors at this point in the PrintBox widget
life cycle.
4. Do not set a new value for the PuiNprinterOptions resource while a
printer-specific option panel is displayed. The printer-specific
options selected in the option panel will override the options set
by the resource.
5. The printer selection list should use fixed width fonts for both the
regular printers and the default printer. A fixed width font will
preserve the columnar organization of the list items.
6. When the PrintBox widget is instantiated it determines the username
based on the current real UID. The username is used for the reading
and saving option settings. If the real UID is changed
programmatically after the PrintBox has been instantiated, the
widget must be destroyed and re-instantiated if it is to save
options for the new UID.
SEE ALSOPuiCreatePrintBox(3X), PuiCreatePrintDialog(3X), libprintui(3X),
libspool(3)
Page 32