diff options
Diffstat (limited to 'tqtinterface/qt4/src/kernel/tqprinter.cpp')
-rw-r--r-- | tqtinterface/qt4/src/kernel/tqprinter.cpp | 1198 |
1 files changed, 0 insertions, 1198 deletions
diff --git a/tqtinterface/qt4/src/kernel/tqprinter.cpp b/tqtinterface/qt4/src/kernel/tqprinter.cpp deleted file mode 100644 index 31c5c19..0000000 --- a/tqtinterface/qt4/src/kernel/tqprinter.cpp +++ /dev/null @@ -1,1198 +0,0 @@ -/********************************************************************** -** -** Implementation of TQPrinter class -** -** Created : 941003 -** -** Copyright (C) 2010 Timothy Pearson and (C) 1992-2008 Trolltech ASA. -** -** This file is part of the kernel module of the TQt GUI Toolkit. -** -** This file may be used under the terms of the GNU General -** Public License versions 2.0 or 3.0 as published by the Free -** Software Foundation and appearing in the files LICENSE.GPL2 -** and LICENSE.GPL3 included in the packaging of this file. -** Alternatively you may (at your option) use any later version -** of the GNU General Public License if such license has been -** publicly approved by Trolltech ASA (or its successors, if any) -** and the KDE Free TQt Foundation. -** -** Please review the following information to ensure GNU General -** Public Licensing requirements will be met: -** http://trolltech.com/products/qt/licenses/licensing/opensource/. -** If you are unsure which license is appropriate for your use, please -** review the following information: -** http://trolltech.com/products/qt/licenses/licensing/licensingoverview -** or contact the sales department at sales@trolltech.com. -** -** This file may be used under the terms of the Q Public License as -** defined by Trolltech ASA and appearing in the file LICENSE.TQPL -** included in the packaging of this file. Licensees holding valid TQt -** Commercial licenses may use this file in accordance with the TQt -** Commercial License Agreement provided with the Software. -** -** This file is provided "AS IS" with NO WARRANTY OF ANY KIND, -** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted -** herein. -** -**********************************************************************/ - -#include <tqtglobaldefines.h> -// Nasty, nasty horrid HACK to get access to QPrinter's private members -// This is TERRIBLE and I wish there was a way around it -// This is a good example of the new, broken & irritating Qt4 API, -// and the corresponding loss in functionality versus Qt3. -// See also tqrect.cpp -#define private protected -#include <Qt/qprinter.h> -#undef private - -#include "tqprinter.h" -#include "tqprinter_p.h" - -#ifndef TQT_NO_PRINTER - -#ifdef USE_QT4 - -#include "tqprintdialog.h" -#include "private/qt4_qprinter_p.h" - -#ifdef Q_WS_MAC -bool qt_compat_QPrinter_pageSetup(QPrinter *p, QWidget *parent) -{ - QPageSetupDialog psd(p, parent); - return psd.exec() != 0; -} -#endif // Q_WS_MAC - -bool qt_compat_QPrinter_printSetup(QPrinter *printer, QWidget *parent) -{ - TQPrintDialog dlg(TQT_TQPRINTER(printer), TQT_TQWIDGET(parent)); - return dlg.exec() != 0; -} - -#ifdef Q_WS_MAC -/*! - Executes a page setup dialog so that the user can configure the type of - page used for printing. Returns true if the contents of the dialog are - accepted; returns false if the dialog is canceled. -*/ -bool TQPrinter::pageSetup(QWidget *parent) -{ - return qt_compat_QPrinter_pageSetup(this, parent); -} - -/*! - Executes a print setup dialog so that the user can configure the printing - process. Returns true if the contents of the dialog are accepted; returns - false if the dialog is canceled. -*/ -bool TQPrinter::printSetup(QWidget *parent) -{ - return qt_compat_QPrinter_printSetup(this, parent); -} -#endif // Q_WS_MAC - -/*! - Use QPrintDialog instead. - - \oldcode - if (printer->setup(parent)) - ... - \newcode - QPrintDialog dialog(printer, parent); - if (dialog.exec()) - ... - \endcode -*/ -bool TQPrinter::setup(QWidget *parent) -{ - return qt_compat_QPrinter_printSetup(this, parent) -#ifdef Q_WS_MAC - && qt_compat_QPrinter_pageSetup(this, parent); -#endif - ; -} - -/*! - Use QPrintDialog::minPage() instead. -*/ -int TQPrinter::minPage() const -{ - return d_ptr->minPage; -} - -/*! - Use QPrintDialog::maxPage() instead. -*/ -int TQPrinter::maxPage() const -{ - return d_ptr->maxPage; -} - -/*! - Use QPrintDialog::setMinMax() instead. -*/ -void TQPrinter::setMinMax( int minPage, int maxPage ) -{ - Q_ASSERT_X(minPage <= maxPage, "QPrinter::setMinMax", - "'min' must be less than or equal to 'max'"); - d_ptr->minPage = minPage; - d_ptr->maxPage = maxPage; - d_ptr->options |= QPrintDialog::PrintPageRange; -} - -/*! - Use QPrintDialog::setOption(QPrintDialog::PrintCollateCopies) - or QPrintDialog::setOptions(QPrintDialog::options() - & ~QPrintDialog::PrintCollateCopies) instead, depending on \a - enable. -*/ -void TQPrinter::setCollateCopiesEnabled(bool enable) -{ - if (enable) - d_ptr->options |= QPrintDialog::PrintCollateCopies; - else - d_ptr->options &= ~QPrintDialog::PrintCollateCopies; -} - -/*! - Returns true if the printer is set up to collate copies of printed documents; - otherwise returns false. - - Use QPrintDialog::isOptionEnabled(QPrintDialog::PrintCollateCopies) - instead. - - \sa collateCopies() -*/ -bool TQPrinter::collateCopiesEnabled() const -{ - return (d_ptr->options & QPrintDialog::PrintCollateCopies); -} - -/*! - Use QPrintDialog instead. -*/ -void TQPrinter::setOptionEnabled( PrinterOption option, bool enable ) -{ - if (enable) - d_ptr->options |= QPrintDialog::PrintDialogOption(1 << option); - else - d_ptr->options &= ~QPrintDialog::PrintDialogOption(1 << option); -} - -/*! - Use QPrintDialog instead. -*/ -bool TQPrinter::isOptionEnabled( PrinterOption option ) const -{ - return (d_ptr->options & QPrintDialog::PrintDialogOption(option)); -} - -/*! - \fn void QPrinter::setOutputToFile(bool enable) - - Specifies whether the output should be written to a file or sent - directly to the printer. - - Will output to a file if \a enable is true, or will output - directly to the printer if \a enable is false. - - \sa outputToFile(), setOutputFileName() -*/ -void TQPrinter::setOutputToFile(bool f) -{ - if (f) { - if (outputFileName().isEmpty()) - setOutputFileName(QLatin1String("untitled_printer_document")); - } else { - setOutputFileName(QString()); - } -} - -#else // USE_QT4 - -/*! - \class TQPrinter tqprinter.h - \brief The TQPrinter class is a paint tqdevice that paints on a printer. - - \ingroup images - \ingroup graphics - \mainclass - - On Windows it uses the built-in printer drivers. On X11 it - generates postscript and sends that to lpr, lp, or another print - command. - - TQPrinter is used in much the same way as TQWidget and TQPixmap are - used. The big difference is that you must keep track of the pages. - - TQPrinter supports a number of settable parameters, most of which - can be changed by the end user when the application calls - TQPrinter::setup(). - - The most important parameters are: - \list - \i setOrientation() tells TQPrinter which page orientation to use (virtual). - \i setPageSize() tells TQPrinter what page size to expect from the - printer. - \i setResolution() tells TQPrinter what resolution you wish the - printer to provide (in dpi). - \i setFullPage() tells TQPrinter whether you want to deal with the - full page or just with the part the printer can draw on. The - default is FALSE, so that by default you should be able to paint - on (0,0). If TRUE the origin of the coordinate system will be in - the top left corner of the paper and most probably the printer - will not be able to paint something there due to it's physical - margins. - \i setNumCopies() tells TQPrinter how many copies of the document - it should print. - \i setMinMax() tells TQPrinter and TQPrintDialog what the allowed - range for fromPage() and toPage() are. - \endlist - - Except where noted, you can only call the set functions before - setup(), or between TQPainter::end() and setup(). (Some may take - effect between setup() and begin(), or between begin() and end(), - but that's strictly undocumented and such behaviour may differ - depending on platform.) - - There are also some settings that the user sets (through the - printer dialog) and that applications are expected to obey: - - \list - - \i pageOrder() tells the application program whether to print - first-page-first or last-page-first. - - \i colorMode() tells the application program whether to print in - color or grayscale. (If you print in color and the printer does - not support color, TQt will try to approximate. The document may - take longer to print, but the quality should not be made visibly - poorer.) - - \i fromPage() and toPage() indicate what pages the application - program should print. - - \i paperSource() tells the application progam which paper source - to print from. - - \endlist - - You can of course call these functions to establish defaults - before you ask the user through TQPrinter::setup(). - - Once you start printing, calling newPage() is essential. You will - probably also need to look at the TQPaintDeviceMetrics for the - printer (see the \link simple-application.html#printersimple print - function\endlink in the Application walk-through). In previous versions, - paint tqdevice metrics were valid only after the TQPrinter has been set - up, i.e. after setup() has returned successfully. This is no longer - the case and paint tqdevice metrics can be requested safely before set up. - - If you want to abort the print job, abort() will try its best to - stop printing. It may cancel the entire job or just some of it. - - \omit Need a function to setup() without a dialog (i.e. use defaults). - \endomit - - The TrueType font embedding for TQt's postscript driver uses code - by David Chappell of Trinity College Computing Center. - - \legalese - - Copyright 1995, Trinity College Computing Center. - Written by David Chappell. - - Permission to use, copy, modify, and distribute this software and - its documentation for any purpose and without fee is hereby - granted, provided that the above copyright notice appear in all - copies and that both that copyright notice and this permission - notice appear in supporting documentation. This software is - provided "as is" without express or implied warranty. - - TrueType font support. These functions allow PPR to generate - PostScript fonts from Microsoft compatible TrueType font files. - - The functions in this file do most of the work to convert a - TrueType font to a type 3 PostScript font. - - Most of the material in this file is derived from a program called - "ttf2ps" which L. S. Ng posted to the usenet news group - "comp.sources.postscript". The author did not provide a copyright - notice or indicate any restrictions on use. - - Last revised 11 July 1995. - -*/ - -/*! - \enum TQPrinter::PrinterMode - - This enum describes the mode the printer should work in. It - basically presets a certain resolution and working mode. - - \value ScreenResolution Sets the resolution of the print tqdevice to - the screen resolution. This has the big advantage that the results - obtained when painting on the printer will match more or less - exactly the visible output on the screen. It is the easiest to - use, as font metrics on the screen and on the printer are the - same. This is the default value. ScreenResolution will produce a - lower quality output than HighResolution and should only be used - for drafts. - - \value PrinterResolution Use the physical resolution of the - printer on Windows. On Unix, set the postscript resolution to 72 - dpi. - - \value HighResolution Use printer resolution on windows, set the - resolution of the postscript driver to 600dpi. - - \value Compatible Almost the same as PrinterResolution, but keeps - some peculiarities of the TQt 2.x printer driver. This is useful - for applications ported from TQt 2.x to TQt 3.x. -*/ - -/*! - \enum TQPrinter::Orientation - - This enum type (not to be confused with Orientation) is used - to specify each page's orientation. - - \value Portrait the page's height is greater than its width (the - default). - - \value Landscape the page's width is greater than its height. - - This type interacts with \l TQPrinter::PageSize and - TQPrinter::setFullPage() to determine the final size of the page - available to the application. -*/ - - -/*! - \enum TQPrinter::PageSize - - This enum type specifies what paper size TQPrinter should use. - TQPrinter does not check that the paper size is available; it just - uses this information, together with TQPrinter::Orientation and - TQPrinter::setFullPage(), to determine the printable area (see - TQPaintDeviceMetrics). - - The defined sizes (with setFullPage(TRUE)) are: - - \value A0 841 x 1189 mm This value is not supported on windows. - \value A1 594 x 841 mm This value is not supported on windows. - \value A2 420 x 594 mm - \value A3 297 x 420 mm - \value A4 210 x 297 mm, 8.26 x 11.7 inches - \value A5 148 x 210 mm - \value A6 105 x 148 mm - \value A7 74 x 105 mm - \value A8 52 x 74 mm - \value A9 37 x 52 mm - \value B0 1030 x 1456 mm - \value B1 728 x 1030 mm - \value B10 32 x 45 mm - \value B2 515 x 728 mm - \value B3 364 x 515 mm - \value B4 257 x 364 mm - \value B5 182 x 257 mm, 7.17 x 10.13 inches - \value B6 128 x 182 mm - \value B7 91 x 128 mm - \value B8 64 x 91 mm - \value B9 45 x 64 mm - \value C5E 163 x 229 mm - \value Comm10E 105 x 241 mm, US Common #10 Envelope - \value DLE 110 x 220 mm - \value Executive 7.5 x 10 inches, 191 x 254 mm - \value Folio 210 x 330 mm - \value Ledger 432 x 279 mm - \value Legal 8.5 x 14 inches, 216 x 356 mm - \value Letter 8.5 x 11 inches, 216 x 279 mm - \value Tabloid 279 x 432 mm - \value Custom - \value NPageSize (internal) - - With setFullPage(FALSE) (the default), the metrics will be a bit - smaller; how much depends on the printer in use. -*/ - - -/*! - \enum TQPrinter::PageOrder - - This enum type is used by TQPrinter to tell the application program - how to print. - - \value FirstPageFirst the lowest-numbered page should be printed - first. - - \value LastPageFirst the highest-numbered page should be printed - first. -*/ - -/*! - \enum TQPrinter::ColorMode - - This enum type is used to indicate whether TQPrinter should print - in color or not. - - \value Color print in color if available, otherwise in grayscale. - - \value GrayScale print in grayscale, even on color printers. - Might be a little faster than \c Color. This is the default. -*/ - -/*! - \enum TQPrinter::PaperSource - - This enum type specifies what paper source TQPrinter is to use. - TQPrinter does not check that the paper source is available; it - just uses this information to try and set the paper source. - Whether it will set the paper source depends on whether the - printer has that particular source. - - Note: this is currently only implemented for Windows. - - \value OnlyOne - \value Lower - \value Middle - \value Manual - \value Envelope - \value EnvelopeManual - \value Auto - \value Tractor - \value SmallFormat - \value LargeFormat - \value LargeCapacity - \value Cassette - \value FormSource -*/ - -/*! - \enum TQPrinter::PrintRange - - This enum is used to specify which print range the application - should use to print. - - \value AllPages All pages should be printed - \value Selection Only the selection should be printed. - \value PageRange From page, to page option. - - \sa setPrintRange(), printRange() -*/ - -/*! - \enum TQPrinter::PrinterOption - - This enum describes various printer options that appear in the - printer setup dialog. It is used to enable and disable these - options in the setup dialog. - - \value PrintToFile Describes if print to file should be enabled. - \value PrintSelection Describes if printing selections should be enabled. - \value PrintPageRange Describes if printing page ranges (from, to) should - be enabled - - \sa setOptionEnabled(), isOptionEnabled() -*/ - - -/*! - \fn TQString TQPrinter::printerName() const - - Returns the printer name. This value is initially set to the name - of the default printer. - - \sa setPrinterName() -*/ - -/*! - \fn bool TQPrinter::outputToFile() const - - Returns TRUE if the output should be written to a file, or FALSE - if the output should be sent directly to the printer. The default - setting is FALSE. - - This function is currently only supported under X11 and Mac OS X. - - \sa setOutputToFile(), setOutputFileName() -*/ - -/*! - Specifies whether the output should be written to a file or sent - directly to the printer. - - Will output to a file if \a enable is TRUE, or will output - directly to the printer if \a enable is FALSE. - - This function is currently only supported under X11 and Mac OS X. - - \sa outputToFile(), setOutputFileName() -*/ - -void TQPrinter::setOutputToFile( bool enable ) -{ - if ( state != 0 ) { -#if defined(TQT_CHECK_STATE) - qWarning( "TQPrinter::setOutputToFile: Cannot do this during printing" ); -#endif - return; - } - output_file = enable; -} - - -/*! - \fn TQString TQPrinter::outputFileName() const - - Returns the name of the output file. There is no default file - name. - - \sa setOutputFileName(), setOutputToFile() -*/ - -/*! - Sets the name of the output file to \a fileName. - - Setting a null or empty name (0 or "") disables output to a file, - i.e. calls setOutputToFile(FALSE). Setting a non-empty name - enables output to a file, i.e. calls setOutputToFile(TRUE). - - This function is currently only supported under X11. - - \sa outputFileName(), setOutputToFile() -*/ - -void TQPrinter::setOutputFileName( const TQString &fileName ) -{ - if ( state != 0 ) { -#if defined(TQT_CHECK_STATE) - qWarning("TQPrinter::setOutputFileName: Cannot do this during printing"); -#endif - return; - } - output_filename = fileName; - output_file = !output_filename.isEmpty(); -} - - -/*! - \fn TQString TQPrinter::printProgram() const - - Returns the name of the program that sends the print output to the - printer. - - The default is to return a null string; meaning that TQPrinter will - try to be smart in a system-dependent way. On X11 only, you can - set it to something different to use a specific print program. - - On Windows, this function returns the name of the printer tqdevice - driver. - - \sa setPrintProgram() setPrinterSelectionOption() -*/ - -/*! - Sets the name of the program that should do the print job to \a - printProg. - - On X11, this function sets the program to call with the PostScript - output. On other platforms, it has no effect. - - \sa printProgram() -*/ - -void TQPrinter::setPrintProgram( const TQString &printProg ) -{ - print_prog = printProg; -} - - -/*! - \fn TQString TQPrinter::docName() const - - Returns the document name. - - \sa setDocName() -*/ - -/*! - Sets the document name to \a name. -*/ - -void TQPrinter::setDocName( const TQString &name ) -{ - if ( state != 0 ) { -#if defined(TQT_CHECK_STATE) - qWarning( "TQPrinter::setDocName: Cannot do this during printing" ); -#endif - return; - } - doc_name = name; -} - - -/*! - \fn TQString TQPrinter::creator() const - - Returns the name of the application that created the document. - - \sa setCreator() -*/ - -/*! - Sets the name of the application that created the document to \a - creator. - - This function is only applicable to the X11 version of TQt. If no - creator name is specified, the creator will be set to "TQt" - followed by some version number. - - \sa creator() -*/ - -void TQPrinter::setCreator( const TQString &creator ) -{ - creator_name = creator; -} - - -/*! - \fn Orientation TQPrinter::orientation() const - - Returns the orientation setting. The default value is \c - TQPrinter::Portrait. - - \sa setOrientation() -*/ - -/*! - Sets the print orientation to \a orientation. - - The orientation can be either \c TQPrinter::Portrait or \c - TQPrinter::Landscape. - - The printer driver reads this setting and prints using the - specified orientation. On Windows this setting won't take effect - until the printer dialog is shown (using TQPrinter::setup()). - - Windows only! This option can be changed while printing and will - take effect from the next call to newPage() - - \sa orientation() -*/ - -void TQPrinter::setOrientation( Orientation orientation ) -{ - orient = orientation; -#if defined(TQ_WS_WIN) - reinit(); -#endif -} - - -/*! - \fn PageSize TQPrinter::pageSize() const - - Returns the printer page size. The default value is system-dependent. - - \sa setPageSize() -*/ - - -/*! - Sets the printer page size to \a newPageSize if that size is - supported. The result if undefined if \a newPageSize is not - supported. - - The default page size is system-dependent. - - This function is useful mostly for setting a default value that - the user can override in the print dialog when you call setup(). - - \sa pageSize() PageSize setFullPage() setResolution() -*/ - -void TQPrinter::setPageSize( PageSize newPageSize ) -{ - if ( newPageSize > NPageSize ) { -#if defined(TQT_CHECK_STATE) - qWarning("TQPrinter::SetPageSize: illegal page size %d", newPageSize ); -#endif - return; - } - page_size = newPageSize; -#if defined(TQ_WS_WIN) - reinit(); -#endif -} - -/*! - Sets the page order to \a newPageOrder. - - The page order can be \c TQPrinter::FirstPageFirst or \c - TQPrinter::LastPageFirst. The application programmer is responsible - for reading the page order and printing accordingly. - - This function is useful mostly for setting a default value that - the user can override in the print dialog when you call setup(). - - \bug This value is not kept in sync with the Windows or Mac OS X printer - dialogs. -*/ - -void TQPrinter::setPageOrder( PageOrder newPageOrder ) -{ - page_order = newPageOrder; -#if defined(TQ_WS_WIN) - reinit(); -#endif -} - - -/*! - Returns the current page order. - - The default page order is \c FirstPageFirst. - - \bug This value is not kept in sync with the Windows or Mac OS X printer - dialogs. -*/ - -TQPrinter::PageOrder TQPrinter::pageOrder() const -{ - return page_order; -} - - -/*! - Sets the printer's color mode to \a newColorMode, which can be - either \c Color or \c GrayScale (the default). - - \sa colorMode() -*/ - -void TQPrinter::setColorMode( ColorMode newColorMode ) -{ - color_mode = newColorMode; -#if defined(TQ_WS_WIN) - reinit(); -#endif -} - - -/*! - Returns the current color mode. The default color mode is \c - Color. - - \sa setColorMode() -*/ - -TQPrinter::ColorMode TQPrinter::colorMode() const -{ - return color_mode; -} - - -/*! - \fn int TQPrinter::fromPage() const - - Returns the from-page setting. The default value is 0. - - If fromPage() and toPage() both return 0 this signifies 'print the - whole document'. - - The programmer is responsible for reading this setting and - printing accordingly. - - \sa setFromTo(), toPage() -*/ - -/*! - \fn int TQPrinter::toPage() const - - Returns the to-page setting. The default value is 0. - - If fromPage() and toPage() both return 0 this signifies 'print the - whole document'. - - The programmer is responsible for reading this setting and - printing accordingly. - - \sa setFromTo(), fromPage() -*/ - -/*! - Sets the from-page and to-page settings to \a fromPage and \a - toPage respectively. - - The from-page and to-page settings specify what pages to print. - - If fromPage() and toPage() both return 0 this signifies 'print the - whole document'. - - This function is useful mostly to set a default value that the - user can override in the print dialog when you call setup(). - - \sa fromPage(), toPage(), setMinMax(), setup() -*/ - -void TQPrinter::setFromTo( int fromPage, int toPage ) -{ - if ( state != 0 ) { -#if defined(TQT_CHECK_STATE) - qWarning( "TQPrinter::setFromTo: Cannot do this during printing" ); -#endif - return; - } - from_pg = fromPage; - to_pg = toPage; -} - - -/*! - \fn int TQPrinter::minPage() const - - Returns the min-page setting, i.e. the lowest page number a user - is allowed to choose. The default value is 0. - - \sa maxPage(), setMinMax() setFromTo() -*/ - -/*! - \fn int TQPrinter::maxPage() const - - Returns the max-page setting. A user can't choose a higher page - number than maxPage() when they select a print range. The default - value is 0. - - \sa minPage(), setMinMax() setFromTo() -*/ - -/*! - Sets the min-page and max-page settings to \a minPage and \a - maxPage respectively. - - The min-page and max-page restrict the from-page and to-page - settings. When the printer setup dialog appears, the user cannot - select a from page or a to page that are outside the range - specified by min and max pages. - - \sa minPage(), maxPage(), setFromTo(), setup() -*/ - -void TQPrinter::setMinMax( int minPage, int maxPage ) -{ - min_pg = minPage; - max_pg = maxPage; - if ( from_pg == 0 || from_pg < minPage ) - from_pg = minPage; - if ( to_pg == 0 || to_pg > maxPage ) - to_pg = maxPage; -} - - -/*! - \fn int TQPrinter::numCopies() const - - Returns the number of copies to be printed. The default value is 1. - - This value will return the number of times the application is - required to print in order to match the number specified in the - printer setup dialog. This has been done since some printer - drivers are not capable of buffering up the copies and the - application in those cases have to make an explicit call to the - print code for each copy. - - \sa setNumCopies() -*/ - -/*! - \fn bool TQPrinter::collateCopiesEnabled() const - - \internal - - Returns TRUE if the application should provide the user with the - option of choosing a collated printout; otherwise returns FALSE. - - Collation means that each page is printed in order, i.e. print the - first page, then the second page, then the third page and so on, and - then repeat this sequence for as many copies as have been requested. - If you don't collate you get several copies of the first page, then - several copies of the second page, then several copies of the third - page, and so on. - - \sa setCollateCopiesEnabled() setCollateCopies() collateCopies() -*/ - -/*! - \fn void TQPrinter::setCollateCopiesEnabled(bool enable) - - \internal - - If \a enable is TRUE (the default) the user is given the choice of - whether to print out multiple copies collated in the print dialog. - If \a enable is FALSE, then collateCopies() will be ignored. - - Collation means that each page is printed in order, i.e. print the - first page, then the second page, then the third page and so on, and - then repeat this sequence for as many copies as have been requested. - If you don't collate you get several copies of the first page, then - several copies of the second page, then several copies of the third - page, and so on. - - \sa collateCopiesEnabled() setCollateCopies() collateCopies() -*/ - -/*! - \fn bool TQPrinter::collateCopies() const - - \internal - - Returns TRUE if collation is turned on when multiple copies is selected. - Returns FALSE if it is turned off when multiple copies is selected. - - \sa collateCopiesEnabled() setCollateCopiesEnabled() setCollateCopies() -*/ - -/*! - \internal - - Sets the default value for collation checkbox when the print dialog appears. - If \a on is TRUE, it will enable setCollateCopiesEnabled(). - The default value is FALSE. This value will be changed by what the - user presses in the print dialog. - - \sa collateCopiesEnabled() setCollateCopiesEnabled() collateCopies() -*/ - -void TQPrinter::setCollateCopies(bool on) -{ - if (!collateCopiesEnabled() && on) - setCollateCopiesEnabled(on); - usercolcopies = on; -} - -/*! - Sets the number of copies to be printed to \a numCopies. - - The printer driver reads this setting and prints the specified - number of copies. - - \sa numCopies(), setup() -*/ - -void TQPrinter::setNumCopies( int numCopies ) -{ - ncopies = numCopies; -#if defined(TQ_WS_WIN) - reinit(); -#endif -} - - -/*! - Returns the printer options selection string. This is useful only - if the print command has been explicitly set. - - The default value (a null string) implies that the printer should - be selected in a system-dependent manner. - - Any other value implies that the given value should be used. - - \sa setPrinterSelectionOption() -*/ - -TQString TQPrinter::printerSelectionOption() const -{ - return option_string; -} - - -/*! - Sets the printer to use \a option to select the printer. \a option - is null by default (which implies that TQt should be smart enough - to guess correctly), but it can be set to other values to use a - specific printer selection option. - - If the printer selection option is changed while the printer is - active, the current print job may or may not be affected. - - \sa printerSelectionOption() -*/ - -void TQPrinter::setPrinterSelectionOption( const TQString & option ) -{ - option_string = option; -} - - -/*! - Sets TQPrinter to have the origin of the coordinate system at the - top-left corner of the paper if \a fp is TRUE, or where it thinks - the top-left corner of the printable area is if \a fp is FALSE. - - The default is FALSE. You can (probably) print on (0,0), and - TQPaintDeviceMetrics will report something smaller than the size - indicated by PageSize. (Note that TQPrinter may be wrong on Unix - systems - it does not have perfect knowledge of the physical - printer.) - - If you set \a fp to TRUE, TQPaintDeviceMetrics will report the - exact same size as indicated by \c PageSize, but you cannot print - on all of that - you must take care of the output margins - yourself. - - \sa PageSize setPageSize() TQPaintDeviceMetrics fullPage() -*/ - -void TQPrinter::setFullPage( bool fp ) -{ - to_edge = fp; -} - - -/*! - Returns TRUE if the origin of the printer's coordinate system is - at the corner of the sheet and FALSE if it is at the edge of the - printable area. - - See setFullPage() for details and caveats. - - \sa setFullPage() PageSize TQPaintDeviceMetrics -*/ - -bool TQPrinter::fullPage() const -{ - return to_edge; -} - - -/*! - Requests that the printer prints at \a dpi or as near to \a dpi as - possible. - - This setting affects the coordinate system as returned by, for - example, TQPaintDeviceMetrics and TQPainter::viewport(). - - The value depends on the \c PrintingMode used in the TQPrinter - constructor. By default, the dpi value of the screen is used. - - This function must be called before setup() to have an effect on - all platforms. - - \sa resolution() setPageSize() -*/ - -void TQPrinter::setResolution( int dpi ) -{ - res = dpi; - res_set = TRUE; -} - - -/*! - Returns the current assumed resolution of the printer, as set by - setResolution() or by the printer subsystem. - - \sa setResolution() -*/ - -int TQPrinter::resolution() const -{ - return res; -} - -/*! - Sets the paper source setting to \a source. - - Windows only! This option can be changed while printing and will - take effect from the next call to newPage() - - \sa paperSource() -*/ - -void TQPrinter::setPaperSource( PaperSource source ) -{ - paper_source = source; -#if defined(TQ_WS_WIN) - reinit(); -#endif -} - -/*! - Returns the currently set paper source of the printer. - - \sa setPaperSource() -*/ - -TQPrinter::PaperSource TQPrinter::paperSource() const -{ - return paper_source; -} - -/*! - Sets the default selected page range to be used when the print setup - dialog is opened to \a range. If the PageRange specified by \a range is - currently disabled the function does nothing. - - \sa printRange() -*/ -void TQPrinter::setPrintRange( PrintRange range ) -{ - if( range != AllPages ) - if( range == Selection - && !isOptionEnabled( PrintSelection ) ) - setOptionEnabled( PrintSelection, TRUE ); - else if( range == PageRange - && !isOptionEnabled( PrintPageRange ) ) - setOptionEnabled( PrintPageRange, TRUE ); - d->printRange = range; -} - -/*! - Returns the PageRange of the TQPrinter. After the print setup dialog - has been opened, this function returns the value selected by the user. - - \sa setPrintRange() -*/ -TQPrinter::PrintRange TQPrinter::printRange() const -{ - return d->printRange; -} - -/*! - Enables the printer option with the identifier \a option if \a - enable is TRUE, and disables option \a option if \a enable is FALSE. - - \sa isOptionEnabled() -*/ -void TQPrinter::setOptionEnabled( PrinterOption option, bool enable ) -{ - if( enable ) { - d->printerOptions |= ( 1 << option ); - if( ( option == PrintPageRange ) && min_pg==0 && max_pg==0 ) - max_pg = 9999; - } else { - d->printerOptions &= ( ~( 1 << option ) ); - } -} - -/*! - Returns TRUE if the printer option with identifier \a option is enabled; - otherwise returns FALSE. - - \sa setOptionEnabled() - */ -bool TQPrinter::isOptionEnabled( PrinterOption option ) -{ - return d->printerOptions & ( 1 << option ); -} - -#endif // USE_QT4 - -#endif // TQT_NO_PRINTER - |