/*
 * Interface wrapper code.
 *
 * Generated by SIP 6.7.9
 *
 *     Copyright: (c) 2020 by Total Control Software
 *     License:   wxWindows License
 */

#include "sipAPI_core.h"
        #include <wx/config.h>
        #include <wx/object.h>
        #include <wx/object.h>
        #include <wx/object.h>


class sipwxConfig : public  ::wxConfig
{
public:
    sipwxConfig(const  ::wxString&,const  ::wxString&,const  ::wxString&,const  ::wxString&,long);
    virtual ~sipwxConfig();

    /*
     * There is a protected method for every virtual method visible from
     * this class.
     */
protected:
    const  ::wxString& GetPath() const SIP_OVERRIDE;
    void SetPath(const  ::wxString&) SIP_OVERRIDE;
    size_t GetNumberOfEntries(bool) const SIP_OVERRIDE;
    size_t GetNumberOfGroups(bool) const SIP_OVERRIDE;
     ::wxConfigBase::EntryType GetEntryType(const  ::wxString&) const SIP_OVERRIDE;
    bool HasEntry(const  ::wxString&) const SIP_OVERRIDE;
    bool HasGroup(const  ::wxString&) const SIP_OVERRIDE;
    bool Flush(bool) SIP_OVERRIDE;
    bool RenameEntry(const  ::wxString&,const  ::wxString&) SIP_OVERRIDE;
    bool RenameGroup(const  ::wxString&,const  ::wxString&) SIP_OVERRIDE;
    bool DeleteAll() SIP_OVERRIDE;
    bool DeleteEntry(const  ::wxString&,bool) SIP_OVERRIDE;
    bool DeleteGroup(const  ::wxString&) SIP_OVERRIDE;

public:
    sipSimpleWrapper *sipPySelf;

private:
    sipwxConfig(const sipwxConfig &);
    sipwxConfig &operator = (const sipwxConfig &);

    char sipPyMethods[13];
};

sipwxConfig::sipwxConfig(const  ::wxString& appName,const  ::wxString& vendorName,const  ::wxString& localFilename,const  ::wxString& globalFilename,long style):  ::wxConfig(appName,vendorName,localFilename,globalFilename,style), sipPySelf(SIP_NULLPTR)
{
    memset(sipPyMethods, 0, sizeof (sipPyMethods));
}

sipwxConfig::~sipwxConfig()
{
    sipInstanceDestroyedEx(&sipPySelf);
}

const  ::wxString& sipwxConfig::GetPath() const
{
    sip_gilstate_t sipGILState;
    PyObject *sipMeth;

    sipMeth = sipIsPyMethod(&sipGILState, const_cast<char *>(&sipPyMethods[0]), const_cast<sipSimpleWrapper **>(&sipPySelf), SIP_NULLPTR, sipName_GetPath);

    if (!sipMeth)
        return  ::wxConfig::GetPath();

    extern const  ::wxString& sipVH__core_97(sip_gilstate_t, sipVirtErrorHandlerFunc, sipSimpleWrapper *, PyObject *);

    return sipVH__core_97(sipGILState, 0, sipPySelf, sipMeth);
}

void sipwxConfig::SetPath(const  ::wxString& strPath)
{
    sip_gilstate_t sipGILState;
    PyObject *sipMeth;

    sipMeth = sipIsPyMethod(&sipGILState, &sipPyMethods[1], &sipPySelf, SIP_NULLPTR, sipName_SetPath);

    if (!sipMeth)
    {
         ::wxConfig::SetPath(strPath);
        return;
    }

    extern void sipVH__core_60(sip_gilstate_t, sipVirtErrorHandlerFunc, sipSimpleWrapper *, PyObject *, const  ::wxString&);

    sipVH__core_60(sipGILState, 0, sipPySelf, sipMeth, strPath);
}

size_t sipwxConfig::GetNumberOfEntries(bool bRecursive) const
{
    sip_gilstate_t sipGILState;
    PyObject *sipMeth;

    sipMeth = sipIsPyMethod(&sipGILState, const_cast<char *>(&sipPyMethods[2]), const_cast<sipSimpleWrapper **>(&sipPySelf), SIP_NULLPTR, sipName_GetNumberOfEntries);

    if (!sipMeth)
        return  ::wxConfig::GetNumberOfEntries(bRecursive);

    extern size_t sipVH__core_98(sip_gilstate_t, sipVirtErrorHandlerFunc, sipSimpleWrapper *, PyObject *, bool);

    return sipVH__core_98(sipGILState, 0, sipPySelf, sipMeth, bRecursive);
}

size_t sipwxConfig::GetNumberOfGroups(bool bRecursive) const
{
    sip_gilstate_t sipGILState;
    PyObject *sipMeth;

    sipMeth = sipIsPyMethod(&sipGILState, const_cast<char *>(&sipPyMethods[3]), const_cast<sipSimpleWrapper **>(&sipPySelf), SIP_NULLPTR, sipName_GetNumberOfGroups);

    if (!sipMeth)
        return  ::wxConfig::GetNumberOfGroups(bRecursive);

    extern size_t sipVH__core_98(sip_gilstate_t, sipVirtErrorHandlerFunc, sipSimpleWrapper *, PyObject *, bool);

    return sipVH__core_98(sipGILState, 0, sipPySelf, sipMeth, bRecursive);
}

 ::wxConfigBase::EntryType sipwxConfig::GetEntryType(const  ::wxString& name) const
{
    sip_gilstate_t sipGILState;
    PyObject *sipMeth;

    sipMeth = sipIsPyMethod(&sipGILState, const_cast<char *>(&sipPyMethods[4]), const_cast<sipSimpleWrapper **>(&sipPySelf), SIP_NULLPTR, sipName_GetEntryType);

    if (!sipMeth)
        return  ::wxConfig::GetEntryType(name);

    extern  ::wxConfigBase::EntryType sipVH__core_99(sip_gilstate_t, sipVirtErrorHandlerFunc, sipSimpleWrapper *, PyObject *, const  ::wxString&);

    return sipVH__core_99(sipGILState, 0, sipPySelf, sipMeth, name);
}

bool sipwxConfig::HasEntry(const  ::wxString& strName) const
{
    sip_gilstate_t sipGILState;
    PyObject *sipMeth;

    sipMeth = sipIsPyMethod(&sipGILState, const_cast<char *>(&sipPyMethods[5]), const_cast<sipSimpleWrapper **>(&sipPySelf), SIP_NULLPTR, sipName_HasEntry);

    if (!sipMeth)
        return  ::wxConfig::HasEntry(strName);

    extern bool sipVH__core_9(sip_gilstate_t, sipVirtErrorHandlerFunc, sipSimpleWrapper *, PyObject *, const  ::wxString&);

    return sipVH__core_9(sipGILState, 0, sipPySelf, sipMeth, strName);
}

bool sipwxConfig::HasGroup(const  ::wxString& strName) const
{
    sip_gilstate_t sipGILState;
    PyObject *sipMeth;

    sipMeth = sipIsPyMethod(&sipGILState, const_cast<char *>(&sipPyMethods[6]), const_cast<sipSimpleWrapper **>(&sipPySelf), SIP_NULLPTR, sipName_HasGroup);

    if (!sipMeth)
        return  ::wxConfig::HasGroup(strName);

    extern bool sipVH__core_9(sip_gilstate_t, sipVirtErrorHandlerFunc, sipSimpleWrapper *, PyObject *, const  ::wxString&);

    return sipVH__core_9(sipGILState, 0, sipPySelf, sipMeth, strName);
}

bool sipwxConfig::Flush(bool bCurrentOnly)
{
    sip_gilstate_t sipGILState;
    PyObject *sipMeth;

    sipMeth = sipIsPyMethod(&sipGILState, &sipPyMethods[7], &sipPySelf, SIP_NULLPTR, sipName_Flush);

    if (!sipMeth)
        return  ::wxConfig::Flush(bCurrentOnly);

    extern bool sipVH__core_100(sip_gilstate_t, sipVirtErrorHandlerFunc, sipSimpleWrapper *, PyObject *, bool);

    return sipVH__core_100(sipGILState, 0, sipPySelf, sipMeth, bCurrentOnly);
}

bool sipwxConfig::RenameEntry(const  ::wxString& oldName,const  ::wxString& newName)
{
    sip_gilstate_t sipGILState;
    PyObject *sipMeth;

    sipMeth = sipIsPyMethod(&sipGILState, &sipPyMethods[8], &sipPySelf, SIP_NULLPTR, sipName_RenameEntry);

    if (!sipMeth)
        return  ::wxConfig::RenameEntry(oldName,newName);

    extern bool sipVH__core_19(sip_gilstate_t, sipVirtErrorHandlerFunc, sipSimpleWrapper *, PyObject *, const  ::wxString&,const  ::wxString&);

    return sipVH__core_19(sipGILState, 0, sipPySelf, sipMeth, oldName, newName);
}

bool sipwxConfig::RenameGroup(const  ::wxString& oldName,const  ::wxString& newName)
{
    sip_gilstate_t sipGILState;
    PyObject *sipMeth;

    sipMeth = sipIsPyMethod(&sipGILState, &sipPyMethods[9], &sipPySelf, SIP_NULLPTR, sipName_RenameGroup);

    if (!sipMeth)
        return  ::wxConfig::RenameGroup(oldName,newName);

    extern bool sipVH__core_19(sip_gilstate_t, sipVirtErrorHandlerFunc, sipSimpleWrapper *, PyObject *, const  ::wxString&,const  ::wxString&);

    return sipVH__core_19(sipGILState, 0, sipPySelf, sipMeth, oldName, newName);
}

bool sipwxConfig::DeleteAll()
{
    sip_gilstate_t sipGILState;
    PyObject *sipMeth;

    sipMeth = sipIsPyMethod(&sipGILState, &sipPyMethods[10], &sipPySelf, SIP_NULLPTR, sipName_DeleteAll);

    if (!sipMeth)
        return  ::wxConfig::DeleteAll();

    extern bool sipVH__core_6(sip_gilstate_t, sipVirtErrorHandlerFunc, sipSimpleWrapper *, PyObject *);

    return sipVH__core_6(sipGILState, 0, sipPySelf, sipMeth);
}

bool sipwxConfig::DeleteEntry(const  ::wxString& key,bool bDeleteGroupIfEmpty)
{
    sip_gilstate_t sipGILState;
    PyObject *sipMeth;

    sipMeth = sipIsPyMethod(&sipGILState, &sipPyMethods[11], &sipPySelf, SIP_NULLPTR, sipName_DeleteEntry);

    if (!sipMeth)
        return  ::wxConfig::DeleteEntry(key,bDeleteGroupIfEmpty);

    extern bool sipVH__core_101(sip_gilstate_t, sipVirtErrorHandlerFunc, sipSimpleWrapper *, PyObject *, const  ::wxString&,bool);

    return sipVH__core_101(sipGILState, 0, sipPySelf, sipMeth, key, bDeleteGroupIfEmpty);
}

bool sipwxConfig::DeleteGroup(const  ::wxString& key)
{
    sip_gilstate_t sipGILState;
    PyObject *sipMeth;

    sipMeth = sipIsPyMethod(&sipGILState, &sipPyMethods[12], &sipPySelf, SIP_NULLPTR, sipName_DeleteGroup);

    if (!sipMeth)
        return  ::wxConfig::DeleteGroup(key);

    extern bool sipVH__core_9(sip_gilstate_t, sipVirtErrorHandlerFunc, sipSimpleWrapper *, PyObject *, const  ::wxString&);

    return sipVH__core_9(sipGILState, 0, sipPySelf, sipMeth, key);
}


PyDoc_STRVAR(doc_wxConfig_GetPath, "GetPath(self) -> object");

extern "C" {static PyObject *meth_wxConfig_GetPath(PyObject *, PyObject *);}
static PyObject *meth_wxConfig_GetPath(PyObject *sipSelf, PyObject *sipArgs)
{
    PyObject *sipParseErr = SIP_NULLPTR;
    bool sipSelfWasArg = (!sipSelf || sipIsDerivedClass((sipSimpleWrapper *)sipSelf));

    {
        const  ::wxConfig *sipCpp;

        if (sipParseArgs(&sipParseErr, sipArgs, "B", &sipSelf, sipType_wxConfig, &sipCpp))
        {
             ::wxString*sipRes;

            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipRes = new  ::wxString((sipSelfWasArg ? sipCpp-> ::wxConfig::GetPath() : sipCpp->GetPath()));
            Py_END_ALLOW_THREADS

            if (PyErr_Occurred())
                return 0;

            return sipConvertFromNewType(sipRes,sipType_wxString,SIP_NULLPTR);
        }
    }

    sipNoMethod(sipParseErr, sipName_Config, sipName_GetPath, doc_wxConfig_GetPath);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxConfig_SetPath, "SetPath(self, strPath: object)");

extern "C" {static PyObject *meth_wxConfig_SetPath(PyObject *, PyObject *, PyObject *);}
static PyObject *meth_wxConfig_SetPath(PyObject *sipSelf, PyObject *sipArgs, PyObject *sipKwds)
{
    PyObject *sipParseErr = SIP_NULLPTR;
    bool sipSelfWasArg = (!sipSelf || sipIsDerivedClass((sipSimpleWrapper *)sipSelf));

    {
        const  ::wxString* strPath;
        int strPathState = 0;
         ::wxConfig *sipCpp;

        static const char *sipKwdList[] = {
            sipName_strPath,
        };

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "BJ1", &sipSelf, sipType_wxConfig, &sipCpp, sipType_wxString, &strPath, &strPathState))
        {
            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            (sipSelfWasArg ? sipCpp-> ::wxConfig::SetPath(*strPath) : sipCpp->SetPath(*strPath));
            Py_END_ALLOW_THREADS
            sipReleaseType(const_cast< ::wxString *>(strPath), sipType_wxString, strPathState);

            if (PyErr_Occurred())
                return 0;

            Py_INCREF(Py_None);
            return Py_None;
        }
    }

    sipNoMethod(sipParseErr, sipName_Config, sipName_SetPath, doc_wxConfig_SetPath);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxConfig_GetNumberOfEntries, "GetNumberOfEntries(self, bRecursive: bool = False) -> int");

extern "C" {static PyObject *meth_wxConfig_GetNumberOfEntries(PyObject *, PyObject *, PyObject *);}
static PyObject *meth_wxConfig_GetNumberOfEntries(PyObject *sipSelf, PyObject *sipArgs, PyObject *sipKwds)
{
    PyObject *sipParseErr = SIP_NULLPTR;
    bool sipSelfWasArg = (!sipSelf || sipIsDerivedClass((sipSimpleWrapper *)sipSelf));

    {
        bool bRecursive = 0;
        const  ::wxConfig *sipCpp;

        static const char *sipKwdList[] = {
            sipName_bRecursive,
        };

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "B|b", &sipSelf, sipType_wxConfig, &sipCpp, &bRecursive))
        {
            size_t sipRes;

            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipRes = (sipSelfWasArg ? sipCpp-> ::wxConfig::GetNumberOfEntries(bRecursive) : sipCpp->GetNumberOfEntries(bRecursive));
            Py_END_ALLOW_THREADS

            if (PyErr_Occurred())
                return 0;

            return PyLong_FromUnsignedLong(sipRes);
        }
    }

    sipNoMethod(sipParseErr, sipName_Config, sipName_GetNumberOfEntries, doc_wxConfig_GetNumberOfEntries);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxConfig_GetNumberOfGroups, "GetNumberOfGroups(self, bRecursive: bool = False) -> int");

extern "C" {static PyObject *meth_wxConfig_GetNumberOfGroups(PyObject *, PyObject *, PyObject *);}
static PyObject *meth_wxConfig_GetNumberOfGroups(PyObject *sipSelf, PyObject *sipArgs, PyObject *sipKwds)
{
    PyObject *sipParseErr = SIP_NULLPTR;
    bool sipSelfWasArg = (!sipSelf || sipIsDerivedClass((sipSimpleWrapper *)sipSelf));

    {
        bool bRecursive = 0;
        const  ::wxConfig *sipCpp;

        static const char *sipKwdList[] = {
            sipName_bRecursive,
        };

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "B|b", &sipSelf, sipType_wxConfig, &sipCpp, &bRecursive))
        {
            size_t sipRes;

            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipRes = (sipSelfWasArg ? sipCpp-> ::wxConfig::GetNumberOfGroups(bRecursive) : sipCpp->GetNumberOfGroups(bRecursive));
            Py_END_ALLOW_THREADS

            if (PyErr_Occurred())
                return 0;

            return PyLong_FromUnsignedLong(sipRes);
        }
    }

    sipNoMethod(sipParseErr, sipName_Config, sipName_GetNumberOfGroups, doc_wxConfig_GetNumberOfGroups);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxConfig_HasEntry, "HasEntry(self, strName: object) -> bool");

extern "C" {static PyObject *meth_wxConfig_HasEntry(PyObject *, PyObject *, PyObject *);}
static PyObject *meth_wxConfig_HasEntry(PyObject *sipSelf, PyObject *sipArgs, PyObject *sipKwds)
{
    PyObject *sipParseErr = SIP_NULLPTR;
    bool sipSelfWasArg = (!sipSelf || sipIsDerivedClass((sipSimpleWrapper *)sipSelf));

    {
        const  ::wxString* strName;
        int strNameState = 0;
        const  ::wxConfig *sipCpp;

        static const char *sipKwdList[] = {
            sipName_strName,
        };

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "BJ1", &sipSelf, sipType_wxConfig, &sipCpp, sipType_wxString, &strName, &strNameState))
        {
            bool sipRes;

            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipRes = (sipSelfWasArg ? sipCpp-> ::wxConfig::HasEntry(*strName) : sipCpp->HasEntry(*strName));
            Py_END_ALLOW_THREADS
            sipReleaseType(const_cast< ::wxString *>(strName), sipType_wxString, strNameState);

            if (PyErr_Occurred())
                return 0;

            return PyBool_FromLong(sipRes);
        }
    }

    sipNoMethod(sipParseErr, sipName_Config, sipName_HasEntry, doc_wxConfig_HasEntry);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxConfig_HasGroup, "HasGroup(self, strName: object) -> bool");

extern "C" {static PyObject *meth_wxConfig_HasGroup(PyObject *, PyObject *, PyObject *);}
static PyObject *meth_wxConfig_HasGroup(PyObject *sipSelf, PyObject *sipArgs, PyObject *sipKwds)
{
    PyObject *sipParseErr = SIP_NULLPTR;
    bool sipSelfWasArg = (!sipSelf || sipIsDerivedClass((sipSimpleWrapper *)sipSelf));

    {
        const  ::wxString* strName;
        int strNameState = 0;
        const  ::wxConfig *sipCpp;

        static const char *sipKwdList[] = {
            sipName_strName,
        };

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "BJ1", &sipSelf, sipType_wxConfig, &sipCpp, sipType_wxString, &strName, &strNameState))
        {
            bool sipRes;

            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipRes = (sipSelfWasArg ? sipCpp-> ::wxConfig::HasGroup(*strName) : sipCpp->HasGroup(*strName));
            Py_END_ALLOW_THREADS
            sipReleaseType(const_cast< ::wxString *>(strName), sipType_wxString, strNameState);

            if (PyErr_Occurred())
                return 0;

            return PyBool_FromLong(sipRes);
        }
    }

    sipNoMethod(sipParseErr, sipName_Config, sipName_HasGroup, doc_wxConfig_HasGroup);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxConfig_Flush, "Flush(self, bCurrentOnly: bool = False) -> bool");

extern "C" {static PyObject *meth_wxConfig_Flush(PyObject *, PyObject *, PyObject *);}
static PyObject *meth_wxConfig_Flush(PyObject *sipSelf, PyObject *sipArgs, PyObject *sipKwds)
{
    PyObject *sipParseErr = SIP_NULLPTR;
    bool sipSelfWasArg = (!sipSelf || sipIsDerivedClass((sipSimpleWrapper *)sipSelf));

    {
        bool bCurrentOnly = 0;
         ::wxConfig *sipCpp;

        static const char *sipKwdList[] = {
            sipName_bCurrentOnly,
        };

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "B|b", &sipSelf, sipType_wxConfig, &sipCpp, &bCurrentOnly))
        {
            bool sipRes;

            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipRes = (sipSelfWasArg ? sipCpp-> ::wxConfig::Flush(bCurrentOnly) : sipCpp->Flush(bCurrentOnly));
            Py_END_ALLOW_THREADS

            if (PyErr_Occurred())
                return 0;

            return PyBool_FromLong(sipRes);
        }
    }

    sipNoMethod(sipParseErr, sipName_Config, sipName_Flush, doc_wxConfig_Flush);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxConfig_RenameEntry, "RenameEntry(self, oldName: object, newName: object) -> bool");

extern "C" {static PyObject *meth_wxConfig_RenameEntry(PyObject *, PyObject *, PyObject *);}
static PyObject *meth_wxConfig_RenameEntry(PyObject *sipSelf, PyObject *sipArgs, PyObject *sipKwds)
{
    PyObject *sipParseErr = SIP_NULLPTR;
    bool sipSelfWasArg = (!sipSelf || sipIsDerivedClass((sipSimpleWrapper *)sipSelf));

    {
        const  ::wxString* oldName;
        int oldNameState = 0;
        const  ::wxString* newName;
        int newNameState = 0;
         ::wxConfig *sipCpp;

        static const char *sipKwdList[] = {
            sipName_oldName,
            sipName_newName,
        };

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "BJ1J1", &sipSelf, sipType_wxConfig, &sipCpp, sipType_wxString, &oldName, &oldNameState, sipType_wxString, &newName, &newNameState))
        {
            bool sipRes;

            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipRes = (sipSelfWasArg ? sipCpp-> ::wxConfig::RenameEntry(*oldName,*newName) : sipCpp->RenameEntry(*oldName,*newName));
            Py_END_ALLOW_THREADS
            sipReleaseType(const_cast< ::wxString *>(oldName), sipType_wxString, oldNameState);
            sipReleaseType(const_cast< ::wxString *>(newName), sipType_wxString, newNameState);

            if (PyErr_Occurred())
                return 0;

            return PyBool_FromLong(sipRes);
        }
    }

    sipNoMethod(sipParseErr, sipName_Config, sipName_RenameEntry, doc_wxConfig_RenameEntry);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxConfig_RenameGroup, "RenameGroup(self, oldName: object, newName: object) -> bool");

extern "C" {static PyObject *meth_wxConfig_RenameGroup(PyObject *, PyObject *, PyObject *);}
static PyObject *meth_wxConfig_RenameGroup(PyObject *sipSelf, PyObject *sipArgs, PyObject *sipKwds)
{
    PyObject *sipParseErr = SIP_NULLPTR;
    bool sipSelfWasArg = (!sipSelf || sipIsDerivedClass((sipSimpleWrapper *)sipSelf));

    {
        const  ::wxString* oldName;
        int oldNameState = 0;
        const  ::wxString* newName;
        int newNameState = 0;
         ::wxConfig *sipCpp;

        static const char *sipKwdList[] = {
            sipName_oldName,
            sipName_newName,
        };

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "BJ1J1", &sipSelf, sipType_wxConfig, &sipCpp, sipType_wxString, &oldName, &oldNameState, sipType_wxString, &newName, &newNameState))
        {
            bool sipRes;

            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipRes = (sipSelfWasArg ? sipCpp-> ::wxConfig::RenameGroup(*oldName,*newName) : sipCpp->RenameGroup(*oldName,*newName));
            Py_END_ALLOW_THREADS
            sipReleaseType(const_cast< ::wxString *>(oldName), sipType_wxString, oldNameState);
            sipReleaseType(const_cast< ::wxString *>(newName), sipType_wxString, newNameState);

            if (PyErr_Occurred())
                return 0;

            return PyBool_FromLong(sipRes);
        }
    }

    sipNoMethod(sipParseErr, sipName_Config, sipName_RenameGroup, doc_wxConfig_RenameGroup);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxConfig_DeleteAll, "DeleteAll(self) -> bool");

extern "C" {static PyObject *meth_wxConfig_DeleteAll(PyObject *, PyObject *);}
static PyObject *meth_wxConfig_DeleteAll(PyObject *sipSelf, PyObject *sipArgs)
{
    PyObject *sipParseErr = SIP_NULLPTR;
    bool sipSelfWasArg = (!sipSelf || sipIsDerivedClass((sipSimpleWrapper *)sipSelf));

    {
         ::wxConfig *sipCpp;

        if (sipParseArgs(&sipParseErr, sipArgs, "B", &sipSelf, sipType_wxConfig, &sipCpp))
        {
            bool sipRes;

            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipRes = (sipSelfWasArg ? sipCpp-> ::wxConfig::DeleteAll() : sipCpp->DeleteAll());
            Py_END_ALLOW_THREADS

            if (PyErr_Occurred())
                return 0;

            return PyBool_FromLong(sipRes);
        }
    }

    sipNoMethod(sipParseErr, sipName_Config, sipName_DeleteAll, doc_wxConfig_DeleteAll);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxConfig_DeleteEntry, "DeleteEntry(self, key: object, bDeleteGroupIfEmpty: bool = True) -> bool");

extern "C" {static PyObject *meth_wxConfig_DeleteEntry(PyObject *, PyObject *, PyObject *);}
static PyObject *meth_wxConfig_DeleteEntry(PyObject *sipSelf, PyObject *sipArgs, PyObject *sipKwds)
{
    PyObject *sipParseErr = SIP_NULLPTR;
    bool sipSelfWasArg = (!sipSelf || sipIsDerivedClass((sipSimpleWrapper *)sipSelf));

    {
        const  ::wxString* key;
        int keyState = 0;
        bool bDeleteGroupIfEmpty = 1;
         ::wxConfig *sipCpp;

        static const char *sipKwdList[] = {
            sipName_key,
            sipName_bDeleteGroupIfEmpty,
        };

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "BJ1|b", &sipSelf, sipType_wxConfig, &sipCpp, sipType_wxString, &key, &keyState, &bDeleteGroupIfEmpty))
        {
            bool sipRes;

            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipRes = (sipSelfWasArg ? sipCpp-> ::wxConfig::DeleteEntry(*key,bDeleteGroupIfEmpty) : sipCpp->DeleteEntry(*key,bDeleteGroupIfEmpty));
            Py_END_ALLOW_THREADS
            sipReleaseType(const_cast< ::wxString *>(key), sipType_wxString, keyState);

            if (PyErr_Occurred())
                return 0;

            return PyBool_FromLong(sipRes);
        }
    }

    sipNoMethod(sipParseErr, sipName_Config, sipName_DeleteEntry, doc_wxConfig_DeleteEntry);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxConfig_DeleteGroup, "DeleteGroup(self, key: object) -> bool");

extern "C" {static PyObject *meth_wxConfig_DeleteGroup(PyObject *, PyObject *, PyObject *);}
static PyObject *meth_wxConfig_DeleteGroup(PyObject *sipSelf, PyObject *sipArgs, PyObject *sipKwds)
{
    PyObject *sipParseErr = SIP_NULLPTR;
    bool sipSelfWasArg = (!sipSelf || sipIsDerivedClass((sipSimpleWrapper *)sipSelf));

    {
        const  ::wxString* key;
        int keyState = 0;
         ::wxConfig *sipCpp;

        static const char *sipKwdList[] = {
            sipName_key,
        };

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "BJ1", &sipSelf, sipType_wxConfig, &sipCpp, sipType_wxString, &key, &keyState))
        {
            bool sipRes;

            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipRes = (sipSelfWasArg ? sipCpp-> ::wxConfig::DeleteGroup(*key) : sipCpp->DeleteGroup(*key));
            Py_END_ALLOW_THREADS
            sipReleaseType(const_cast< ::wxString *>(key), sipType_wxString, keyState);

            if (PyErr_Occurred())
                return 0;

            return PyBool_FromLong(sipRes);
        }
    }

    sipNoMethod(sipParseErr, sipName_Config, sipName_DeleteGroup, doc_wxConfig_DeleteGroup);

    return SIP_NULLPTR;
}


/* Cast a pointer to a type somewhere in its inheritance hierarchy. */
extern "C" {static void *cast_wxConfig(void *, const sipTypeDef *);}
static void *cast_wxConfig(void *sipCppV, const sipTypeDef *targetType)
{
     ::wxConfig *sipCpp = reinterpret_cast< ::wxConfig *>(sipCppV);

    if (targetType == sipType_wxConfig)
        return sipCppV;

    sipCppV = ((const sipClassTypeDef *)sipType_wxConfigBase)->ctd_cast(static_cast< ::wxConfigBase *>(sipCpp), targetType);
    if (sipCppV)
        return sipCppV;

    return SIP_NULLPTR;
}


/* Call the instance's destructor. */
extern "C" {static void release_wxConfig(void *, int);}
static void release_wxConfig(void *sipCppV, int sipState)
{
    Py_BEGIN_ALLOW_THREADS

    if (sipState & SIP_DERIVED_CLASS)
        delete reinterpret_cast<sipwxConfig *>(sipCppV);
    else
        delete reinterpret_cast< ::wxConfig *>(sipCppV);

    Py_END_ALLOW_THREADS
}


extern "C" {static void *array_wxConfig(Py_ssize_t);}
static void *array_wxConfig(Py_ssize_t sipNrElem)
{
    return new  ::wxConfig[sipNrElem];
}


extern "C" {static void dealloc_wxConfig(sipSimpleWrapper *);}
static void dealloc_wxConfig(sipSimpleWrapper *sipSelf)
{
    if (sipIsDerivedClass(sipSelf))
        reinterpret_cast<sipwxConfig *>(sipGetAddress(sipSelf))->sipPySelf = SIP_NULLPTR;

    if (sipIsOwnedByPython(sipSelf))
    {
        release_wxConfig(sipGetAddress(sipSelf), sipIsDerivedClass(sipSelf));
    }
}


extern "C" {static void *init_type_wxConfig(sipSimpleWrapper *, PyObject *, PyObject *, PyObject **, PyObject **, PyObject **);}
static void *init_type_wxConfig(sipSimpleWrapper *sipSelf, PyObject *sipArgs, PyObject *sipKwds, PyObject **sipUnused, PyObject **, PyObject **sipParseErr)
{
    sipwxConfig *sipCpp = SIP_NULLPTR;

    {
        const  ::wxString& appNamedef = wxEmptyString;
        const  ::wxString* appName = &appNamedef;
        int appNameState = 0;
        const  ::wxString& vendorNamedef = wxEmptyString;
        const  ::wxString* vendorName = &vendorNamedef;
        int vendorNameState = 0;
        const  ::wxString& localFilenamedef = wxEmptyString;
        const  ::wxString* localFilename = &localFilenamedef;
        int localFilenameState = 0;
        const  ::wxString& globalFilenamedef = wxEmptyString;
        const  ::wxString* globalFilename = &globalFilenamedef;
        int globalFilenameState = 0;
        long style = wxCONFIG_USE_LOCAL_FILE|wxCONFIG_USE_GLOBAL_FILE;

        static const char *sipKwdList[] = {
            sipName_appName,
            sipName_vendorName,
            sipName_localFilename,
            sipName_globalFilename,
            sipName_style,
        };

        if (sipParseKwdArgs(sipParseErr, sipArgs, sipKwds, sipKwdList, sipUnused, "|J1J1J1J1l", sipType_wxString, &appName, &appNameState, sipType_wxString, &vendorName, &vendorNameState, sipType_wxString, &localFilename, &localFilenameState, sipType_wxString, &globalFilename, &globalFilenameState, &style))
        {
            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipCpp = new sipwxConfig(*appName,*vendorName,*localFilename,*globalFilename,style);
            Py_END_ALLOW_THREADS
            sipReleaseType(const_cast< ::wxString *>(appName), sipType_wxString, appNameState);
            sipReleaseType(const_cast< ::wxString *>(vendorName), sipType_wxString, vendorNameState);
            sipReleaseType(const_cast< ::wxString *>(localFilename), sipType_wxString, localFilenameState);
            sipReleaseType(const_cast< ::wxString *>(globalFilename), sipType_wxString, globalFilenameState);

            if (PyErr_Occurred())
            {
                delete sipCpp;
                return SIP_NULLPTR;
            }

            sipCpp->sipPySelf = sipSelf;

            return sipCpp;
        }
    }

    return SIP_NULLPTR;
}


/* Define this type's super-types. */
static sipEncodedTypeDef supers_wxConfig[] = {{90, 255, 1}};


static PyMethodDef methods_wxConfig[] = {
    {sipName_DeleteAll, meth_wxConfig_DeleteAll, METH_VARARGS, doc_wxConfig_DeleteAll},
    {sipName_DeleteEntry, SIP_MLMETH_CAST(meth_wxConfig_DeleteEntry), METH_VARARGS|METH_KEYWORDS, doc_wxConfig_DeleteEntry},
    {sipName_DeleteGroup, SIP_MLMETH_CAST(meth_wxConfig_DeleteGroup), METH_VARARGS|METH_KEYWORDS, doc_wxConfig_DeleteGroup},
    {sipName_Flush, SIP_MLMETH_CAST(meth_wxConfig_Flush), METH_VARARGS|METH_KEYWORDS, doc_wxConfig_Flush},
    {sipName_GetNumberOfEntries, SIP_MLMETH_CAST(meth_wxConfig_GetNumberOfEntries), METH_VARARGS|METH_KEYWORDS, doc_wxConfig_GetNumberOfEntries},
    {sipName_GetNumberOfGroups, SIP_MLMETH_CAST(meth_wxConfig_GetNumberOfGroups), METH_VARARGS|METH_KEYWORDS, doc_wxConfig_GetNumberOfGroups},
    {sipName_GetPath, meth_wxConfig_GetPath, METH_VARARGS, doc_wxConfig_GetPath},
    {sipName_HasEntry, SIP_MLMETH_CAST(meth_wxConfig_HasEntry), METH_VARARGS|METH_KEYWORDS, doc_wxConfig_HasEntry},
    {sipName_HasGroup, SIP_MLMETH_CAST(meth_wxConfig_HasGroup), METH_VARARGS|METH_KEYWORDS, doc_wxConfig_HasGroup},
    {sipName_RenameEntry, SIP_MLMETH_CAST(meth_wxConfig_RenameEntry), METH_VARARGS|METH_KEYWORDS, doc_wxConfig_RenameEntry},
    {sipName_RenameGroup, SIP_MLMETH_CAST(meth_wxConfig_RenameGroup), METH_VARARGS|METH_KEYWORDS, doc_wxConfig_RenameGroup},
    {sipName_SetPath, SIP_MLMETH_CAST(meth_wxConfig_SetPath), METH_VARARGS|METH_KEYWORDS, doc_wxConfig_SetPath}
};

PyDoc_STRVAR(doc_wxConfig, "\1Config(appName: object = wxEmptyString, vendorName: object = wxEmptyString, localFilename: object = wxEmptyString, globalFilename: object = wxEmptyString, style: int = wxCONFIG_USE_LOCAL_FILE|wxCONFIG_USE_GLOBAL_FILE)");


sipClassTypeDef sipTypeDef__core_wxConfig = {
    {
        -1,
        SIP_NULLPTR,
        SIP_NULLPTR,
        SIP_TYPE_SCC|SIP_TYPE_CLASS,
        sipNameNr_wxConfig,
        SIP_NULLPTR,
        SIP_NULLPTR
    },
    {
        sipNameNr_Config,
        {0, 0, 1},
        12, methods_wxConfig,
        0, SIP_NULLPTR,
        0, SIP_NULLPTR,
        {SIP_NULLPTR, SIP_NULLPTR, SIP_NULLPTR, SIP_NULLPTR, SIP_NULLPTR, SIP_NULLPTR, SIP_NULLPTR, SIP_NULLPTR, SIP_NULLPTR, SIP_NULLPTR},
    },
    doc_wxConfig,
    -1,
    -1,
    supers_wxConfig,
    SIP_NULLPTR,
    init_type_wxConfig,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
    dealloc_wxConfig,
    SIP_NULLPTR,
    array_wxConfig,
    SIP_NULLPTR,
    release_wxConfig,
    cast_wxConfig,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
};
