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


//                 Generated by preSip
//            module kdecore  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.


%If ( KDE_3_2_0 -  )

class KConfigSkeletonItem
{
%TypeHeaderCode
#include <typeinfo>
#include <kconfigskeleton.h>
%End


public:
    typedef QValueList<KConfigSkeletonItem*> List;
//ig     typedef QDict<KConfigSkeletonItem> Dict;
//ig     typedef QDictIterator<KConfigSkeletonItem> DictIterator;
                         KConfigSkeletonItem (const QString&, const QString&);
    void                 setGroup (const QString&);
    QString              group () const;
    void                 setKey (const QString&);
    QString              key () const;
    void                 setName (const QString&);
    QString              name () const;
    void                 setLabel (const QString&);
    QString              label () const;
    void                 setWhatsThis (const QString&);
    QString              whatsThis () const;
    virtual void         readConfig (KConfig*)  = 0;
    virtual void         writeConfig (KConfig*)  = 0;
    virtual void         readDefault (KConfig*)  = 0;
    virtual void         setProperty (const QVariant&)  = 0;
    virtual QVariant     property () const = 0;
    virtual QVariant     minValue () const;
    virtual QVariant     maxValue () const;
    virtual void         setDefault ()  = 0;
    virtual void         swapDefault ()  = 0;
    bool                 isImmutable () const;

protected:
    void                 readImmutability (KConfig*);

//force
%ConvertToSubClassCode
    if (dynamic_cast<KConfigSkeleton::ItemBool*>(sipCpp))
        sipClass =  sipClass_KConfigSkeleton_ItemBool;
    else if (dynamic_cast<KConfigSkeleton::ItemColor*>(sipCpp))
        sipClass = sipClass_KConfigSkeleton_ItemColor;
    else if (dynamic_cast<KConfigSkeleton::ItemDateTime*>(sipCpp))
        sipClass = sipClass_KConfigSkeleton_ItemDateTime;
    else if (dynamic_cast<KConfigSkeleton::ItemDouble*>(sipCpp))
        sipClass = sipClass_KConfigSkeleton_ItemDouble;
    else if (dynamic_cast<KConfigSkeleton::ItemEnum*>(sipCpp))
        sipClass = sipClass_KConfigSkeleton_ItemEnum;
    else if (dynamic_cast<KConfigSkeleton::ItemFont*>(sipCpp))
        sipClass = sipClass_KConfigSkeleton_ItemFont;
    else if (dynamic_cast<KConfigSkeleton::ItemInt*>(sipCpp))
        sipClass = sipClass_KConfigSkeleton_ItemInt;
    else if (dynamic_cast<KConfigSkeleton::ItemInt64*>(sipCpp))
        sipClass = sipClass_KConfigSkeleton_ItemInt64;
    else if (dynamic_cast<KConfigSkeleton::ItemIntList*>(sipCpp))
        sipClass = sipClass_KConfigSkeleton_ItemIntList;
    else if (dynamic_cast<KConfigSkeleton::ItemLong*>(sipCpp))
        sipClass = sipClass_KConfigSkeleton_ItemLong;
    else if (dynamic_cast<KConfigSkeleton::ItemPassword*>(sipCpp))
        sipClass = sipClass_KConfigSkeleton_ItemPassword;
    else if (dynamic_cast<KConfigSkeleton::ItemPath*>(sipCpp))
        sipClass = sipClass_KConfigSkeleton_ItemPath;
    else if (dynamic_cast<KConfigSkeleton::ItemPoint*>(sipCpp))
        sipClass = sipClass_KConfigSkeleton_ItemPoint;
    else if (dynamic_cast<KConfigSkeleton::ItemProperty*>(sipCpp))
        sipClass = sipClass_KConfigSkeleton_ItemProperty;
    else if (dynamic_cast<KConfigSkeleton::ItemRect*>(sipCpp))
        sipClass = sipClass_KConfigSkeleton_ItemRect;
    else if (dynamic_cast<KConfigSkeleton::ItemSize*>(sipCpp))
        sipClass = sipClass_KConfigSkeleton_ItemSize;
    else if (dynamic_cast<KConfigSkeleton::ItemString*>(sipCpp))
        sipClass = sipClass_KConfigSkeleton_ItemString;
    else if (dynamic_cast<KConfigSkeleton::ItemStringList*>(sipCpp))
        sipClass = sipClass_KConfigSkeleton_ItemStringList;
    else if (dynamic_cast<KConfigSkeleton::ItemUInt*>(sipCpp))
        sipClass = sipClass_KConfigSkeleton_ItemUInt;
    else if (dynamic_cast<KConfigSkeleton::ItemUInt64*>(sipCpp))
        sipClass = sipClass_KConfigSkeleton_ItemUInt64;
    else if (dynamic_cast<KConfigSkeleton::ItemULong*>(sipCpp))
        sipClass = sipClass_KConfigSkeleton_ItemULong;
    else
        sipClass = NULL;
%End
//end

};  // class KConfigSkeletonItem

%End


%If ( KDE_3_2_0 -  )

class KConfigSkeleton
{
%TypeHeaderCode
#include <sipkdecorelonglong.h>
#include <sipkdecoreulonglong.h>
#include <kconfigskeleton.h>
typedef QValueList<int> IntList;
%End


public:

    class ItemPassword : KConfigSkeleton::ItemString
    {

    public:
                             ItemPassword (const QString&, const QString&, QString&, const QString& = QString ::fromLatin1 ("" ));

    };  // class ItemPassword


public:

    class ItemPath : KConfigSkeleton::ItemString
    {

    public:
                             ItemPath (const QString&, const QString&, QString&, const QString& = QString ::null );

    };  // class ItemPath


public:

    class ItemEnum : KConfigSkeleton::ItemInt
    {

    public:

        class Choice
        {

        public:
            QString              name;
            QString              label;
            QString              whatsThis;

        };  // class Choice


    public:
                             ItemEnum (const QString&, const QString&, int, const QValueList<KConfigSkeleton::ItemEnum::Choice>&, int = 0) [(const QString&, const QString&, int&, const QValueList<KConfigSkeleton::ItemEnum::Choice>&, int = 0)];
%MethodCode
//takes group | (QString) | key | (QString) | reference | (int) | choices | (QValueList<KConfigSkeleton::ItemEnum::Choice>) |defaultValue | (int = 1)

    class PyItemEnum : public KConfigSkeleton::ItemEnum
    {
    public:
        PyItemEnum (const QString& group, const QString& key, int& val, const QValueList<KConfigSkeleton::ItemEnum::Choice>& choices, int defaultValue = 0) :
            KConfigSkeleton::ItemEnum(group, key, this->value, choices, defaultValue)
        {
            value = val;
        };

    private:
        int value;
    };

    Py_BEGIN_ALLOW_THREADS
    sipCpp = (sipKConfigSkeleton_ItemEnum *) new PyItemEnum (*a0, *a1, a2, *a3, a4);
    Py_END_ALLOW_THREADS
%End

        QValueList<KConfigSkeleton::ItemEnum::Choice> choices () const;
        void                 readConfig (KConfig*);
        void                 writeConfig (KConfig*);

    public:
//force
        void                 setValue (const int&);
        int                  value ();
        virtual void         setDefaultValue (const int&);
        virtual void         setDefault ();
        void                 swapDefault ();
//end

    };  // class ItemEnum


public:

%If ( KDE_3_4_0 -  )

    class ItemPathList : KConfigSkeleton::ItemStringList
    {

    public:
                             ItemPathList (const QString&, const QString&, QStringList&, const QStringList& = QStringList ());
        void                 readConfig (KConfig*);
        void                 writeConfig (KConfig*);

    };  // class ItemPathList


public:
%End


public:
                         KConfigSkeleton (const QString& = QString ::null );
                         KConfigSkeleton (KSharedConfig::Ptr);
    void                 setDefaults ();
    void                 readConfig ();
    void                 writeConfig ();
    void                 setCurrentGroup (const QString&);
    QString              currentGroup ();
    void                 addItem (KConfigSkeletonItem*, const QString& = QString ::null );
    ItemString*          addItemString (const QString&, QString&, const QString& = QString ::fromLatin1 ("" ), const QString& = QString ::null );
    KConfigSkeleton::ItemPassword* addItemPassword (const QString&, QString&, const QString& = QString ::fromLatin1 ("" ), const QString& = QString ::null );
    KConfigSkeleton::ItemPath* addItemPath (const QString&, QString&, const QString& = QString ::fromLatin1 ("" ), const QString& = QString ::null );
    ItemProperty*        addItemProperty (const QString&, QVariant&, const QVariant& = QVariant (), const QString& = QString ::null );
    ItemBool*            addItemBool (const QString&, bool&, bool = 0, const QString& = QString ::null );
%MethodCode
//takes name | (QString) | value | (bool) | defaultValue | (bool) | key | (QString = QString::null)

    class PyItemBool : public KConfigSkeleton::ItemBool
    {
    public:
        PyItemBool (const QString &group, const QString &key, bool val, bool defaultValue = 0) :
            KConfigSkeleton::ItemBool (group, key, this->value, defaultValue)
        {
            value = val;
        }

    private:
        bool value;
    };

    Py_BEGIN_ALLOW_THREADS
    sipRes = new PyItemBool (sipCpp->currentGroup(), a3->isNull() ? *a0 : *a3, a1, a2);
    sipCpp->addItem(sipRes, *a0);
    Py_END_ALLOW_THREADS
%End

    ItemInt*             addItemInt (const QString&, int&, int = 0, const QString& = QString ::null );
%MethodCode
//takes name | (QString) | value | (int) | defaultValue | (int) | key | (QString = QString::null)

    class PyItemInt : public KConfigSkeleton::ItemInt
    {
    public:
        PyItemInt(const QString &group, const QString &key, int val, int defaultValue=0) :
            KConfigSkeleton::ItemInt (group, key, this->value, defaultValue)
        {
            value = val;
        }

    private:
        int value;
    };

    Py_BEGIN_ALLOW_THREADS
    sipRes = new PyItemInt(sipCpp->currentGroup(), a3->isNull() ? *a0 : *a3, a1, a2);
    sipCpp->addItem(sipRes, *a0);
    Py_END_ALLOW_THREADS
%End

    ItemUInt*            addItemUInt (const QString&, uint&, uint = 0, const QString& = QString ::null );
%MethodCode
//takes name | (QString) | value | (uint) | defaultValue | (uint) | key | (QString = QString::null)

    class PyItemUInt : public KConfigSkeleton::ItemUInt
    {
    public:
        PyItemUInt(const QString &group, const QString &key, uint val, uint defaultValue = 0) :
            KConfigSkeleton::ItemUInt (group, key, this->value, defaultValue)
        {
            value = val;
        }

    private:
        uint value;
    };

    Py_BEGIN_ALLOW_THREADS
    sipRes = new PyItemUInt(sipCpp->currentGroup(), a3->isNull() ? *a0 : *a3, a1, a2);
    sipCpp->addItem(sipRes, *a0);
    Py_END_ALLOW_THREADS
%End

    ItemLong*            addItemLong (const QString&, long&, long = 0, const QString& = QString ::null );
%MethodCode
//takes name | (QString) | value | (long) | defaultValue | (long) | key | (QString = QString::null)

    class PyItemLong : public KConfigSkeleton::ItemLong
    {
    public:
        PyItemLong(const QString &group, const QString &key, long val, long defaultValue=0) :
            KConfigSkeleton::ItemLong (group, key, this->value, defaultValue)
        {
            value = val;
        }

    private:
        long value;
    };

    Py_BEGIN_ALLOW_THREADS
    sipRes = new PyItemLong(sipCpp->currentGroup(), a3->isNull() ? *a0 : *a3, a1, a2);
    sipCpp->addItem(sipRes, *a0);
    Py_END_ALLOW_THREADS
%End

    ItemULong*           addItemULong (const QString&, ulong&, ulong = 0, const QString& = QString ::null );
%MethodCode
//takes name | (QString) | value | (ulong) | defaultValue | (ulong) | key | (QString = QString::null)

    class PyItemULong : public KConfigSkeleton::ItemULong
    {
    public:
        PyItemULong(const QString &group, const QString &key, ulong val, ulong defaultValue = 0) :
            KConfigSkeleton::ItemULong (group, key, this->value, defaultValue)
        {
            value = val;
        }

    private:
        ulong value;
    };

    Py_BEGIN_ALLOW_THREADS
    sipRes = new PyItemULong(sipCpp->currentGroup(), a3->isNull() ? *a0 : *a3, a1, a2);
    sipCpp->addItem(sipRes, *a0);
    Py_END_ALLOW_THREADS
%End

    KConfigSkeleton::ItemInt64* addItemInt64 (const QString&, longlong&, longlong = 0, const QString& = QString ::null );
    KConfigSkeleton::ItemUInt64* addItemUInt64 (const QString&, ulonglong&, ulonglong = 0, const QString& = QString ::null );
    ItemDouble*          addItemDouble (const QString&, double&, double = 0.0, const QString& = QString ::null );
%MethodCode
//takes name | (QString) | value | (double) | defaultValue | (double) | key | (QString = QString::null)

    class PyItemDouble : public KConfigSkeleton::ItemDouble
    {
    public:
        PyItemDouble(const QString &group, const QString &key, double val, double defaultValue=0.0) :
            KConfigSkeleton::ItemDouble(group, key, this->value, defaultValue)
        {
            value = val;
        };

    private:
        double value;
    };

    Py_BEGIN_ALLOW_THREADS
    sipRes = new PyItemDouble(sipCpp->currentGroup(), a3->isNull() ? *a0 : *a3, a1, a2);
    sipCpp->addItem(sipRes, *a0);
    Py_END_ALLOW_THREADS
%End

    ItemColor*           addItemColor (const QString&, QColor&, const QColor& = QColor (128 ,128 ,128 ), const QString& = QString ::null );
    ItemFont*            addItemFont (const QString&, QFont&, const QFont& = KGlobalSettings ::generalFont (), const QString& = QString ::null );
    ItemRect*            addItemRect (const QString&, QRect&, const QRect& = QRect (), const QString& = QString ::null );
    ItemPoint*           addItemPoint (const QString&, QPoint&, const QPoint& = QPoint (), const QString& = QString ::null );
    ItemSize*            addItemSize (const QString&, QSize&, const QSize& = QSize (), const QString& = QString ::null );
    ItemDateTime*        addItemDateTime (const QString&, QDateTime&, const QDateTime& = QDateTime (), const QString& = QString ::null );
    KConfigSkeleton::ItemStringList* addItemStringList (const QString&, QStringList&, const QStringList& = QStringList (), const QString& = QString ::null );
    KConfigSkeleton::ItemIntList* addItemIntList (const QString&, QValueList<int>&, const QValueList<int>& = IntList (), const QString& = QString ::null );
%MethodCode
//returns a Python list of int
//takes name | (QString) | reference | (a Python list of int) | defaultValue | (a Python list of int = []) | key | (QString = QString::null)
    if (a2 == NULL) *(QValueList<int> *)a2 = QValueList<int>();
    Py_BEGIN_ALLOW_THREADS
    sipRes = sipCpp->addItemIntList (*a0, *a1, *a2, *a3);
    Py_END_ALLOW_THREADS
%End

    KConfig*             config () const;
    SIP_PYLIST           items () const [KConfigSkeletonItem::List ()];
%MethodCode
//returns (a Python list of Items)

    KConfigSkeletonItem::List list;

    Py_BEGIN_ALLOW_THREADS
    list = sipCpp->items ();
    Py_END_ALLOW_THREADS

    int n = list.count ();
    if (n > 0)
        for (int i = 0; i < n; i++)
            PyList_Append (sipRes, sipConvertFromInstance (&(list [i]), sipClass_KConfigSkeletonItem, NULL));
%End

    bool                 isImmutable (const QString&);
    KConfigSkeletonItem* findItem (const QString&);
    bool                 useDefaults (bool);

protected:
    virtual void         usrUseDefaults (bool);
    virtual void         usrSetDefaults ();
    virtual void         usrReadConfig ();
    virtual void         usrWriteConfig ();

public:
//force

    class ItemString : KConfigSkeletonItem
    {

    public:

        enum Type
        {
            Normal, 
            Password, 
            Path
        };

                             ItemString (const QString&, const QString&, QString&, const QString& = QString ::fromLatin1 ("" ), KConfigSkeleton::ItemString::Type = KConfigSkeleton ::ItemString ::Normal );
        void                 setValue (const QString&);
        QString&             value ();
        virtual void         setDefaultValue (const QString&);
        virtual void         setDefault ();
        void                 swapDefault ();
        void                 writeConfig (KConfig*);
        void                 readConfig (KConfig*);
        void                 setProperty (const QVariant&);
        QVariant             property () const;

    };  // class ItemString


public:
//end

public:
//force

    class ItemProperty : KConfigSkeletonItem
    {

    public:
                             ItemProperty (const QString&, const QString&, QVariant, QVariant = 0) [(const QString&, const QString&, QVariant&, QVariant = 0)];
%MethodCode
//takes group | (QString) | key | (QString) | reference | (QVariant) | defaultValue | (QVariant = 0)
    Py_BEGIN_ALLOW_THREADS
    sipCpp = (sipKConfigSkeleton_ItemProperty *) new KConfigSkeleton::ItemProperty (*a0, *a1, *a2, *a3);
    Py_END_ALLOW_THREADS
%End

        void                 setValue (const QVariant&);
        QVariant&            value ();
        virtual void         setDefaultValue (const QVariant&);
        virtual void         setDefault ();
        void                 swapDefault ();
        void                 writeConfig (KConfig*);
        void                 readConfig (KConfig*);
        void                 setProperty (const QVariant&);
        QVariant             property () const;

    };  // class ItemProperty


public:
//end

public:
//force

    class ItemBool : KConfigSkeletonItem
    {

    public:
                             ItemBool (const QString&, const QString&, bool, bool = 1) [(const QString&, const QString&, bool&, bool = 1)];
%MethodCode
//takes group | (QString) | key | (QString) | reference | (bool) | defaultValue | (bool = 1)

    class PyItemBool : public KConfigSkeleton::ItemBool
    {
    public:
        PyItemBool(const QString &group, const QString &key, bool val, bool defaultValue = false) :
            KConfigSkeleton::ItemBool(group, key, this->value, defaultValue)
        {
            value = val;
        };

    private:
        bool value;
    };

    Py_BEGIN_ALLOW_THREADS
    sipCpp = (sipKConfigSkeleton_ItemBool *) new PyItemBool (*a0, *a1, a2);
    Py_END_ALLOW_THREADS
%End

        void                 setValue (const bool&);
        bool                 value ();
        virtual void         setDefaultValue (const bool&);
        virtual void         setDefault ();
        void                 swapDefault ();
        void                 writeConfig (KConfig*);
        void                 readConfig (KConfig*);
        void                 setProperty (const QVariant&);
        QVariant             property () const;

    };  // class ItemBool


public:
//end

public:
//force

    class ItemInt : KConfigSkeletonItem
    {

    public:
                             ItemInt (const QString&, const QString&, int, int = 1) [(const QString&, const QString&, int&, int = 1)];
%MethodCode
//takes group | (QString) | key | (QString) | reference | (int) | defaultValue | (int = 1)

    class PyItemInt : public KConfigSkeleton::ItemInt
    {
    public:
        PyItemInt(const QString &group, const QString &key, int val, int defaultValue = 0) :
            KConfigSkeleton::ItemInt(group, key, this->value, defaultValue)
        {
            value = val;
        };

    private:
        int value;
    };

    Py_BEGIN_ALLOW_THREADS
    sipCpp = (sipKConfigSkeleton_ItemInt *) new PyItemInt (*a0, *a1, a2);
    Py_END_ALLOW_THREADS
%End

        void                 setValue (const int&);
        int                  value ();
        virtual void         setDefaultValue (const int&);
        virtual void         setDefault ();
        void                 swapDefault ();
        void                 writeConfig (KConfig*);
        void                 readConfig (KConfig*);
        void                 setProperty (const QVariant&);
        QVariant             property () const;
        QVariant             minValue () const;
        QVariant             maxValue () const;
        void                 setMinValue (int);
        void                 setMaxValue (int);

    };  // class ItemInt


public:
//end

public:
//force

    class ItemInt64 : KConfigSkeletonItem
    {

    public:
                             ItemInt64 (const QString&, const QString&, longlong&, longlong = 0);
%MethodCode
//takes group | (QString) | key | (QString) | reference | (longlong) | defaultValue | (longlong = 0)

    class PyItemInt64 : public KConfigSkeleton::ItemInt64
    {
    public:
        PyItemInt64(const QString &group, const QString &key, Q_INT64 val, Q_INT64 defaultValue=0) :
            KConfigSkeleton::ItemInt64(group, key, this->value, defaultValue)
        {
            value = val;
        };

    private:
        Q_INT64 value;
    };

    Py_BEGIN_ALLOW_THREADS
    sipCpp = (sipKConfigSkeleton_ItemInt64 *) new PyItemInt64 (*a0, *a1, *a2, *a3);
    Py_END_ALLOW_THREADS
%End

        void                 setValue (const longlong&);
        longlong&            value ();
        virtual void         setDefaultValue (const longlong&);
        virtual void         setDefault ();
        void                 swapDefault ();
        void                 writeConfig (KConfig*);
        void                 readConfig (KConfig*);
        void                 setProperty (const QVariant&);
        QVariant             property () const;
        QVariant             minValue () const;
        QVariant             maxValue () const;
        void                 setMinValue (longlong);
        void                 setMaxValue (longlong);

    };  // class ItemInt64


public:
//end

public:
//force

    class ItemUInt : KConfigSkeletonItem
    {

    public:
                             ItemUInt (const QString&, const QString&, uint, uint = 0) [(const QString&, const QString&, uint&, uint = 0)];
%MethodCode
//takes group | (QString) | key | (QString) | reference | (uint) | defaultValue | (uint = 1)

    class PyItemUInt : public KConfigSkeleton::ItemUInt
    {
    public:
        PyItemUInt(const QString &group, const QString &key, uint val, uint defaultValue = 0) :
            KConfigSkeleton::ItemUInt(group, key, this->value, defaultValue)
        {
            value = val;
        };

    private:
        uint value;
    };

    Py_BEGIN_ALLOW_THREADS
    sipCpp = (sipKConfigSkeleton_ItemUInt *) new PyItemUInt (*a0, *a1, a2);
    Py_END_ALLOW_THREADS
%End

        void                 setValue (const uint&);
        uint                 value ();
        virtual void         setDefaultValue (const uint&);
        virtual void         setDefault ();
        void                 swapDefault ();
        void                 writeConfig (KConfig*);
        void                 readConfig (KConfig*);
        void                 setProperty (const QVariant&);
        QVariant             property () const;
        QVariant             minValue () const;
        QVariant             maxValue () const;
        void                 setMinValue (uint);
        void                 setMaxValue (uint);

    };  // class ItemUInt


public:

public:

    class ItemLong : KConfigSkeletonItem
    {

    public:
                             ItemLong (const QString&, const QString&, long&, long = 0) [(const QString&, const QString&, long&, long = 0)];
%MethodCode
//takes group | (QString) | key | (QString) | reference | (long) | defaultValue | (long = 1)

    class PyItemLong : public KConfigSkeleton::ItemLong
    {
    public:
        PyItemLong(const QString &group, const QString &key, long val, long defaultValue = 0) :
            KConfigSkeleton::ItemLong(group, key, this->value, defaultValue)
        {
            value = val;
        };

    private:
        long value;
    };

    Py_BEGIN_ALLOW_THREADS
    sipCpp = (sipKConfigSkeleton_ItemLong *) new PyItemLong (*a0, *a1, a2);
    Py_END_ALLOW_THREADS
%End

        void                 setValue (const long&);
        long                 value ();
        virtual void         setDefaultValue (const long&);
        virtual void         setDefault ();
        void                 swapDefault ();
        void                 writeConfig (KConfig*);
        void                 readConfig (KConfig*);
        void                 setProperty (const QVariant&);
        QVariant             property () const;
        QVariant             minValue () const;
        QVariant             maxValue () const;
        void                 setMinValue (long);
        void                 setMaxValue (long);

    };  // class ItemLong


public:
//end

public:
//force

    class ItemULong : KConfigSkeletonItem
    {

    public:
                             ItemULong (const QString&, const QString&, ulong, ulong = 0) [(const QString&, const QString&, ulong&, ulong = 0)];
%MethodCode
//takes group | (QString) | key | (QString) | reference | (ulong) | defaultValue | (ulong = 1)

    class PyItemULong : public KConfigSkeleton::ItemULong
    {
    public:
        PyItemULong(const QString &group, const QString &key, ulong val, ulong defaultValue = 0) :
            KConfigSkeleton::ItemULong(group, key, this->value, defaultValue)
        {
            value = val;
        };

    private:
        ulong value;
    };

    Py_BEGIN_ALLOW_THREADS
    sipCpp = (sipKConfigSkeleton_ItemULong *) new PyItemULong (*a0, *a1, a2);
    Py_END_ALLOW_THREADS
%End

        void                 setValue (const ulong&);
        ulong                value ();
        virtual void         setDefaultValue (const ulong&);
        virtual void         setDefault ();
        void                 swapDefault ();
        void                 writeConfig (KConfig*);
        void                 readConfig (KConfig*);
        void                 setProperty (const QVariant&);
        QVariant             property () const;
        QVariant             minValue () const;
        QVariant             maxValue () const;
        void                 setMinValue (ulong);
        void                 setMaxValue (ulong);

    };  // class ItemULong


public:
//end

public:
//force

    class ItemUInt64 : KConfigSkeletonItem
    {

    public:
                             ItemUInt64 (const QString&, const QString&, ulonglong&, ulonglong = 0);
%MethodCode
//takes group | (QString) | key | (QString) | reference | (ulonglong) | defaultValue | (ulonglong = 0)

    class PyItemUInt64 : public KConfigSkeleton::ItemUInt64
    {
    public:
        PyItemUInt64(const QString &group, const QString &key, Q_UINT64 val, Q_UINT64 defaultValue = 0) :
            KConfigSkeleton::ItemUInt64(group, key, this->value, defaultValue)
        {
            value = val;
        };

    private:
        Q_UINT64 value;
    };

    Py_BEGIN_ALLOW_THREADS
    sipCpp = (sipKConfigSkeleton_ItemUInt64 *) new PyItemUInt64 (*a0, *a1, *a2, *a3);
    Py_END_ALLOW_THREADS
%End

        void                 setValue (const ulonglong&);
        ulonglong            value ();
        virtual void         setDefaultValue (const ulonglong&);
        virtual void         setDefault ();
        void                 swapDefault ();
        void                 writeConfig (KConfig*);
        void                 readConfig (KConfig*);
        void                 setProperty (const QVariant&);
        QVariant             property () const;
        QVariant             minValue () const;
        QVariant             maxValue () const;
        void                 setMinValue (ulonglong);
        void                 setMaxValue (ulonglong);

    };  // class ItemUInt64


public:
//end

public:
//force

    class ItemDouble : KConfigSkeletonItem
    {

    public:
                             ItemDouble (const QString&, const QString&, double, double = 0) [(const QString&, const QString&, double&, double = 0)];
%MethodCode
//takes group | (QString) | key | (QString) | reference | (double) | defaultValue | (double = 0)
    class PyItemDouble : public KConfigSkeleton::ItemDouble
    {
    public:
        PyItemDouble(const QString &group, const QString &key, double val, double defaultValue=0.0) :
            KConfigSkeleton::ItemDouble(group, key, this->value, defaultValue)
        {
            value = val;
        };

    private:
        double value;
    };

    Py_BEGIN_ALLOW_THREADS
    sipCpp = (sipKConfigSkeleton_ItemDouble *) new PyItemDouble (*a0, *a1, a2, a3);
    Py_END_ALLOW_THREADS
%End

        void                 setValue (const double&);
        double               value ();
        virtual void         setDefaultValue (const double&);
        virtual void         setDefault ();
        void                 swapDefault ();
        void                 writeConfig (KConfig*);
        void                 readConfig (KConfig*);
        void                 setProperty (const QVariant&);
        QVariant             property () const;
        QVariant             minValue () const;
        QVariant             maxValue () const;
        void                 setMinValue (double);
        void                 setMaxValue (double);

    };  // class ItemDouble


public:
//end

public:
//force

    class ItemColor : KConfigSkeletonItem
    {

    public:
                             ItemColor (const QString&, const QString&, QColor&, const QColor& = QColor (128 ,128 ,128 ));
        void                 setValue (const QColor&);
        QColor&              value ();
        virtual void         setDefaultValue (const QColor&);
        virtual void         setDefault ();
        void                 swapDefault ();
        void                 writeConfig (KConfig*);
        void                 readConfig (KConfig*);
        void                 setProperty (const QVariant&);
        QVariant             property () const;

    };  // class ItemColor


public:
//end

public:
//force

    class ItemFont : KConfigSkeletonItem
    {

    public:
                             ItemFont (const QString&, const QString&, QFont&, const QFont& = KGlobalSettings ::generalFont ());
        void                 setValue (const QFont&);
        QFont&               value ();
        virtual void         setDefaultValue (const QFont&);
        virtual void         setDefault ();
        void                 swapDefault ();
        void                 writeConfig (KConfig*);
        void                 readConfig (KConfig*);
        void                 setProperty (const QVariant&);
        QVariant             property () const;

    };  // class ItemFont


public:
//end

public:
//force

    class ItemRect : KConfigSkeletonItem
    {

    public:
                             ItemRect (const QString&, const QString&, QRect&, const QRect& = QRect ());
        void                 setValue (const QRect&);
        QRect&               value ();
        virtual void         setDefaultValue (const QRect&);
        virtual void         setDefault ();
        void                 swapDefault ();
        void                 writeConfig (KConfig*);
        void                 readConfig (KConfig*);
        void                 setProperty (const QVariant&);
        QVariant             property () const;

    };  // class ItemRect


public:
//end

public:
//force

    class ItemPoint : KConfigSkeletonItem
    {

    public:
                             ItemPoint (const QString&, const QString&, QPoint&, const QPoint& = QPoint ());
        void                 setValue (const QPoint&);
        QPoint&              value ();
        virtual void         setDefaultValue (const QPoint&);
        virtual void         setDefault ();
        void                 swapDefault ();
        void                 writeConfig (KConfig*);
        void                 readConfig (KConfig*);
        void                 setProperty (const QVariant&);
        QVariant             property () const;

    };  // class ItemPoint


public:
//end

public:
//force

    class ItemSize : KConfigSkeletonItem
    {

    public:
                             ItemSize (const QString&, const QString&, QSize&, const QSize& = QSize ());
        void                 setValue (const QSize&);
        QSize&               value ();
        virtual void         setDefaultValue (const QSize&);
        virtual void         setDefault ();
        void                 swapDefault ();
        void                 writeConfig (KConfig*);
        void                 readConfig (KConfig*);
        void                 setProperty (const QVariant&);
        QVariant             property () const;

    };  // class ItemSize


public:
//end

public:
//force

    class ItemDateTime : KConfigSkeletonItem
    {

    public:
                             ItemDateTime (const QString&, const QString&, QDateTime&, const QDateTime& = QDateTime ());
        void                 setValue (const QDateTime&);
        QDateTime&           value ();
        virtual void         setDefaultValue (const QDateTime&);
        virtual void         setDefault ();
        void                 swapDefault ();
        void                 writeConfig (KConfig*);
        void                 readConfig (KConfig*);
        void                 setProperty (const QVariant&);
        QVariant             property () const;

    };  // class ItemDateTime


public:
//end

public:
//force

    class ItemStringList : KConfigSkeletonItem
    {

    public:
                             ItemStringList (const QString&, const QString&, QStringList&, const QStringList& = QStringList ());
        void                 setValue (const QStringList&);
        QStringList&         value ();
        virtual void         setDefaultValue (const QStringList&);
        virtual void         setDefault ();
        void                 swapDefault ();
        void                 writeConfig (KConfig*);
        void                 readConfig (KConfig*);
        void                 setProperty (const QVariant&);
        QVariant             property () const;

    };  // class ItemStringList


public:
//end

public:
//force

    class ItemIntList : KConfigSkeletonItem
    {

    public:
                             ItemIntList (const QString&, const QString&, QValueList<int>&, const QValueList<int>& = IntList ());
%MethodCode
//takes group | (QString) | key | (QString) | reference | (a Python list of int) | defaultValue | (a Python list of int = 0)
    if (a3 == NULL) *(QValueList<int> *)a3 = QValueList<int>();
    Py_BEGIN_ALLOW_THREADS
    sipCpp = (sipKConfigSkeleton_ItemIntList *) new KConfigSkeleton::ItemIntList (*a0, *a1, *a2, *a3);
    Py_END_ALLOW_THREADS
%End

        void                 setValue (const QValueList<int>&);
        QValueList<int>&     value ();
        virtual void         setDefaultValue (const QValueList<int>&);
        virtual void         setDefault ();
        void                 swapDefault ();
        void                 writeConfig (KConfig*);
        void                 readConfig (KConfig*);
        void                 setProperty (const QVariant&);
        QVariant             property () const;

    };  // class ItemIntList


public:
//end

};  // class KConfigSkeleton

%End



%If (KDE_3_2_0 - )
%MappedType QValueList<KConfigSkeleton::ItemEnum::Choice>
{
%TypeHeaderCode
#include <kconfigskeleton.h>
#include <sipkdecoreKConfigSkeletonItemEnumChoice.h>
%End

%ConvertFromTypeCode
    if (!sipCpp)
        return PyList_New(0);

    // Create the list
    PyObject *pylist;
    if ((pylist = PyList_New(0)) == NULL)
        return NULL;

    QValueList<KConfigSkeleton::ItemEnum::Choice> *cpplist = (QValueList<KConfigSkeleton::ItemEnum::Choice> *)sipCpp;
    PyObject *inst;

    // Get it.
    QValueList<KConfigSkeleton::ItemEnum::Choice>::Iterator it;
    for( it = cpplist->begin(); it != cpplist->end(); ++it )
    {
        if (((inst = sipBuildResult (NULL, "N", new KConfigSkeleton::ItemEnum::Choice (*it), sipClass_KConfigSkeleton_ItemEnum_Choice)) == NULL)
            || PyList_Append (pylist, inst) < 0)
        {
            Py_DECREF (pylist);
            return NULL;
        }
    }

    return pylist;
%End


%ConvertToTypeCode
    if (sipIsErr == NULL)
        return PyList_Check(sipPy);

    QValueList<KConfigSkeleton::ItemEnum::Choice> *cpplist = new QValueList<KConfigSkeleton::ItemEnum::Choice>;

    PyObject *elem;
    KConfigSkeleton::ItemEnum::Choice *cpp;
    int iserr = 0;

    for (int i = 0; i < PyList_Size (sipPy); i++)
    {
        elem = PyList_GET_ITEM (sipPy, i);
        cpp = (KConfigSkeleton::ItemEnum::Choice *)sipForceConvertTo_KConfigSkeleton_ItemEnum_Choice (elem, &iserr);

        if (iserr)
        {
            *sipIsErr = 1;
            delete cpplist;
            return 0;
        }

        cpplist->append (*cpp);
    }

    *sipCppPtr = cpplist;

    return 1;
%End
};
%End


