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

#include "sipAPI_core.h"

        #include <wx/artprov.h>

        #include <wx/iconbndl.h>
        #include <wx/bitmap.h>
        #include <wx/gdicmn.h>
        #include <wx/icon.h>
        #include <wx/object.h>
        #include <wx/object.h>
        #include <wx/object.h>


class sipwxArtProvider : public  ::wxArtProvider
{
public:
    sipwxArtProvider();
    sipwxArtProvider(const  ::wxArtProvider&);
    virtual ~sipwxArtProvider();

    /*
     * There is a public method for every protected method visible from
     * this class.
     */
     ::wxBitmap sipProtectVirt_CreateBitmap(bool,const  ::wxArtID&,const  ::wxArtClient&,const  ::wxSize&);
     ::wxIconBundle sipProtectVirt_CreateIconBundle(bool,const  ::wxArtID&,const  ::wxArtClient&);

    /*
     * There is a protected method for every virtual method visible from
     * this class.
     */
protected:
     ::wxIconBundle CreateIconBundle(const  ::wxArtID&,const  ::wxArtClient&) SIP_OVERRIDE;
     ::wxBitmap CreateBitmap(const  ::wxArtID&,const  ::wxArtClient&,const  ::wxSize&) SIP_OVERRIDE;

public:
    sipSimpleWrapper *sipPySelf;

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

    char sipPyMethods[2];
};

sipwxArtProvider::sipwxArtProvider():  ::wxArtProvider(), sipPySelf(SIP_NULLPTR)
{
    memset(sipPyMethods, 0, sizeof (sipPyMethods));
}

sipwxArtProvider::sipwxArtProvider(const  ::wxArtProvider& a0):  ::wxArtProvider(a0), sipPySelf(SIP_NULLPTR)
{
    memset(sipPyMethods, 0, sizeof (sipPyMethods));
}

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

 ::wxIconBundle sipwxArtProvider::CreateIconBundle(const  ::wxArtID& id,const  ::wxArtClient& client)
{
    sip_gilstate_t sipGILState;
    PyObject *sipMeth;

    sipMeth = sipIsPyMethod(&sipGILState,&sipPyMethods[0],sipPySelf,SIP_NULLPTR,sipName_CreateIconBundle);

    if (!sipMeth)
        return  ::wxArtProvider::CreateIconBundle(id,client);

    extern  ::wxIconBundle sipVH__core_194(sip_gilstate_t, sipVirtErrorHandlerFunc, sipSimpleWrapper *, PyObject *, const  ::wxArtID&,const  ::wxArtClient&);

    return sipVH__core_194(sipGILState, 0, sipPySelf, sipMeth, id, client);
}

 ::wxBitmap sipwxArtProvider::CreateBitmap(const  ::wxArtID& id,const  ::wxArtClient& client,const  ::wxSize& size)
{
    sip_gilstate_t sipGILState;
    PyObject *sipMeth;

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

    if (!sipMeth)
        return  ::wxArtProvider::CreateBitmap(id,client,size);

    extern  ::wxBitmap sipVH__core_193(sip_gilstate_t, sipVirtErrorHandlerFunc, sipSimpleWrapper *, PyObject *, const  ::wxArtID&,const  ::wxArtClient&,const  ::wxSize&);

    return sipVH__core_193(sipGILState, 0, sipPySelf, sipMeth, id, client, size);
}

 ::wxBitmap sipwxArtProvider::sipProtectVirt_CreateBitmap(bool sipSelfWasArg,const  ::wxArtID& id,const  ::wxArtClient& client,const  ::wxSize& size)
{
    return (sipSelfWasArg ?  ::wxArtProvider::CreateBitmap(id,client,size) : CreateBitmap(id,client,size));
}

 ::wxIconBundle sipwxArtProvider::sipProtectVirt_CreateIconBundle(bool sipSelfWasArg,const  ::wxArtID& id,const  ::wxArtClient& client)
{
    return (sipSelfWasArg ?  ::wxArtProvider::CreateIconBundle(id,client) : CreateIconBundle(id,client));
}


PyDoc_STRVAR(doc_wxArtProvider_Delete, "Delete(provider) -> bool\n"
"\n"
"Delete the given provider.");

extern "C" {static PyObject *meth_wxArtProvider_Delete(PyObject *, PyObject *, PyObject *);}
static PyObject *meth_wxArtProvider_Delete(PyObject *, PyObject *sipArgs, PyObject *sipKwds)
{
    PyObject *sipParseErr = SIP_NULLPTR;

    {
         ::wxArtProvider* provider;

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

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "J8", sipType_wxArtProvider, &provider))
        {
            bool sipRes;

            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipRes =  ::wxArtProvider::Delete(provider);
            Py_END_ALLOW_THREADS

            if (PyErr_Occurred())
                return 0;

            return PyBool_FromLong(sipRes);
        }
    }

    /* Raise an exception if the arguments couldn't be parsed. */
    sipNoMethod(sipParseErr, sipName_ArtProvider, sipName_Delete, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxArtProvider_GetBitmap, "GetBitmap(id, client=ART_OTHER, size=DefaultSize) -> Bitmap\n"
"\n"
"Query registered providers for bitmap with given ID.");

extern "C" {static PyObject *meth_wxArtProvider_GetBitmap(PyObject *, PyObject *, PyObject *);}
static PyObject *meth_wxArtProvider_GetBitmap(PyObject *, PyObject *sipArgs, PyObject *sipKwds)
{
    PyObject *sipParseErr = SIP_NULLPTR;

    {
        const  ::wxArtID* id;
        int idState = 0;
        const  ::wxArtClient& clientdef = wxART_OTHER;
        const  ::wxArtClient* client = &clientdef;
        int clientState = 0;
        const  ::wxSize& sizedef = wxDefaultSize;
        const  ::wxSize* size = &sizedef;
        int sizeState = 0;

        static const char *sipKwdList[] = {
            sipName_id,
            sipName_client,
            sipName_size,
        };

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "J1|J1J1", sipType_wxString,&id, &idState, sipType_wxString,&client, &clientState, sipType_wxSize, &size, &sizeState))
        {
             ::wxBitmap*sipRes;

        if (!wxPyCheckForApp()) return NULL;

            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipRes = new  ::wxBitmap( ::wxArtProvider::GetBitmap(*id,*client,*size));
            Py_END_ALLOW_THREADS
            sipReleaseType(const_cast< ::wxArtID *>(id),sipType_wxString,idState);
            sipReleaseType(const_cast< ::wxArtClient *>(client),sipType_wxString,clientState);
            sipReleaseType(const_cast< ::wxSize *>(size),sipType_wxSize,sizeState);

            if (PyErr_Occurred())
                return 0;

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

    /* Raise an exception if the arguments couldn't be parsed. */
    sipNoMethod(sipParseErr, sipName_ArtProvider, sipName_GetBitmap, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxArtProvider_GetIcon, "GetIcon(id, client=ART_OTHER, size=DefaultSize) -> Icon\n"
"\n"
"Same as wxArtProvider::GetBitmap, but return a wxIcon object (or\n"
"wxNullIcon on failure).");

extern "C" {static PyObject *meth_wxArtProvider_GetIcon(PyObject *, PyObject *, PyObject *);}
static PyObject *meth_wxArtProvider_GetIcon(PyObject *, PyObject *sipArgs, PyObject *sipKwds)
{
    PyObject *sipParseErr = SIP_NULLPTR;

    {
        const  ::wxArtID* id;
        int idState = 0;
        const  ::wxArtClient& clientdef = wxART_OTHER;
        const  ::wxArtClient* client = &clientdef;
        int clientState = 0;
        const  ::wxSize& sizedef = wxDefaultSize;
        const  ::wxSize* size = &sizedef;
        int sizeState = 0;

        static const char *sipKwdList[] = {
            sipName_id,
            sipName_client,
            sipName_size,
        };

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "J1|J1J1", sipType_wxString,&id, &idState, sipType_wxString,&client, &clientState, sipType_wxSize, &size, &sizeState))
        {
             ::wxIcon*sipRes;

        if (!wxPyCheckForApp()) return NULL;

            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipRes = new  ::wxIcon( ::wxArtProvider::GetIcon(*id,*client,*size));
            Py_END_ALLOW_THREADS
            sipReleaseType(const_cast< ::wxArtID *>(id),sipType_wxString,idState);
            sipReleaseType(const_cast< ::wxArtClient *>(client),sipType_wxString,clientState);
            sipReleaseType(const_cast< ::wxSize *>(size),sipType_wxSize,sizeState);

            if (PyErr_Occurred())
                return 0;

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

    /* Raise an exception if the arguments couldn't be parsed. */
    sipNoMethod(sipParseErr, sipName_ArtProvider, sipName_GetIcon, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxArtProvider_GetNativeSizeHint, "GetNativeSizeHint(client) -> Size\n"
"\n"
"Returns native icon size for use specified by client hint.");

extern "C" {static PyObject *meth_wxArtProvider_GetNativeSizeHint(PyObject *, PyObject *, PyObject *);}
static PyObject *meth_wxArtProvider_GetNativeSizeHint(PyObject *, PyObject *sipArgs, PyObject *sipKwds)
{
    PyObject *sipParseErr = SIP_NULLPTR;

    {
        const  ::wxArtClient* client;
        int clientState = 0;

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

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "J1", sipType_wxString,&client, &clientState))
        {
             ::wxSize*sipRes;

            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipRes = new  ::wxSize( ::wxArtProvider::GetNativeSizeHint(*client));
            Py_END_ALLOW_THREADS
            sipReleaseType(const_cast< ::wxArtClient *>(client),sipType_wxString,clientState);

            if (PyErr_Occurred())
                return 0;

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

    /* Raise an exception if the arguments couldn't be parsed. */
    sipNoMethod(sipParseErr, sipName_ArtProvider, sipName_GetNativeSizeHint, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxArtProvider_GetSizeHint, "GetSizeHint(client, platform_default=False) -> Size\n"
"\n"
"Returns a suitable size hint for the given wxArtClient.");

extern "C" {static PyObject *meth_wxArtProvider_GetSizeHint(PyObject *, PyObject *, PyObject *);}
static PyObject *meth_wxArtProvider_GetSizeHint(PyObject *, PyObject *sipArgs, PyObject *sipKwds)
{
    PyObject *sipParseErr = SIP_NULLPTR;

    {
        const  ::wxArtClient* client;
        int clientState = 0;
        bool platform_default = 0;

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

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "J1|b", sipType_wxString,&client, &clientState, &platform_default))
        {
             ::wxSize*sipRes;

            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipRes = new  ::wxSize( ::wxArtProvider::GetSizeHint(*client,platform_default));
            Py_END_ALLOW_THREADS
            sipReleaseType(const_cast< ::wxArtClient *>(client),sipType_wxString,clientState);

            if (PyErr_Occurred())
                return 0;

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

    /* Raise an exception if the arguments couldn't be parsed. */
    sipNoMethod(sipParseErr, sipName_ArtProvider, sipName_GetSizeHint, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxArtProvider_GetIconBundle, "GetIconBundle(id, client=ART_OTHER) -> IconBundle\n"
"\n"
"Query registered providers for icon bundle with given ID.");

extern "C" {static PyObject *meth_wxArtProvider_GetIconBundle(PyObject *, PyObject *, PyObject *);}
static PyObject *meth_wxArtProvider_GetIconBundle(PyObject *, PyObject *sipArgs, PyObject *sipKwds)
{
    PyObject *sipParseErr = SIP_NULLPTR;

    {
        const  ::wxArtID* id;
        int idState = 0;
        const  ::wxArtClient& clientdef = wxART_OTHER;
        const  ::wxArtClient* client = &clientdef;
        int clientState = 0;

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

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "J1|J1", sipType_wxString,&id, &idState, sipType_wxString,&client, &clientState))
        {
             ::wxIconBundle*sipRes;

            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipRes = new  ::wxIconBundle( ::wxArtProvider::GetIconBundle(*id,*client));
            Py_END_ALLOW_THREADS
            sipReleaseType(const_cast< ::wxArtID *>(id),sipType_wxString,idState);
            sipReleaseType(const_cast< ::wxArtClient *>(client),sipType_wxString,clientState);

            if (PyErr_Occurred())
                return 0;

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

    /* Raise an exception if the arguments couldn't be parsed. */
    sipNoMethod(sipParseErr, sipName_ArtProvider, sipName_GetIconBundle, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxArtProvider_HasNativeProvider, "HasNativeProvider() -> bool\n"
"\n"
"Returns true if the platform uses native icons provider that should\n"
"take precedence over any customizations.");

extern "C" {static PyObject *meth_wxArtProvider_HasNativeProvider(PyObject *, PyObject *);}
static PyObject *meth_wxArtProvider_HasNativeProvider(PyObject *, PyObject *sipArgs)
{
    PyObject *sipParseErr = SIP_NULLPTR;

    {
        if (sipParseArgs(&sipParseErr, sipArgs, ""))
        {
            bool sipRes;

            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipRes =  ::wxArtProvider::HasNativeProvider();
            Py_END_ALLOW_THREADS

            if (PyErr_Occurred())
                return 0;

            return PyBool_FromLong(sipRes);
        }
    }

    /* Raise an exception if the arguments couldn't be parsed. */
    sipNoMethod(sipParseErr, sipName_ArtProvider, sipName_HasNativeProvider, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxArtProvider_Insert, "Insert(provider)");

extern "C" {static PyObject *meth_wxArtProvider_Insert(PyObject *, PyObject *, PyObject *);}
static PyObject *meth_wxArtProvider_Insert(PyObject *, PyObject *sipArgs, PyObject *sipKwds)
{
    PyObject *sipParseErr = SIP_NULLPTR;

    {
         ::wxArtProvider* provider;

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

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "J:", sipType_wxArtProvider, &provider))
        {
            if (sipDeprecated(sipName_ArtProvider,sipName_Insert) < 0)
                return SIP_NULLPTR;

            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
             ::wxArtProvider::Insert(provider);
            Py_END_ALLOW_THREADS

            if (PyErr_Occurred())
                return 0;

            Py_INCREF(Py_None);
            return Py_None;
        }
    }

    /* Raise an exception if the arguments couldn't be parsed. */
    sipNoMethod(sipParseErr, sipName_ArtProvider, sipName_Insert, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxArtProvider_Pop, "Pop() -> bool\n"
"\n"
"Remove latest added provider and delete it.");

extern "C" {static PyObject *meth_wxArtProvider_Pop(PyObject *, PyObject *);}
static PyObject *meth_wxArtProvider_Pop(PyObject *, PyObject *sipArgs)
{
    PyObject *sipParseErr = SIP_NULLPTR;

    {
        if (sipParseArgs(&sipParseErr, sipArgs, ""))
        {
            bool sipRes;

            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipRes =  ::wxArtProvider::Pop();
            Py_END_ALLOW_THREADS

            if (PyErr_Occurred())
                return 0;

            return PyBool_FromLong(sipRes);
        }
    }

    /* Raise an exception if the arguments couldn't be parsed. */
    sipNoMethod(sipParseErr, sipName_ArtProvider, sipName_Pop, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxArtProvider_Push, "Push(provider)\n"
"\n"
"Register new art provider and add it to the top of providers stack\n"
"(i.e.");

extern "C" {static PyObject *meth_wxArtProvider_Push(PyObject *, PyObject *, PyObject *);}
static PyObject *meth_wxArtProvider_Push(PyObject *, PyObject *sipArgs, PyObject *sipKwds)
{
    PyObject *sipParseErr = SIP_NULLPTR;

    {
         ::wxArtProvider* provider;

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

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "J:", sipType_wxArtProvider, &provider))
        {
            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
             ::wxArtProvider::Push(provider);
            Py_END_ALLOW_THREADS

            if (PyErr_Occurred())
                return 0;

            Py_INCREF(Py_None);
            return Py_None;
        }
    }

    /* Raise an exception if the arguments couldn't be parsed. */
    sipNoMethod(sipParseErr, sipName_ArtProvider, sipName_Push, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxArtProvider_PushBack, "PushBack(provider)\n"
"\n"
"Register new art provider and add it to the bottom of providers stack.");

extern "C" {static PyObject *meth_wxArtProvider_PushBack(PyObject *, PyObject *, PyObject *);}
static PyObject *meth_wxArtProvider_PushBack(PyObject *, PyObject *sipArgs, PyObject *sipKwds)
{
    PyObject *sipParseErr = SIP_NULLPTR;

    {
         ::wxArtProvider* provider;

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

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "J:", sipType_wxArtProvider, &provider))
        {
            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
             ::wxArtProvider::PushBack(provider);
            Py_END_ALLOW_THREADS

            if (PyErr_Occurred())
                return 0;

            Py_INCREF(Py_None);
            return Py_None;
        }
    }

    /* Raise an exception if the arguments couldn't be parsed. */
    sipNoMethod(sipParseErr, sipName_ArtProvider, sipName_PushBack, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxArtProvider_Remove, "Remove(provider) -> bool\n"
"\n"
"Remove a provider from the stack if it is on it.");

extern "C" {static PyObject *meth_wxArtProvider_Remove(PyObject *, PyObject *, PyObject *);}
static PyObject *meth_wxArtProvider_Remove(PyObject *, PyObject *sipArgs, PyObject *sipKwds)
{
    PyObject *sipParseErr = SIP_NULLPTR;

    {
         ::wxArtProvider* provider;

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

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "J<", sipType_wxArtProvider, &provider))
        {
            bool sipRes;

            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipRes =  ::wxArtProvider::Remove(provider);
            Py_END_ALLOW_THREADS

            if (PyErr_Occurred())
                return 0;

            return PyBool_FromLong(sipRes);
        }
    }

    /* Raise an exception if the arguments couldn't be parsed. */
    sipNoMethod(sipParseErr, sipName_ArtProvider, sipName_Remove, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxArtProvider_GetMessageBoxIconId, "GetMessageBoxIconId(flags) -> ArtID\n"
"\n"
"Helper used by GetMessageBoxIcon(): return the art id corresponding to\n"
"the standard wxICON_INFORMATION/WARNING/ERROR/QUESTION flags (only one\n"
"can be set)");

extern "C" {static PyObject *meth_wxArtProvider_GetMessageBoxIconId(PyObject *, PyObject *, PyObject *);}
static PyObject *meth_wxArtProvider_GetMessageBoxIconId(PyObject *, PyObject *sipArgs, PyObject *sipKwds)
{
    PyObject *sipParseErr = SIP_NULLPTR;

    {
        int flags;

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

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "i", &flags))
        {
             ::wxArtID*sipRes;

            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipRes = new  ::wxArtID( ::wxArtProvider::GetMessageBoxIconId(flags));
            Py_END_ALLOW_THREADS

            if (PyErr_Occurred())
                return 0;

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

    /* Raise an exception if the arguments couldn't be parsed. */
    sipNoMethod(sipParseErr, sipName_ArtProvider, sipName_GetMessageBoxIconId, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxArtProvider_GetMessageBoxIcon, "GetMessageBoxIcon(flags) -> Icon\n"
"\n"
"Helper used by several generic classes: return the icon corresponding\n"
"to the standard wxICON_INFORMATION/WARNING/ERROR/QUESTION flags (only\n"
"one can be set)");

extern "C" {static PyObject *meth_wxArtProvider_GetMessageBoxIcon(PyObject *, PyObject *, PyObject *);}
static PyObject *meth_wxArtProvider_GetMessageBoxIcon(PyObject *, PyObject *sipArgs, PyObject *sipKwds)
{
    PyObject *sipParseErr = SIP_NULLPTR;

    {
        int flags;

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

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "i", &flags))
        {
             ::wxIcon*sipRes;

            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipRes = new  ::wxIcon( ::wxArtProvider::GetMessageBoxIcon(flags));
            Py_END_ALLOW_THREADS

            if (PyErr_Occurred())
                return 0;

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

    /* Raise an exception if the arguments couldn't be parsed. */
    sipNoMethod(sipParseErr, sipName_ArtProvider, sipName_GetMessageBoxIcon, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxArtProvider_CreateBitmap, "CreateBitmap(id, client, size) -> Bitmap\n"
"\n"
"Derived art provider classes must override this method to create\n"
"requested art resource.");

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

    {
        const  ::wxArtID* id;
        int idState = 0;
        const  ::wxArtClient* client;
        int clientState = 0;
        const  ::wxSize* size;
        int sizeState = 0;
        sipwxArtProvider *sipCpp;

        static const char *sipKwdList[] = {
            sipName_id,
            sipName_client,
            sipName_size,
        };

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "BJ1J1J1", &sipSelf, sipType_wxArtProvider, &sipCpp, sipType_wxString,&id, &idState, sipType_wxString,&client, &clientState, sipType_wxSize, &size, &sizeState))
        {
             ::wxBitmap*sipRes;

            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipRes = new  ::wxBitmap(sipCpp->sipProtectVirt_CreateBitmap(sipSelfWasArg,*id,*client,*size));
            Py_END_ALLOW_THREADS
            sipReleaseType(const_cast< ::wxArtID *>(id),sipType_wxString,idState);
            sipReleaseType(const_cast< ::wxArtClient *>(client),sipType_wxString,clientState);
            sipReleaseType(const_cast< ::wxSize *>(size),sipType_wxSize,sizeState);

            if (PyErr_Occurred())
                return 0;

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

    /* Raise an exception if the arguments couldn't be parsed. */
    sipNoMethod(sipParseErr, sipName_ArtProvider, sipName_CreateBitmap, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxArtProvider_CreateIconBundle, "CreateIconBundle(id, client) -> IconBundle\n"
"\n"
"This method is similar to CreateBitmap() but can be used when a bitmap\n"
"(or an icon) exists in several sizes.");

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

    {
        const  ::wxArtID* id;
        int idState = 0;
        const  ::wxArtClient* client;
        int clientState = 0;
        sipwxArtProvider *sipCpp;

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

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "BJ1J1", &sipSelf, sipType_wxArtProvider, &sipCpp, sipType_wxString,&id, &idState, sipType_wxString,&client, &clientState))
        {
             ::wxIconBundle*sipRes;

            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipRes = new  ::wxIconBundle(sipCpp->sipProtectVirt_CreateIconBundle(sipSelfWasArg,*id,*client));
            Py_END_ALLOW_THREADS
            sipReleaseType(const_cast< ::wxArtID *>(id),sipType_wxString,idState);
            sipReleaseType(const_cast< ::wxArtClient *>(client),sipType_wxString,clientState);

            if (PyErr_Occurred())
                return 0;

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

    /* Raise an exception if the arguments couldn't be parsed. */
    sipNoMethod(sipParseErr, sipName_ArtProvider, sipName_CreateIconBundle, SIP_NULLPTR);

    return SIP_NULLPTR;
}


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

    if (targetType == sipType_wxObject)
        return static_cast< ::wxObject *>(sipCpp);

    return sipCppV;
}


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

    if (sipState & SIP_DERIVED_CLASS)
        delete reinterpret_cast<sipwxArtProvider *>(sipCppV);
    else
        delete reinterpret_cast< ::wxArtProvider *>(sipCppV);

    Py_END_ALLOW_THREADS
}


extern "C" {static void assign_wxArtProvider(void *, SIP_SSIZE_T, void *);}
static void assign_wxArtProvider(void *sipDst, SIP_SSIZE_T sipDstIdx, void *sipSrc)
{
    reinterpret_cast< ::wxArtProvider *>(sipDst)[sipDstIdx] = *reinterpret_cast< ::wxArtProvider *>(sipSrc);
}


extern "C" {static void *array_wxArtProvider(SIP_SSIZE_T);}
static void *array_wxArtProvider(SIP_SSIZE_T sipNrElem)
{
    return new  ::wxArtProvider[sipNrElem];
}


extern "C" {static void *copy_wxArtProvider(const void *, SIP_SSIZE_T);}
static void *copy_wxArtProvider(const void *sipSrc, SIP_SSIZE_T sipSrcIdx)
{
    return new  ::wxArtProvider(reinterpret_cast<const  ::wxArtProvider *>(sipSrc)[sipSrcIdx]);
}


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

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


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

    {
        if (sipParseKwdArgs(sipParseErr, sipArgs, sipKwds, SIP_NULLPTR, sipUnused, ""))
        {
            Py_BEGIN_ALLOW_THREADS
            sipCpp = new sipwxArtProvider();
            Py_END_ALLOW_THREADS

            sipCpp->sipPySelf = sipSelf;

            return sipCpp;
        }
    }

    {
        const  ::wxArtProvider* a0;

        if (sipParseKwdArgs(sipParseErr, sipArgs, sipKwds, SIP_NULLPTR, sipUnused, "J9", sipType_wxArtProvider, &a0))
        {
            Py_BEGIN_ALLOW_THREADS
            sipCpp = new sipwxArtProvider(*a0);
            Py_END_ALLOW_THREADS

            sipCpp->sipPySelf = sipSelf;

            return sipCpp;
        }
    }

    return SIP_NULLPTR;
}


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


static PyMethodDef methods_wxArtProvider[] = {
    {SIP_MLNAME_CAST(sipName_CreateBitmap), SIP_MLMETH_CAST(meth_wxArtProvider_CreateBitmap), METH_VARARGS|METH_KEYWORDS, SIP_MLDOC_CAST(doc_wxArtProvider_CreateBitmap)},
    {SIP_MLNAME_CAST(sipName_CreateIconBundle), SIP_MLMETH_CAST(meth_wxArtProvider_CreateIconBundle), METH_VARARGS|METH_KEYWORDS, SIP_MLDOC_CAST(doc_wxArtProvider_CreateIconBundle)},
    {SIP_MLNAME_CAST(sipName_Delete), SIP_MLMETH_CAST(meth_wxArtProvider_Delete), METH_VARARGS|METH_KEYWORDS, SIP_MLDOC_CAST(doc_wxArtProvider_Delete)},
    {SIP_MLNAME_CAST(sipName_GetBitmap), SIP_MLMETH_CAST(meth_wxArtProvider_GetBitmap), METH_VARARGS|METH_KEYWORDS, SIP_MLDOC_CAST(doc_wxArtProvider_GetBitmap)},
    {SIP_MLNAME_CAST(sipName_GetIcon), SIP_MLMETH_CAST(meth_wxArtProvider_GetIcon), METH_VARARGS|METH_KEYWORDS, SIP_MLDOC_CAST(doc_wxArtProvider_GetIcon)},
    {SIP_MLNAME_CAST(sipName_GetIconBundle), SIP_MLMETH_CAST(meth_wxArtProvider_GetIconBundle), METH_VARARGS|METH_KEYWORDS, SIP_MLDOC_CAST(doc_wxArtProvider_GetIconBundle)},
    {SIP_MLNAME_CAST(sipName_GetMessageBoxIcon), SIP_MLMETH_CAST(meth_wxArtProvider_GetMessageBoxIcon), METH_VARARGS|METH_KEYWORDS, SIP_MLDOC_CAST(doc_wxArtProvider_GetMessageBoxIcon)},
    {SIP_MLNAME_CAST(sipName_GetMessageBoxIconId), SIP_MLMETH_CAST(meth_wxArtProvider_GetMessageBoxIconId), METH_VARARGS|METH_KEYWORDS, SIP_MLDOC_CAST(doc_wxArtProvider_GetMessageBoxIconId)},
    {SIP_MLNAME_CAST(sipName_GetNativeSizeHint), SIP_MLMETH_CAST(meth_wxArtProvider_GetNativeSizeHint), METH_VARARGS|METH_KEYWORDS, SIP_MLDOC_CAST(doc_wxArtProvider_GetNativeSizeHint)},
    {SIP_MLNAME_CAST(sipName_GetSizeHint), SIP_MLMETH_CAST(meth_wxArtProvider_GetSizeHint), METH_VARARGS|METH_KEYWORDS, SIP_MLDOC_CAST(doc_wxArtProvider_GetSizeHint)},
    {SIP_MLNAME_CAST(sipName_HasNativeProvider), meth_wxArtProvider_HasNativeProvider, METH_VARARGS, SIP_MLDOC_CAST(doc_wxArtProvider_HasNativeProvider)},
    {SIP_MLNAME_CAST(sipName_Insert), SIP_MLMETH_CAST(meth_wxArtProvider_Insert), METH_VARARGS|METH_KEYWORDS, SIP_MLDOC_CAST(doc_wxArtProvider_Insert)},
    {SIP_MLNAME_CAST(sipName_Pop), meth_wxArtProvider_Pop, METH_VARARGS, SIP_MLDOC_CAST(doc_wxArtProvider_Pop)},
    {SIP_MLNAME_CAST(sipName_Push), SIP_MLMETH_CAST(meth_wxArtProvider_Push), METH_VARARGS|METH_KEYWORDS, SIP_MLDOC_CAST(doc_wxArtProvider_Push)},
    {SIP_MLNAME_CAST(sipName_PushBack), SIP_MLMETH_CAST(meth_wxArtProvider_PushBack), METH_VARARGS|METH_KEYWORDS, SIP_MLDOC_CAST(doc_wxArtProvider_PushBack)},
    {SIP_MLNAME_CAST(sipName_Remove), SIP_MLMETH_CAST(meth_wxArtProvider_Remove), METH_VARARGS|METH_KEYWORDS, SIP_MLDOC_CAST(doc_wxArtProvider_Remove)}
};

PyDoc_STRVAR(doc_wxArtProvider, "wxArtProvider class is used to customize the look of wxWidgets\n"
"application.");


sipClassTypeDef sipTypeDef__core_wxArtProvider = {
    {
        -1,
        SIP_NULLPTR,
        SIP_NULLPTR,
        SIP_TYPE_SCC|SIP_TYPE_CLASS,
        sipNameNr_wxArtProvider,
        {SIP_NULLPTR},
        SIP_NULLPTR
    },
    {
        sipNameNr_ArtProvider,
        {0, 0, 1},
        16, methods_wxArtProvider,
        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_wxArtProvider,
    -1,
    -1,
    supers_wxArtProvider,
    SIP_NULLPTR,
    init_type_wxArtProvider,
    SIP_NULLPTR,
    SIP_NULLPTR,
#if PY_MAJOR_VERSION >= 3
    SIP_NULLPTR,
    SIP_NULLPTR,
#else
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
#endif
    dealloc_wxArtProvider,
    assign_wxArtProvider,
    array_wxArtProvider,
    copy_wxArtProvider,
    release_wxArtProvider,
    cast_wxArtProvider,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR
};
