//
//     Copyright 2006 Jim Bublitz <jbublitz@nwinternet.com>
//     Earlier copyrights 1998 - 2005 Jim Bublitz and/or Phil Thompson
//     may also apply


//                 Generated by preSip
//            module kdeprint  version KDE 3.5.3


// This software is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License as
// published by the Free Software Foundation; either version 2 of
// the License, or (at your option) any later version.
//
// This software is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public
// License along with this library; see the file COPYING.
// If not, write to the Free Software Foundation, Inc.,
// 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.


class KPrinter : QPaintDevice, KPReloadObject
{
%TypeHeaderCode
#include <kprinter.h>
%End


public:

    enum StandardPageType
    {
        CopiesPage, 
        FilesPage, 
        Custom
    };


    enum PageSelectionType
    {
        ApplicationSide, 
        SystemSide
    };


    enum ApplicationType
    {
        Dialog, 
        StandAlone, 
        StandAlonePersistent
    };


    enum PageSetType
    {
        AllPages, 
        OddPages, 
        EvenPages
    };


    enum CollateType
    {
        Collate, 
        Uncollate
    };


    enum ColorMode
    {
        GrayScale, 
        Color
    };


    enum Orientation
    {
        Portrait, 
        Landscape
    };


    enum PageOrder
    {
        FirstPageFirst, 
        LastPageFirst
    };


    enum PageSize
    {
        A4, 
        B5, 
        Letter, 
        Legal, 
        Executive, 
        A0, 
        A1, 
        A2, 
        A3, 
        A5, 
        A6, 
        A7, 
        A8, 
        A9, 
        B0, 
        B1, 
        B10, 
        B2, 
        B3, 
        B4, 
        B6, 
        B7, 
        B8, 
        B9, 
        C5E, 
        Comm10E, 
        DLE, 
        Folio, 
        Ledger, 
        Tabloid, 
        NPageSize
    };

                         KPrinter (bool = 1, QPrinter::PrinterMode = QPrinter ::ScreenResolution );
    bool                 newPage ();
    bool                 abort ();
    bool                 aborted () const;
    bool                 outputToFile () const;
    void                 setOutputToFile (bool);
    QString              outputFileName () const;
    void                 setOutputFileName (const QString&);
    QString              docName () const;
    void                 setDocName (const QString&);
    QString              creator () const;
    void                 setCreator (const QString&);
    bool                 fullPage () const;
    void                 setFullPage (bool);
    KPrinter::ColorMode  colorMode () const;
    void                 setColorMode (KPrinter::ColorMode);
    int                  numCopies () const;
    void                 setNumCopies (int);
    KPrinter::Orientation orientation () const;
    void                 setOrientation (KPrinter::Orientation);
    KPrinter::PageOrder  pageOrder () const;
    void                 setPageOrder (KPrinter::PageOrder);
    KPrinter::CollateType collate () const;
    void                 setCollate (KPrinter::CollateType);
    int                  minPage () const;
    int                  maxPage () const;
    void                 setMinMax (int, int);
    int                  fromPage () const;
    int                  toPage () const;
    void                 setFromTo (int, int);
    KPrinter::PageSize   pageSize () const;
    void                 setPageSize (KPrinter::PageSize);
    QString              printerName () const;
    void                 setPrinterName (const QString&);
    QString              printProgram () const;
    void                 setPrintProgram (const QString&);
    QString              printerSelectionOption () const;
    void                 setPrinterSelectionOption (const QString&);
    int                  currentPage () const;
    void                 setCurrentPage (int = 0);
    KPrinter::PageSetType pageSet () const;
    bool                 setup (QWidget* /Transfer/ = 0, const QString& = QString ::null , bool = 0);
    QSize                margins () const;
    void                 setMargins (QSize);
    QSize                realPageSize () const;
    void                 setRealPageSize (QSize);

%If ( KDE_3_1_0 -  )
    void                 setRealDrawableArea (const QRect&);
    QRect                realDrawableArea () const;
    void                 margins (uint*, uint*, uint*, uint*) const /PyName=marginsAsInts/;

%If ( KDE_3_2_0 -  )
    void                 setMargins (uint, uint, uint, uint);
%End

%End

    QValueList<int>      pageList () const;
    void                 setPreviewOnly (bool);
    bool                 previewOnly () const;

%If ( KDE_3_1_0 -  )
    void                 setResolution (int);
    int                  resolution () const;

%If ( KDE_3_2_0 -  )
    void                 setUsePrinterResolution (bool);
%End

%End

//ig     KPrinterImpl*        implementation () const;
    bool                 printFiles (const QStringList&, bool = 0, bool = 1);
    static void          addDialogPage (KPrintDialogPage*);
    static void          setPageSelection (KPrinter::PageSelectionType);
    static KPrinter::PageSelectionType pageSelection ();
    static void          setApplicationType (KPrinter::ApplicationType);
    static KPrinter::ApplicationType applicationType ();
    static void          addStandardPage (int);
    static void          removeStandardPage (int);
    const QString&       option (const QString&) const;
    void                 setOption (const QString&, const QString&);
    const QMap<QString,QString>& options () const;
    void                 setOptions (const QMap<QString,QString>&);
    void                 initOptions (const QMap<QString,QString>&);
    QString              searchName () const;
    void                 setSearchName (const QString&);
    QString              errorMessage () const;
    void                 setErrorMessage (const QString&);
    bool                 autoConfigure (const QString& = QString ::null , QWidget* /Transfer/ = 0);
    void                 setDocFileName (const QString&);
    QString              docFileName () const;

%If ( KDE_3_1_0 -  )
    void                 setDocDirectory (const QString&);
    QString              docDirectory () const;
%End


protected:
//ig     virtual bool         cmd (int, QPainter*, QPDevCmdParam*);
    virtual int          metric (int) const;
    void                 translateQtOptions ();
    void                 loadSettings ();
    void                 saveSettings ();
    void                 preparePrinting ();
    void                 finishPrinting ();
    void                 reload ();
    void                 init (bool = 1, QPrinter::PrinterMode = QPrinter ::ScreenResolution );

%If ( KDE_3_1_0 -  )
    bool                 doPreview (const QString&);

%If ( KDE_3_2_0 -  )
//ig     void                 setRealPageSize (DrPageSize*);
    void                 setOption (const QString&, const QString&, bool);
%End

%End


protected:

};  // class KPrinter

KPrinter::PageSize   pageNameToPageSize (const QString&);
const char*          pageSizeToPageName (KPrinter::PageSize);
//ig QSize                rangeToSize (const QString&);
