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


//                 Generated by preSip
//            module tdecore  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.,
// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.


%ModuleHeaderCode
typedef long long longlong;
typedef unsigned long long ulonglong;
%End


class KConfigBase : TQObject
{
%TypeHeaderCode
#include <kconfigbase.h>
%End


public:
                         KConfigBase ();
    void                 setGroup (const TQString&);
    void                 setDesktopGroup ();
    TQString              group () const;
    bool                 hasGroup (const TQString&) const;
    virtual TQStringList  groupList () const = 0;
    TQString              locale () const;
    TQString              readEntry (const TQString&, const TQString& = TQString ::null ) const;
    TQString              readEntry (const char*, const TQString& = TQString ::null ) const;
    TQVariant             readPropertyEntry (const TQString&, TQVariant::Type) const;
    TQVariant             readPropertyEntry (const char*, TQVariant::Type) const;
    TQVariant             readPropertyEntry (const TQString&, const TQVariant&) const;
    TQVariant             readPropertyEntry (const char*, const TQVariant&) const;
    int                  readListEntry (const TQString&, TQStrList&, char = ',') const;
    int                  readListEntry (const char*, TQStrList&, char = ',') const;
    TQStringList          readListEntry (const TQString&, char = ',') const;
    TQStringList          readListEntry (const char*, char = ',') const;

%If ( KDE_3_3_0 -  )
    TQStringList          readListEntry (const char*, const TQStringList&, char = ',') const;
%End

    TQValueList<int>      readIntListEntry (const TQString&) const;
    TQValueList<int>      readIntListEntry (const char*) const;
    TQString              readPathEntry (const TQString&, const TQString& = TQString ::null ) const;
    TQString              readPathEntry (const char*, const TQString& = TQString ::null ) const;

%If ( KDE_3_1_3 -  )
    TQStringList          readPathListEntry (const TQString&, char = ',') const;
    TQStringList          readPathListEntry (const char*, char = ',') const;
%End

    int                  readNumEntry (const TQString&, int = 0) const;
    int                  readNumEntry (const char*, int = 0) const;
    uint                 readUnsignedNumEntry (const TQString&, uint = 0) const;
    uint                 readUnsignedNumEntry (const char*, uint = 0) const;
    long                 readLongNumEntry (const TQString&, long = 0) const;
    long                 readLongNumEntry (const char*, long = 0) const;
    ulong                readUnsignedLongNumEntry (const TQString&, ulong = 0) const;
    ulong                readUnsignedLongNumEntry (const char*, ulong = 0) const;

%If ( KDE_3_2_0 -  )
    longlong             readNum64Entry (const TQString&, longlong = 0) const;
    longlong             readNum64Entry (const char*, longlong = 0) const;
    ulonglong            readUnsignedNum64Entry (const TQString&, ulonglong = 0) const;
    ulonglong            readUnsignedNum64Entry (const char*, ulonglong = 0) const;
%End

    double               readDoubleNumEntry (const TQString&, double = 0.0) const;
    double               readDoubleNumEntry (const char*, double = 0.0) const;
    TQFont                readFontEntry (const TQString&, const TQFont* = 0) const;
    TQFont                readFontEntry (const char*, const TQFont* = 0) const;
    bool                 readBoolEntry (const TQString&, const bool = 0) const;
    bool                 readBoolEntry (const char*, const bool = 0) const;
    TQRect                readRectEntry (const TQString&, const TQRect* = 0) const;
    TQRect                readRectEntry (const char*, const TQRect* = 0) const;
    TQPoint               readPointEntry (const TQString&, const TQPoint* = 0) const;
    TQPoint               readPointEntry (const char*, const TQPoint* = 0) const;
    TQSize                readSizeEntry (const TQString&, const TQSize* = 0) const;
    TQSize                readSizeEntry (const char*, const TQSize* = 0) const;
    TQColor               readColorEntry (const TQString&, const TQColor* = 0) const;
    TQColor               readColorEntry (const char*, const TQColor* = 0) const;
    TQDateTime            readDateTimeEntry (const TQString&, const TQDateTime* = 0) const;
    TQDateTime            readDateTimeEntry (const char*, const TQDateTime* = 0) const;
    TQString              readEntryUntranslated (const TQString&, const TQString& = TQString ::null ) const;
    TQString              readEntryUntranslated (const char*, const TQString& = TQString ::null ) const;
    void                 writeEntry (const TQString&, const TQString&, bool = 1, bool = 0, bool = 0);
    void                 writeEntry (const char*, const TQString&, bool = 1, bool = 0, bool = 0);
    void                 writeEntry (const TQString&, const TQVariant&, bool = 1, bool = 0, bool = 0);
    void                 writeEntry (const char*, const TQVariant&, bool = 1, bool = 0, bool = 0);
    void                 writeEntry (const TQString&, const TQStrList&, char = ',', bool = 1, bool = 0, bool = 0);
    void                 writeEntry (const char*, const TQStrList&, char = ',', bool = 1, bool = 0, bool = 0);
    void                 writeEntry (const TQString&, const TQStringList&, char = ',', bool = 1, bool = 0, bool = 0);
    void                 writeEntry (const char*, const TQStringList&, char = ',', bool = 1, bool = 0, bool = 0);
    void                 writeEntry (const TQString&, const TQValueList<int>&, bool = 1, bool = 0, bool = 0);
    void                 writeEntry (const char*, const TQValueList<int>&, bool = 1, bool = 0, bool = 0);
    void                 writeEntry (const TQString&, const char*, bool = 1, bool = 0, bool = 0);
    void                 writeEntry (const char*, const char*, bool = 1, bool = 0, bool = 0);
    void                 writeEntry (const TQString&, int, bool = 1, bool = 0, bool = 0);
    void                 writeEntry (const char*, int, bool = 1, bool = 0, bool = 0);

%If ( KDE_3_2_0 -  )
    void                 writeEntry (const TQString&, longlong, bool = 1, bool = 0, bool = 0);
    void                 writeEntry (const char*, longlong, bool = 1, bool = 0, bool = 0);
    void                 writeEntry (const TQString&, ulonglong, bool = 1, bool = 0, bool = 0);
    void                 writeEntry (const char*, ulonglong, bool = 1, bool = 0, bool = 0);
%End

//ig     void                 writeEntry (const TQString&, double, bool = 1, bool = 0, char = 'g', int = 6, bool = 0);
//ig     void                 writeEntry (const char*, double, bool = 1, bool = 0, char = 'g', int = 6, bool = 0);
    void                 writeEntry (const TQString&, const TQFont&, bool = 1, bool = 0, bool = 0);
    void                 writeEntry (const char*, const TQFont&, bool = 1, bool = 0, bool = 0);
    void                 writeEntry (const TQString&, const TQColor&, bool = 1, bool = 0, bool = 0);
    void                 writeEntry (const char*, const TQColor&, bool = 1, bool = 0, bool = 0);
    void                 writeEntry (const TQString&, const TQDateTime&, bool = 1, bool = 0, bool = 0);
    void                 writeEntry (const char*, const TQDateTime&, bool = 1, bool = 0, bool = 0);
    void                 writeEntry (const TQString&, const TQRect&, bool = 1, bool = 0, bool = 0);
    void                 writeEntry (const char*, const TQRect&, bool = 1, bool = 0, bool = 0);
    void                 writeEntry (const TQString&, const TQPoint&, bool = 1, bool = 0, bool = 0);
    void                 writeEntry (const char*, const TQPoint&, bool = 1, bool = 0, bool = 0);
    void                 writeEntry (const TQString&, const TQSize&, bool = 1, bool = 0, bool = 0);
    void                 writeEntry (const char*, const TQSize&, bool = 1, bool = 0, bool = 0);
    void                 writePathEntry (const TQString&, const TQString&, bool = 1, bool = 0, bool = 0);
    void                 writePathEntry (const char*, const TQString&, bool = 1, bool = 0, bool = 0);

%If ( KDE_3_1_3 -  )
    void                 writePathEntry (const TQString&, const TQStringList&, char = ',', bool = 1, bool = 0, bool = 0);
    void                 writePathEntry (const char*, const TQStringList&, char = ',', bool = 1, bool = 0, bool = 0);
%End

    void                 deleteEntry (const TQString&, bool = 0, bool = 0);
    void                 deleteEntry (const char*, bool = 0, bool = 0);
    bool                 deleteGroup (const TQString&, bool = 1, bool = 0);
    void                 setDollarExpansion (bool = 1);
    bool                 isDollarExpansion () const;
    virtual void         rollback (bool = 1);
    virtual void         sync ();
    bool                 isDirty () const;
    virtual void         setReadOnly (bool);
    bool                 isReadOnly () const;
    bool                 hasKey (const TQString&) const;
    virtual TQMap<TQString,TQString> entryMap (const TQString&) const = 0;
    virtual void         reparseConfiguration ()  = 0;
    bool                 isImmutable () const;
    bool                 groupIsImmutable (const TQString&) const;
    bool                 entryIsImmutable (const TQString&) const;

    enum ConfigState
    {
        NoAccess, 
        ReadOnly, 
        ReadWrite
    };

    ConfigState          getConfigState () const;

%If ( KDE_3_2_0 -  )
    bool                 checkConfigFilesWritable (bool);
    void                 setReadDefaults (bool);
    bool                 readDefaults () const;
    void                 revertToDefault (const TQString&);
    bool                 hasDefault (const TQString&) const;
%End


protected:
    void                 setLocale ();
    virtual void         setDirty (bool = 1);
    virtual void         parseConfigFiles ();
    virtual KEntryMap    internalEntryMap (const TQString&) const = 0;
    virtual KEntryMap    internalEntryMap () const = 0;
    virtual void         putData (const KEntryKey&, const KEntry&, bool = 1)  = 0;
    virtual KEntry       lookupData (const KEntryKey&) const = 0;
    virtual bool         internalHasGroup (const TQCString&) const = 0;

public:
    void                 setGroup (const TQCString&);
    void                 setGroup (const char*);
    bool                 hasGroup (const TQCString&) const;
    bool                 hasGroup (const char*) const;
    bool                 hasKey (const char*) const;

protected:
    TQCString             readEntryUtf8 (const char*) const;

protected:
//igx     virtual void         virtual_hook (int, void*);

};  // class KConfigBase


class KConfigGroupSaver
{
%TypeHeaderCode
#include <kconfigbase.h>
%End


public:
                         KConfigGroupSaver (KConfigBase*, TQString);
                         KConfigGroupSaver (KConfigBase*, const char*);
                         KConfigGroupSaver (KConfigBase*, const TQCString&);
    KConfigBase*         config ();

private:
                         KConfigGroupSaver (const KConfigGroupSaver&);

};  // class KConfigGroupSaver


class KConfigGroup : KConfigBase
{
%TypeHeaderCode
#include <kconfigbase.h>
%End


public:
                         KConfigGroup (KConfigBase*, const TQCString&);
                         KConfigGroup (KConfigBase*, const TQString&);
                         KConfigGroup (KConfigBase*, const char*);
    void                 deleteGroup (bool = 0);

%If ( KDE_3_4_0 -  )
    bool                 groupIsImmutable () const;
%End

    virtual void         setDirty (bool);
    virtual void         putData (const KEntryKey&, const KEntry&, bool = 1);
    virtual KEntry       lookupData (const KEntryKey&) const;
    virtual void         sync ();

protected:
//igx     virtual void         virtual_hook (int, void*);

};  // class KConfigGroup



%MappedType longlong
//converts a Python long
{
%TypeHeaderCode
#if PY_MAJOR_VERSION >= 2 && PY_MINOR_VERSION >= 3
#define LONG_LONG  PY_LONG_LONG
#endif
%End
%ConvertFromTypeCode
    if (!sipCpp)
        Py_INCREF (Py_None);
        return Py_None;

//    PyObject *LongLong;

    return PyLong_FromLongLong (*(LONG_LONG *)sipCpp);
%End

%ConvertToTypeCode
    if (sipIsErr == NULL)
        return PyLong_Check (sipPy) || PyInt_Check (sipPy);

    long long *ll = new long long;
    *ll = 0;

    if (PyLong_Check (sipPy))
        *ll = PyLong_AsLongLong (sipPy);
    else if (PyInt_Check (sipPy))
        *ll = (long long)PyInt_AS_LONG (sipPy);

    *sipCppPtr = ll;

    return 1;
%End

};


%MappedType ulonglong
//converts a Python long
{
%TypeHeaderCode
#if PY_MAJOR_VERSION >= 2 && PY_MINOR_VERSION >= 3
#define LONG_LONG  PY_LONG_LONG
#endif
%End
%ConvertFromTypeCode
    if (!sipCpp)
        Py_INCREF (Py_None);
        return Py_None;

    return PyLong_FromUnsignedLongLong (*(LONG_LONG *)sipCpp);
%End

%ConvertToTypeCode
    if (sipIsErr == NULL)
        return PyLong_Check (sipPy) || PyInt_Check (sipPy);

    unsigned long long *ul = new unsigned long long;
    *ul = 0;

    if (PyLong_Check (sipPy))
        *ul = PyLong_AsUnsignedLongLong (sipPy);
    else if (PyInt_Check (sipPy))
        *ul = (unsigned long long)PyInt_AS_LONG (sipPy);

    *sipCppPtr = ul;

    return 1;
%End

};


