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


//                 Generated by preSip
//            module kdeprint  version KDE_3_4_0


// 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.


%If ( KDE_3_1_0 -  )

class DrBase
{
%TypeHeaderCode
#include <driver.h>
%End


public:

    enum Type
    {
        Base, 
        Main, 
        ChoiceGroup, 
        Group, 
        String, 
        Integer, 
        Float, 
        List, 
        Boolean
    };

                         DrBase ();
    DrBase::Type         type () const;
    bool                 isOption () const;
    const QString&       get (const QString&) const;
    void                 set (const QString&, const QString&);
    bool                 has (const QString&) const;
    const QString&       name () const;
    void                 setName (const QString&);
    bool                 conflict () const;
    void                 setConflict (bool);
    virtual QString      valueText ();
    virtual QString      prettyText ();
    virtual void         setValueText (const QString&);
//ig     virtual DriverItem*  createItem (DriverItem* /Transfer/, DriverItem* = 0);
    virtual void         setOptions (const QMap<QString,QString>&);
    virtual void         getOptions (QMap<QString,QString>&, bool = 0);
    virtual DrBase*      clone ();

protected:

};  // class DrBase

%End


%If ( KDE_3_1_0 -  )

class DrGroup : DrBase
{
%TypeHeaderCode
#include <driver.h>
%End


public:
                         DrGroup ();
    void                 addOption (DrBase*);
    void                 addGroup (DrGroup*);
    void                 addObject (DrBase*);
    void                 clearConflict ();
    void                 removeOption (const QString&);
    void                 removeGroup (DrGroup*);
    bool                 isEmpty ();
//ig     virtual DriverItem*  createItem (DriverItem* /Transfer/, DriverItem* = 0);
//ig     DrBase*              findOption (const QString&, DrGroup** = 0);
//ig     DrGroup*             findGroup (DrGroup*, DrGroup** = 0);
    void                 setOptions (const QMap<QString,QString>&);
    void                 getOptions (QMap<QString,QString>&, bool = 0);
    DrBase*              clone ();
//ig     const QPtrList<DrGroup>& groups ();
//ig     const QPtrList<DrBase>& options ();

%If ( KDE_3_2_0 -  )
    static QString       groupForOption (const QString&);
%End


protected:
//ig     void                 createTree (DriverItem* /Transfer/);
//ig     void                 flattenGroup (QMap<QString,DrBase*>&, int&);

protected:

};  // class DrGroup

%End


%If ( KDE_3_1_0 -  )

class DrMain : DrGroup
{
%TypeHeaderCode
#include <driver.h>
%End


public:
                         DrMain ();
//ig     DriverItem*          createTreeView (QListView* /Transfer/);
    void                 addConstraint (DrConstraint*);
    int                  checkConstraints ();
    DrPageSize*          findPageSize (const QString&);
    void                 addPageSize (DrPageSize*);
    void                 removeOptionGlobally (const QString&);
    void                 removeGroupGlobally (DrGroup*);
//ig     QMap<QString,DrBase*> flatten ();
    DrMain*              cloneDriver ();

protected:

};  // class DrMain

%End


%If ( KDE_3_1_0 -  )

class DrChoiceGroup : DrGroup
{
%TypeHeaderCode
#include <driver.h>
%End


public:
                         DrChoiceGroup ();
//ig     DriverItem*          createItem (DriverItem* /Transfer/, DriverItem* = 0);

};  // class DrChoiceGroup

%End


%If ( KDE_3_1_0 -  )

class DrStringOption : DrBase
{
%TypeHeaderCode
#include <driver.h>
%End


public:
                         DrStringOption ();
    virtual QString      valueText ();
    virtual void         setValueText (const QString&);

protected:

};  // class DrStringOption

%End


%If ( KDE_3_1_0 -  )

class DrIntegerOption : DrBase
{
%TypeHeaderCode
#include <driver.h>
%End


public:
                         DrIntegerOption ();
    virtual QString      valueText ();
    virtual void         setValueText (const QString&);
    QString              fixedVal ();

protected:

};  // class DrIntegerOption

%End


%If ( KDE_3_1_0 -  )

class DrFloatOption : DrBase
{
%TypeHeaderCode
#include <driver.h>
%End


public:
                         DrFloatOption ();
    virtual QString      valueText ();
    virtual void         setValueText (const QString&);
    QString              fixedVal ();

protected:

};  // class DrFloatOption

%End


%If ( KDE_3_1_0 -  )

class DrListOption : DrBase
{
%TypeHeaderCode
#include <driver.h>
%End


public:
                         DrListOption ();
    void                 addChoice (DrBase*);
//ig     QPtrList<DrBase>*    choices ();
    DrBase*              currentChoice () const;
    DrBase*              findChoice (const QString&);
    void                 setChoice (int);
    virtual QString      valueText ();
    virtual QString      prettyText ();
    virtual void         setValueText (const QString&);
    void                 setOptions (const QMap<QString,QString>&);
    void                 getOptions (QMap<QString,QString>&, bool = 0);
//ig     DriverItem*          createItem (DriverItem* /Transfer/, DriverItem* = 0);
    DrBase*              clone ();

protected:

};  // class DrListOption

%End


%If ( KDE_3_1_0 -  )

class DrBooleanOption : DrListOption
{
%TypeHeaderCode
#include <driver.h>
%End


public:
                         DrBooleanOption ();

};  // class DrBooleanOption

%End


%If ( KDE_3_1_0 -  )

class DrConstraint
{
%TypeHeaderCode
#include <driver.h>
%End


public:
                         DrConstraint (const QString&, const QString&, const QString& = QString ::null , const QString& = QString ::null );
                         DrConstraint (const DrConstraint&);
    bool                 check (DrMain*);

protected:

};  // class DrConstraint

%End


%If ( KDE_3_1_0 -  )

class DrPageSize
{
%TypeHeaderCode
#include <driver.h>
%End


public:
                         DrPageSize (const QString&, int, int, int, int, int, int);
                         DrPageSize (const DrPageSize&);

%If ( KDE_3_2_0 -  )
    float                pageWidth () const;
    float                pageHeight () const;
    float                leftMargin () const;
    float                rightMargin () const;
    float                topMargin () const;
    float                bottomMargin () const;
    QString              pageName () const;
%End

    QSize                pageSize () const;
    QRect                pageRect () const;
    QSize                margins () const;

protected:

public:

%If (  - KDE_3_2_0 )
    QString              name () const;
%End


};  // class DrPageSize

%End

