kdeprint Library API Documentation

kprinter.h

00001 /* 00002 * This file is part of the KDE libraries 00003 * Copyright (c) 2001 Michael Goffioul <kdeprint@swing.be> 00004 * 00005 * 00006 * This library is free software; you can redistribute it and/or 00007 * modify it under the terms of the GNU Library General Public 00008 * License version 2 as published by the Free Software Foundation. 00009 * 00010 * This library is distributed in the hope that it will be useful, 00011 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00013 * Library General Public License for more details. 00014 * 00015 * You should have received a copy of the GNU Library General Public License 00016 * along with this library; see the file COPYING.LIB. If not, write to 00017 * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 00018 * Boston, MA 02111-1307, USA. 00019 **/ 00020 00021 #ifndef KPRINTER_H 00022 #define KPRINTER_H 00023 00024 #include <qpaintdevice.h> 00025 #include <qprinter.h> 00026 #include <qmap.h> 00027 #include <qstring.h> 00028 #include <qstringlist.h> 00029 #include <qvaluelist.h> 00030 #include <kdemacros.h> 00031 00032 #include <kdeprint/kpreloadobject.h> 00033 00034 class KPrinterImpl; 00035 class KPrintDialogPage; 00036 class KPrinterPrivate; 00037 class DrPageSize; 00038 00087 class KPrinter : public QPaintDevice, public KPReloadObject 00088 { 00089 friend class KPrinterWrapper; 00090 friend class KPrinterImpl; 00091 public: 00092 // Print global settings (set via static functions) 00101 enum StandardPageType { CopiesPage = 0x01, FilesPage = 0x02, Custom = 0x10 }; 00115 enum PageSelectionType { ApplicationSide = 0x01, SystemSide = 0x02 }; 00125 enum ApplicationType { Dialog = 0x00, StandAlone = 0x01, StandAlonePersistent = 0x02 }; 00126 00127 // QPrinter extension 00136 enum PageSetType { AllPages = 0x00, OddPages = 0x01, EvenPages = 0x02 }; 00144 enum CollateType { Collate = 0x00, Uncollate = 0x01 }; 00145 00146 // from QPrinter class 00151 enum ColorMode { GrayScale = QPrinter::GrayScale, Color = QPrinter::Color }; 00156 enum Orientation { Portrait = QPrinter::Portrait, Landscape = QPrinter::Landscape }; 00161 enum PageOrder { FirstPageFirst = QPrinter::FirstPageFirst, LastPageFirst = QPrinter::LastPageFirst }; 00166 enum PageSize 00167 { 00168 A4 = QPrinter::A4, 00169 B5 = QPrinter::B5, 00170 Letter = QPrinter::Letter, 00171 Legal = QPrinter::Legal, 00172 Executive = QPrinter::Executive, 00173 A0 = QPrinter::A0, 00174 A1 = QPrinter::A1, 00175 A2 = QPrinter::A2, 00176 A3 = QPrinter::A3, 00177 A5 = QPrinter::A5, 00178 A6 = QPrinter::A6, 00179 A7 = QPrinter::A7, 00180 A8 = QPrinter::A8, 00181 A9 = QPrinter::A9, 00182 B0 = QPrinter::B0, 00183 B1 = QPrinter::B1, 00184 B10 = QPrinter::B10, 00185 B2 = QPrinter::B2, 00186 B3 = QPrinter::B3, 00187 B4 = QPrinter::B4, 00188 B6 = QPrinter::B6, 00189 B7 = QPrinter::B7, 00190 B8 = QPrinter::B8, 00191 B9 = QPrinter::B9, 00192 C5E = QPrinter::C5E, 00193 Comm10E = QPrinter::Comm10E, 00194 DLE = QPrinter::DLE, 00195 Folio = QPrinter::Folio, 00196 Ledger = QPrinter::Ledger, 00197 Tabloid = QPrinter::Tabloid, 00198 NPageSize = QPrinter::NPageSize 00199 }; 00200 00201 // constructors / destructor 00209 KPrinter(bool restore = true, QPrinter::PrinterMode m = QPrinter::ScreenResolution ); 00213 ~KPrinter(); 00214 00215 // QPrinter interface (+ some extensions) 00219 bool newPage(); 00223 bool abort(); 00227 bool aborted() const; 00231 bool outputToFile() const; 00235 void setOutputToFile(bool); 00239 QString outputFileName() const; 00243 void setOutputFileName(const QString&); 00247 QString docName() const; 00251 void setDocName(const QString&); 00255 QString creator() const; 00259 void setCreator(const QString&); 00263 bool fullPage() const; 00267 void setFullPage(bool); 00271 ColorMode colorMode() const; 00275 void setColorMode(ColorMode); 00279 int numCopies() const; 00283 void setNumCopies(int n); 00287 Orientation orientation() const; 00291 void setOrientation(Orientation); 00295 PageOrder pageOrder() const; 00299 void setPageOrder(PageOrder); 00303 CollateType collate() const; 00307 void setCollate(CollateType type); 00311 int minPage() const; 00315 int maxPage() const; 00319 void setMinMax(int, int); 00328 int fromPage() const KDE_DEPRECATED; 00337 int toPage() const; 00341 void setFromTo(int, int); 00345 PageSize pageSize() const; 00349 void setPageSize(PageSize); 00353 QString printerName() const; 00357 void setPrinterName(const QString&); 00364 QString printProgram() const; 00393 void setPrintProgram(const QString& cmd); 00397 QString printerSelectionOption() const; 00401 void setPrinterSelectionOption(const QString&); 00406 int currentPage() const; 00434 void setCurrentPage(int p = 0); 00438 PageSetType pageSet() const; 00446 bool setup(QWidget *parent = 0, const QString& caption = QString::null, bool forceExpand = false); 00450 QSize margins() const; 00454 void setMargins(QSize m); 00464 QSize realPageSize() const; 00469 void setRealPageSize( QSize p ); 00474 void setRealDrawableArea( const QRect& r ); 00479 QRect realDrawableArea() const; 00480 00481 void margins( uint *top, uint *left, uint *bottom, uint *right ) const; 00482 void setMargins( uint top, uint left, uint bottom, uint right ); 00483 00490 QValueList<int> pageList() const; 00510 void setPreviewOnly(bool on); 00515 bool previewOnly() const; 00524 void setResolution(int dpi); 00530 int resolution() const; 00531 00542 void setUsePrinterResolution( bool on ); 00543 00547 KPrinterImpl* implementation() const; 00555 bool printFiles(const QStringList& files, bool removeafter = false, bool startviewer = true); 00556 00566 static void addDialogPage(KPrintDialogPage* _page); 00573 static void setPageSelection(PageSelectionType _mode); 00579 static PageSelectionType pageSelection(); 00586 static void setApplicationType(ApplicationType type); 00592 static ApplicationType applicationType(); 00599 static void addStandardPage(int p); 00607 static void removeStandardPage(int p); 00614 //static int addPrinterWizard(QWidget *parent = 0); 00615 00646 const QString& option(const QString& key) const; 00655 void setOption(const QString& key, const QString& value); 00660 const QMap<QString,QString>& options() const; 00667 void setOptions(const QMap<QString,QString>& opts); 00674 void initOptions(const QMap<QString,QString>& opts); 00675 00682 QString searchName() const; 00688 void setSearchName(const QString& n); 00693 QString errorMessage() const; 00698 void setErrorMessage(const QString& msg); 00716 bool autoConfigure(const QString& prname = QString::null, QWidget *parent = 0); 00725 void setDocFileName(const QString& filename); 00732 QString docFileName() const; 00740 void setDocDirectory( const QString& dir ); 00747 QString docDirectory() const; 00748 00749 protected: 00750 virtual bool cmd(int, QPainter*, QPDevCmdParam*); 00751 virtual int metric(int) const; 00752 void translateQtOptions(); 00753 void loadSettings(); 00754 void saveSettings(); 00755 void preparePrinting(); 00756 void finishPrinting(); 00757 void reload(); 00758 void init(bool restore = true, QPrinter::PrinterMode m = QPrinter::ScreenResolution); 00759 bool doPreview(const QString& file); 00760 void setRealPageSize(DrPageSize* p); 00761 void setOption( const QString& key, const QString& value, bool broadcast ); 00762 00763 protected: 00764 KPrinterPrivate *d; 00765 }; 00766 00767 //************************************************************************************** 00768 00769 // Utility functions 00770 00771 KPrinter::PageSize pageNameToPageSize(const QString& name); 00772 const char* pageSizeToPageName(KPrinter::PageSize s); 00777 QSize rangeToSize( const QString& ); 00778 00779 #endif
KDE Logo
This file is part of the documentation for kdeprint Library Version 3.2.3.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Sun Oct 10 18:55:55 2004 by doxygen 1.3.7 written by Dimitri van Heesch, © 1997-2003