The Spool Library: 4.2 Print Control Instance Data: Attributes

Up: GEOS SDK TechDocs | Up | Prev: 4.1 Alerting the GenApplication | Next: 4.3 Page Range Information
PCI_attrs, MSG_PRINT_CONTROL_SET_ATTRS, MSG_PRINT_CONTROL_GET_ATTRS

The Print Control includes several attributes which are grouped together into a record of type PrintControlAttrs . These represent some choices made when instantiating the Print Control.

PCA_MARK_APP_BUSY
Describing large print jobs can take a fair amount of time. If this bit is set, the application will reassure the user that it is busy (by showing the busy cursor) while spooling long print jobs.
PCA_VERIFY_PRINT
If this bit is set, the Print Control will ask the application for confirmation before printing anything. This request will come in the form of a MSG_PRINT_VERIFY_PRINT_REQUEST sent to the PCI_output object. The Print Control sends this message after the user has finished interacting with the Print dialog box so that the application can make sure that the user has made valid choices.
PCA_SHOW_PROGRESS, PCA_PROGRESS_PERCENT, PCA_PROGRESS_PAGE
When describing a large print job, it is considerate to let the user know when the application is making some kind of progress. If the first of these bits is set, the Print Control will display a progress dialog box when spooling a print job. The next two bits determine whether progress will be reported as a percentage, number of pages completed, both, or neither. Regardless of whether percents or page number progress is reported, the progress box can display an application-supplied string.
PCA_FORCE_ROTATION
If this bit is set, the output will automatically be printed rotated on the page. Normally, this bit is not set so the Spooler will make a choice to make the job fit on the minimum number of pages. The Banner program sets this bit to make sure that fanfold paper printers will create continuous banners; if it didn't print sideways, then users would have to use a lot of tape to put their banners together (they have to anyhow, if using non continuous-feed paper).
PCA_COPY_CONTROLS
This flag determines whether the Print Control will allow the user to request that multiple copies be printed. If your application uses this option, then it is vital that the print control be updated whenever the total page count of the document changes.
PCA_PAGE_CONTROLS
If this bit is set, the user will be allowed to select specific page ranges to print. Even if it seems like users would have little reason to print short ranges, it's still nice to include this option: if the printer messes up one page, it's usually irritating to have to reprint the whole document.
PCA_QUALITY_CONTROLS
If this flag is on, the user will be allowed to select which quality to print with. Note that not all printers can print at all qualities, but most support more than one mode.
PCA_USES_DIALOG_BOX
This bit determines whether the Print Control will display a dialog box containing printing choices for the user. Specialty geodes and GCM applications might want to turn this flag off; it is set by default.
PCA_GRAPHICS_MODE, PCA_TEXT_MODE
These bits determine whether the Control should support graphic mode and/or text mode output.
PCA_DEFAULT_QUALITY
These two bits contain the default print quality to use. The enumerated type PrintQualityEnum defines the values available: PQT_HIGH, PQT_MEDIUM, and PQT_LOW.

Those attributes which are on by default are PCA_COPY_CONTROLS, PCA_PAGE_CONTROLS, PCA_QUALITY_CONTROLS, PCA_USES_DIALOG_BOX, PCA_GRAPHICS_OUTPUT, and PCA_TEXT_OUTPUT.

There are messages to get and set these attributes.

MSG_PRINT_CONTROL_SET_ATTRS

void	MSG_PRINT_CONTROL_SET_ATTRS(
        PrintControlAttrs 	attributes);

Use this message to change the values stored in the PCI_attrs structure. Pass a record of type PrintControlAttrs containing the desired values.

Source: Unrestricted.

Destination: Any PrintControl object.

Parameters: attributes The new PrintControlAttrs .

Return: Nothing.

Interception: Unlikely.

MSG_PRINT_CONTROL_GET_ATTRS

PrintControlAttrs 	MSG_PRINT_CONTROL_GET_ATTRS();

Use this message to retrieve the values stored in the PCI_attrs structure. It will return a record of type PrintControlAttrs containing the desired values.

Source: Unrestricted.

Destination: Any PrintControl object.

Parameters: None.

Return: The present print control attributes.

Interception: Unlikely.


Up: GEOS SDK TechDocs | Up | Prev: 4.1 Alerting the GenApplication | Next: 4.3 Page Range Information