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

#include "sipAPI_grid.h"
        #include <wx/grid.h>
        #include <wx/colour.h>
        #include <wx/font.h>
        #include <wx/grid.h>
        #include <wx/grid.h>
        #include <wx/grid.h>
        #include <wx/grid.h>
        #include <wx/object.h>


class sipwxGridCellAttr : public ::wxGridCellAttr
{
public:
    sipwxGridCellAttr(::wxGridCellAttr*);
    sipwxGridCellAttr(const ::wxColour&, const ::wxColour&, const ::wxFont&, int, int);
    ~sipwxGridCellAttr();

public:
    sipSimpleWrapper *sipPySelf;

private:
    sipwxGridCellAttr(const sipwxGridCellAttr &);
    sipwxGridCellAttr &operator = (const sipwxGridCellAttr &);
};

sipwxGridCellAttr::sipwxGridCellAttr(::wxGridCellAttr*attrDefault): ::wxGridCellAttr(attrDefault), sipPySelf(SIP_NULLPTR)
{
}

sipwxGridCellAttr::sipwxGridCellAttr(const ::wxColour& colText, const ::wxColour& colBack, const ::wxFont& font, int hAlign, int vAlign): ::wxGridCellAttr(colText, colBack, font, hAlign, vAlign), sipPySelf(SIP_NULLPTR)
{
}

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


PyDoc_STRVAR(doc_wxGridCellAttr_Clone, "Clone() -> GridCellAttr\n"
"\n"
"Creates a new copy of this object.");

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

    {
        const ::wxGridCellAttr *sipCpp;

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

            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipRes = sipCpp->Clone();
            Py_END_ALLOW_THREADS

            if (PyErr_Occurred())
                return 0;

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

    sipNoMethod(sipParseErr, sipName_GridCellAttr, sipName_Clone, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxGridCellAttr_DecRef, "DecRef() -> None\n"
"\n"
"This class is reference counted: it is created with ref count of 1, so\n"
"calling DecRef() once will delete it.");

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

    {
        ::wxGridCellAttr *sipCpp;

        if (sipParseArgs(&sipParseErr, sipArgs, "B", &sipSelf, sipType_wxGridCellAttr, &sipCpp))
        {
            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipCpp->DecRef();
            Py_END_ALLOW_THREADS

            if (PyErr_Occurred())
                return 0;

            Py_INCREF(Py_None);
            return Py_None;
        }
    }

    sipNoMethod(sipParseErr, sipName_GridCellAttr, sipName_DecRef, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxGridCellAttr_GetAlignment, "GetAlignment() -> Tuple[int, int]\n"
"\n"
"Get the alignment to use for the cell with the given attribute.");

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

    {
        int hAlign;
        int vAlign;
        const ::wxGridCellAttr *sipCpp;

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, SIP_NULLPTR, SIP_NULLPTR, "B", &sipSelf, sipType_wxGridCellAttr, &sipCpp))
        {
            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipCpp->GetAlignment(&hAlign, &vAlign);
            Py_END_ALLOW_THREADS

            if (PyErr_Occurred())
                return 0;

            return sipBuildResult(0, "(ii)", hAlign, vAlign);
        }
    }

    sipNoMethod(sipParseErr, sipName_GridCellAttr, sipName_GetAlignment, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxGridCellAttr_GetBackgroundColour, "GetBackgroundColour() -> wx.Colour\n"
"\n"
"Returns the background colour.");

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

    {
        const ::wxGridCellAttr *sipCpp;

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

            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipRes = new ::wxColour(sipCpp->GetBackgroundColour());
            Py_END_ALLOW_THREADS

            if (PyErr_Occurred())
                return 0;

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

    sipNoMethod(sipParseErr, sipName_GridCellAttr, sipName_GetBackgroundColour, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxGridCellAttr_GetEditor, "GetEditor(grid, row, col) -> GridCellEditor\n"
"\n"
"Returns the cell editor.");

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

    {
        const ::wxGrid* grid;
        int row;
        int col;
        const ::wxGridCellAttr *sipCpp;

        static const char *sipKwdList[] = {
            sipName_grid,
            sipName_row,
            sipName_col,
        };

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "BJ8ii", &sipSelf, sipType_wxGridCellAttr, &sipCpp, sipType_wxGrid, &grid, &row, &col))
        {
            ::wxGridCellEditor*sipRes;

            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipRes = sipCpp->GetEditor(grid, row, col);
            Py_END_ALLOW_THREADS

            if (PyErr_Occurred())
                return 0;

            return sipConvertFromType(sipRes, sipType_wxGridCellEditor, SIP_NULLPTR);
        }
    }

    sipNoMethod(sipParseErr, sipName_GridCellAttr, sipName_GetEditor, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxGridCellAttr_GetEditorPtr, "GetEditorPtr(grid, row, col) -> GridCellEditorPtr\n"
"\n"
"Returns the cell editor.");

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

    {
        const ::wxGrid* grid;
        int row;
        int col;
        const ::wxGridCellAttr *sipCpp;

        static const char *sipKwdList[] = {
            sipName_grid,
            sipName_row,
            sipName_col,
        };

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "BJ8ii", &sipSelf, sipType_wxGridCellAttr, &sipCpp, sipType_wxGrid, &grid, &row, &col))
        {
            ::wxGridCellEditorPtr*sipRes;

            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipRes = new ::wxGridCellEditorPtr(sipCpp->GetEditorPtr(grid, row, col));
            Py_END_ALLOW_THREADS

            if (PyErr_Occurred())
                return 0;

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

    sipNoMethod(sipParseErr, sipName_GridCellAttr, sipName_GetEditorPtr, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxGridCellAttr_GetFont, "GetFont() -> wx.Font\n"
"\n"
"Returns the font.");

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

    {
        const ::wxGridCellAttr *sipCpp;

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

            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipRes = new ::wxFont(sipCpp->GetFont());
            Py_END_ALLOW_THREADS

            if (PyErr_Occurred())
                return 0;

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

    sipNoMethod(sipParseErr, sipName_GridCellAttr, sipName_GetFont, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxGridCellAttr_GetNonDefaultAlignment, "GetNonDefaultAlignment() -> Tuple[int, int]\n"
"\n"
"Get the alignment defined by this attribute.");

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

    {
        int hAlign;
        int vAlign;
        const ::wxGridCellAttr *sipCpp;

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, SIP_NULLPTR, SIP_NULLPTR, "B", &sipSelf, sipType_wxGridCellAttr, &sipCpp))
        {
            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipCpp->GetNonDefaultAlignment(&hAlign, &vAlign);
            Py_END_ALLOW_THREADS

            if (PyErr_Occurred())
                return 0;

            return sipBuildResult(0, "(ii)", hAlign, vAlign);
        }
    }

    sipNoMethod(sipParseErr, sipName_GridCellAttr, sipName_GetNonDefaultAlignment, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxGridCellAttr_GetRenderer, "GetRenderer(grid, row, col) -> GridCellRenderer\n"
"\n"
"Returns the cell renderer.");

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

    {
        const ::wxGrid* grid;
        int row;
        int col;
        const ::wxGridCellAttr *sipCpp;

        static const char *sipKwdList[] = {
            sipName_grid,
            sipName_row,
            sipName_col,
        };

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "BJ8ii", &sipSelf, sipType_wxGridCellAttr, &sipCpp, sipType_wxGrid, &grid, &row, &col))
        {
            ::wxGridCellRenderer*sipRes;

            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipRes = sipCpp->GetRenderer(grid, row, col);
            Py_END_ALLOW_THREADS

            if (PyErr_Occurred())
                return 0;

            return sipConvertFromType(sipRes, sipType_wxGridCellRenderer, SIP_NULLPTR);
        }
    }

    sipNoMethod(sipParseErr, sipName_GridCellAttr, sipName_GetRenderer, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxGridCellAttr_GetTextColour, "GetTextColour() -> wx.Colour\n"
"\n"
"Returns the text colour.");

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

    {
        const ::wxGridCellAttr *sipCpp;

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

            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipRes = new ::wxColour(sipCpp->GetTextColour());
            Py_END_ALLOW_THREADS

            if (PyErr_Occurred())
                return 0;

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

    sipNoMethod(sipParseErr, sipName_GridCellAttr, sipName_GetTextColour, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxGridCellAttr_HasAlignment, "HasAlignment() -> bool\n"
"\n"
"Returns true if this attribute has a valid alignment set.");

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

    {
        const ::wxGridCellAttr *sipCpp;

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

            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipRes = sipCpp->HasAlignment();
            Py_END_ALLOW_THREADS

            if (PyErr_Occurred())
                return 0;

            return PyBool_FromLong(sipRes);
        }
    }

    sipNoMethod(sipParseErr, sipName_GridCellAttr, sipName_HasAlignment, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxGridCellAttr_HasBackgroundColour, "HasBackgroundColour() -> bool\n"
"\n"
"Returns true if this attribute has a valid background colour set.");

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

    {
        const ::wxGridCellAttr *sipCpp;

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

            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipRes = sipCpp->HasBackgroundColour();
            Py_END_ALLOW_THREADS

            if (PyErr_Occurred())
                return 0;

            return PyBool_FromLong(sipRes);
        }
    }

    sipNoMethod(sipParseErr, sipName_GridCellAttr, sipName_HasBackgroundColour, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxGridCellAttr_HasEditor, "HasEditor() -> bool\n"
"\n"
"Returns true if this attribute has a valid cell editor set.");

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

    {
        const ::wxGridCellAttr *sipCpp;

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

            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipRes = sipCpp->HasEditor();
            Py_END_ALLOW_THREADS

            if (PyErr_Occurred())
                return 0;

            return PyBool_FromLong(sipRes);
        }
    }

    sipNoMethod(sipParseErr, sipName_GridCellAttr, sipName_HasEditor, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxGridCellAttr_HasFont, "HasFont() -> bool\n"
"\n"
"Returns true if this attribute has a valid font set.");

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

    {
        const ::wxGridCellAttr *sipCpp;

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

            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipRes = sipCpp->HasFont();
            Py_END_ALLOW_THREADS

            if (PyErr_Occurred())
                return 0;

            return PyBool_FromLong(sipRes);
        }
    }

    sipNoMethod(sipParseErr, sipName_GridCellAttr, sipName_HasFont, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxGridCellAttr_HasRenderer, "HasRenderer() -> bool\n"
"\n"
"Returns true if this attribute has a valid cell renderer set.");

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

    {
        const ::wxGridCellAttr *sipCpp;

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

            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipRes = sipCpp->HasRenderer();
            Py_END_ALLOW_THREADS

            if (PyErr_Occurred())
                return 0;

            return PyBool_FromLong(sipRes);
        }
    }

    sipNoMethod(sipParseErr, sipName_GridCellAttr, sipName_HasRenderer, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxGridCellAttr_HasTextColour, "HasTextColour() -> bool\n"
"\n"
"Returns true if this attribute has a valid text colour set.");

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

    {
        const ::wxGridCellAttr *sipCpp;

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

            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipRes = sipCpp->HasTextColour();
            Py_END_ALLOW_THREADS

            if (PyErr_Occurred())
                return 0;

            return PyBool_FromLong(sipRes);
        }
    }

    sipNoMethod(sipParseErr, sipName_GridCellAttr, sipName_HasTextColour, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxGridCellAttr_IncRef, "IncRef() -> None\n"
"\n"
"This class is reference counted: it is created with ref count of 1, so\n"
"calling DecRef() once will delete it.");

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

    {
        ::wxGridCellAttr *sipCpp;

        if (sipParseArgs(&sipParseErr, sipArgs, "B", &sipSelf, sipType_wxGridCellAttr, &sipCpp))
        {
            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipCpp->IncRef();
            Py_END_ALLOW_THREADS

            if (PyErr_Occurred())
                return 0;

            Py_INCREF(Py_None);
            return Py_None;
        }
    }

    sipNoMethod(sipParseErr, sipName_GridCellAttr, sipName_IncRef, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxGridCellAttr_IsReadOnly, "IsReadOnly() -> bool\n"
"\n"
"Returns true if this cell is set as read-only.");

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

    {
        const ::wxGridCellAttr *sipCpp;

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

            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipRes = sipCpp->IsReadOnly();
            Py_END_ALLOW_THREADS

            if (PyErr_Occurred())
                return 0;

            return PyBool_FromLong(sipRes);
        }
    }

    sipNoMethod(sipParseErr, sipName_GridCellAttr, sipName_IsReadOnly, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxGridCellAttr_SetAlignment, "SetAlignment(hAlign, vAlign) -> None\n"
"\n"
"Sets the alignment.");

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

    {
        int hAlign;
        int vAlign;
        ::wxGridCellAttr *sipCpp;

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

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "Bii", &sipSelf, sipType_wxGridCellAttr, &sipCpp, &hAlign, &vAlign))
        {
            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipCpp->SetAlignment(hAlign, vAlign);
            Py_END_ALLOW_THREADS

            if (PyErr_Occurred())
                return 0;

            Py_INCREF(Py_None);
            return Py_None;
        }
    }

    sipNoMethod(sipParseErr, sipName_GridCellAttr, sipName_SetAlignment, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxGridCellAttr_SetBackgroundColour, "SetBackgroundColour(colBack) -> None\n"
"\n"
"Sets the background colour.");

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

    {
        const ::wxColour* colBack;
        int colBackState = 0;
        ::wxGridCellAttr *sipCpp;

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

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "BJ1", &sipSelf, sipType_wxGridCellAttr, &sipCpp, sipType_wxColour, &colBack, &colBackState))
        {
            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipCpp->SetBackgroundColour(*colBack);
            Py_END_ALLOW_THREADS
            sipReleaseType(const_cast< ::wxColour *>(colBack), sipType_wxColour, colBackState);

            if (PyErr_Occurred())
                return 0;

            Py_INCREF(Py_None);
            return Py_None;
        }
    }

    sipNoMethod(sipParseErr, sipName_GridCellAttr, sipName_SetBackgroundColour, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxGridCellAttr_SetDefAttr, "SetDefAttr(defAttr) -> None");

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

    {
        ::wxGridCellAttr* defAttr;
        ::wxGridCellAttr *sipCpp;

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

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "BJ8", &sipSelf, sipType_wxGridCellAttr, &sipCpp, sipType_wxGridCellAttr, &defAttr))
        {
            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipCpp->SetDefAttr(defAttr);
            Py_END_ALLOW_THREADS

            if (PyErr_Occurred())
                return 0;

            Py_INCREF(Py_None);
            return Py_None;
        }
    }

    sipNoMethod(sipParseErr, sipName_GridCellAttr, sipName_SetDefAttr, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxGridCellAttr_SetEditor, "SetEditor(editor) -> None\n"
"\n"
"Sets the editor to be used with the cells with this attribute.");

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

    {
        ::wxGridCellEditor* editor;
        ::wxGridCellAttr *sipCpp;

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

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "BJ:", &sipSelf, sipType_wxGridCellAttr, &sipCpp, sipType_wxGridCellEditor, &editor))
        {
            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipCpp->SetEditor(editor);
            Py_END_ALLOW_THREADS

            if (PyErr_Occurred())
                return 0;

            Py_INCREF(Py_None);
            return Py_None;
        }
    }

    sipNoMethod(sipParseErr, sipName_GridCellAttr, sipName_SetEditor, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxGridCellAttr_SetFont, "SetFont(font) -> None\n"
"\n"
"Sets the font.");

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

    {
        const ::wxFont* font;
        ::wxGridCellAttr *sipCpp;

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

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "BJ9", &sipSelf, sipType_wxGridCellAttr, &sipCpp, sipType_wxFont, &font))
        {
            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipCpp->SetFont(*font);
            Py_END_ALLOW_THREADS

            if (PyErr_Occurred())
                return 0;

            Py_INCREF(Py_None);
            return Py_None;
        }
    }

    sipNoMethod(sipParseErr, sipName_GridCellAttr, sipName_SetFont, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxGridCellAttr_SetReadOnly, "SetReadOnly(isReadOnly=True) -> None\n"
"\n"
"Sets the cell as read-only.");

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

    {
        bool isReadOnly = 1;
        ::wxGridCellAttr *sipCpp;

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

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "B|b", &sipSelf, sipType_wxGridCellAttr, &sipCpp, &isReadOnly))
        {
            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipCpp->SetReadOnly(isReadOnly);
            Py_END_ALLOW_THREADS

            if (PyErr_Occurred())
                return 0;

            Py_INCREF(Py_None);
            return Py_None;
        }
    }

    sipNoMethod(sipParseErr, sipName_GridCellAttr, sipName_SetReadOnly, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxGridCellAttr_SetRenderer, "SetRenderer(renderer) -> None\n"
"\n"
"Sets the renderer to be used for cells with this attribute.");

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

    {
        ::wxGridCellRenderer* renderer;
        ::wxGridCellAttr *sipCpp;

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

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "BJ:", &sipSelf, sipType_wxGridCellAttr, &sipCpp, sipType_wxGridCellRenderer, &renderer))
        {
            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipCpp->SetRenderer(renderer);
            Py_END_ALLOW_THREADS

            if (PyErr_Occurred())
                return 0;

            Py_INCREF(Py_None);
            return Py_None;
        }
    }

    sipNoMethod(sipParseErr, sipName_GridCellAttr, sipName_SetRenderer, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxGridCellAttr_SetTextColour, "SetTextColour(colText) -> None\n"
"\n"
"Sets the text colour.");

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

    {
        const ::wxColour* colText;
        int colTextState = 0;
        ::wxGridCellAttr *sipCpp;

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

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "BJ1", &sipSelf, sipType_wxGridCellAttr, &sipCpp, sipType_wxColour, &colText, &colTextState))
        {
            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipCpp->SetTextColour(*colText);
            Py_END_ALLOW_THREADS
            sipReleaseType(const_cast< ::wxColour *>(colText), sipType_wxColour, colTextState);

            if (PyErr_Occurred())
                return 0;

            Py_INCREF(Py_None);
            return Py_None;
        }
    }

    sipNoMethod(sipParseErr, sipName_GridCellAttr, sipName_SetTextColour, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxGridCellAttr_MergeWith, "MergeWith(mergefrom) -> None");

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

    {
        ::wxGridCellAttr* mergefrom;
        ::wxGridCellAttr *sipCpp;

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

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "BJ8", &sipSelf, sipType_wxGridCellAttr, &sipCpp, sipType_wxGridCellAttr, &mergefrom))
        {
            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipCpp->MergeWith(mergefrom);
            Py_END_ALLOW_THREADS

            if (PyErr_Occurred())
                return 0;

            Py_INCREF(Py_None);
            return Py_None;
        }
    }

    sipNoMethod(sipParseErr, sipName_GridCellAttr, sipName_MergeWith, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxGridCellAttr_SetSize, "SetSize(num_rows, num_cols) -> None");

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

    {
        int num_rows;
        int num_cols;
        ::wxGridCellAttr *sipCpp;

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

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "Bii", &sipSelf, sipType_wxGridCellAttr, &sipCpp, &num_rows, &num_cols))
        {
            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipCpp->SetSize(num_rows, num_cols);
            Py_END_ALLOW_THREADS

            if (PyErr_Occurred())
                return 0;

            Py_INCREF(Py_None);
            return Py_None;
        }
    }

    sipNoMethod(sipParseErr, sipName_GridCellAttr, sipName_SetSize, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxGridCellAttr_SetFitMode, "SetFitMode(fitMode) -> None\n"
"\n"
"Specifies the behaviour of the cell contents if it doesn't fit into\n"
"the available space.");

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

    {
        ::wxGridFitMode* fitMode;
        ::wxGridCellAttr *sipCpp;

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

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "BJ9", &sipSelf, sipType_wxGridCellAttr, &sipCpp, sipType_wxGridFitMode, &fitMode))
        {
            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipCpp->SetFitMode(*fitMode);
            Py_END_ALLOW_THREADS

            if (PyErr_Occurred())
                return 0;

            Py_INCREF(Py_None);
            return Py_None;
        }
    }

    sipNoMethod(sipParseErr, sipName_GridCellAttr, sipName_SetFitMode, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxGridCellAttr_SetOverflow, "SetOverflow(allow=True) -> None\n"
"\n"
"Specifies if cells using this attribute should overflow or clip their\n"
"contents.");

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

    {
        bool allow = 1;
        ::wxGridCellAttr *sipCpp;

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

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "B|b", &sipSelf, sipType_wxGridCellAttr, &sipCpp, &allow))
        {
            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipCpp->SetOverflow(allow);
            Py_END_ALLOW_THREADS

            if (PyErr_Occurred())
                return 0;

            Py_INCREF(Py_None);
            return Py_None;
        }
    }

    sipNoMethod(sipParseErr, sipName_GridCellAttr, sipName_SetOverflow, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxGridCellAttr_SetKind, "SetKind(kind) -> None");

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

    {
        ::wxGridCellAttr::wxAttrKind kind;
        ::wxGridCellAttr *sipCpp;

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

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "BE", &sipSelf, sipType_wxGridCellAttr, &sipCpp, sipType_wxGridCellAttr_wxAttrKind, &kind))
        {
            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipCpp->SetKind(kind);
            Py_END_ALLOW_THREADS

            if (PyErr_Occurred())
                return 0;

            Py_INCREF(Py_None);
            return Py_None;
        }
    }

    sipNoMethod(sipParseErr, sipName_GridCellAttr, sipName_SetKind, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxGridCellAttr_HasReadWriteMode, "HasReadWriteMode() -> bool");

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

    {
        const ::wxGridCellAttr *sipCpp;

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

            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipRes = sipCpp->HasReadWriteMode();
            Py_END_ALLOW_THREADS

            if (PyErr_Occurred())
                return 0;

            return PyBool_FromLong(sipRes);
        }
    }

    sipNoMethod(sipParseErr, sipName_GridCellAttr, sipName_HasReadWriteMode, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxGridCellAttr_HasOverflowMode, "HasOverflowMode() -> bool");

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

    {
        const ::wxGridCellAttr *sipCpp;

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

            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipRes = sipCpp->HasOverflowMode();
            Py_END_ALLOW_THREADS

            if (PyErr_Occurred())
                return 0;

            return PyBool_FromLong(sipRes);
        }
    }

    sipNoMethod(sipParseErr, sipName_GridCellAttr, sipName_HasOverflowMode, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxGridCellAttr_HasSize, "HasSize() -> bool");

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

    {
        const ::wxGridCellAttr *sipCpp;

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

            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipRes = sipCpp->HasSize();
            Py_END_ALLOW_THREADS

            if (PyErr_Occurred())
                return 0;

            return PyBool_FromLong(sipRes);
        }
    }

    sipNoMethod(sipParseErr, sipName_GridCellAttr, sipName_HasSize, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxGridCellAttr_GetSize, "GetSize() -> Tuple[int, int]");

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

    {
        int num_rows;
        int num_cols;
        const ::wxGridCellAttr *sipCpp;

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, SIP_NULLPTR, SIP_NULLPTR, "B", &sipSelf, sipType_wxGridCellAttr, &sipCpp))
        {
            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipCpp->GetSize(&num_rows, &num_cols);
            Py_END_ALLOW_THREADS

            if (PyErr_Occurred())
                return 0;

            return sipBuildResult(0, "(ii)", num_rows, num_cols);
        }
    }

    sipNoMethod(sipParseErr, sipName_GridCellAttr, sipName_GetSize, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxGridCellAttr_GetFitMode, "GetFitMode() -> GridFitMode\n"
"\n"
"Returns the fitting mode for the cells using this attribute.");

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

    {
        const ::wxGridCellAttr *sipCpp;

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

            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipRes = new ::wxGridFitMode(sipCpp->GetFitMode());
            Py_END_ALLOW_THREADS

            if (PyErr_Occurred())
                return 0;

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

    sipNoMethod(sipParseErr, sipName_GridCellAttr, sipName_GetFitMode, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxGridCellAttr_GetOverflow, "GetOverflow() -> bool\n"
"\n"
"Returns true if the cells using this attribute overflow into the\n"
"neighbouring cells.");

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

    {
        const ::wxGridCellAttr *sipCpp;

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

            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipRes = sipCpp->GetOverflow();
            Py_END_ALLOW_THREADS

            if (PyErr_Occurred())
                return 0;

            return PyBool_FromLong(sipRes);
        }
    }

    sipNoMethod(sipParseErr, sipName_GridCellAttr, sipName_GetOverflow, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxGridCellAttr_CanOverflow, "CanOverflow() -> bool\n"
"\n"
"Returns true if the cell will draw an overflowed text into the\n"
"neighbouring cells.");

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

    {
        const ::wxGridCellAttr *sipCpp;

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

            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipRes = sipCpp->CanOverflow();
            Py_END_ALLOW_THREADS

            if (PyErr_Occurred())
                return 0;

            return PyBool_FromLong(sipRes);
        }
    }

    sipNoMethod(sipParseErr, sipName_GridCellAttr, sipName_CanOverflow, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxGridCellAttr_GetKind, "GetKind() -> AttrKind");

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

    {
        ::wxGridCellAttr *sipCpp;

        if (sipParseArgs(&sipParseErr, sipArgs, "B", &sipSelf, sipType_wxGridCellAttr, &sipCpp))
        {
            ::wxGridCellAttr::wxAttrKind sipRes;

            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipRes = sipCpp->GetKind();
            Py_END_ALLOW_THREADS

            if (PyErr_Occurred())
                return 0;

            return sipConvertFromEnum(static_cast<int>(sipRes), sipType_wxGridCellAttr_wxAttrKind);
        }
    }

    sipNoMethod(sipParseErr, sipName_GridCellAttr, sipName_GetKind, SIP_NULLPTR);

    return SIP_NULLPTR;
}


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

    if (targetType == sipType_wxGridCellAttr)
        return sipCppV;

    if (targetType == sipType_wxSharedClientDataContainer)
        return static_cast< ::wxSharedClientDataContainer *>(sipCpp);

    if (targetType == sipType_wxRefCounter)
        return static_cast< ::wxRefCounter *>(sipCpp);

    return SIP_NULLPTR;
}


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

    if (sipState & SIP_DERIVED_CLASS)
        delete reinterpret_cast<sipwxGridCellAttr *>(sipCppV);

    Py_END_ALLOW_THREADS
}


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

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


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

    {
        ::wxGridCellAttr* attrDefault = 0;

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

        if (sipParseKwdArgs(sipParseErr, sipArgs, sipKwds, sipKwdList, sipUnused, "|J8", sipType_wxGridCellAttr, &attrDefault))
        {
            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipCpp = new sipwxGridCellAttr(attrDefault);
            Py_END_ALLOW_THREADS

            *sipOwner = Py_None;

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

            sipCpp->sipPySelf = sipSelf;

            return sipCpp;
        }
    }

    {
        const ::wxColour* colText;
        int colTextState = 0;
        const ::wxColour* colBack;
        int colBackState = 0;
        const ::wxFont* font;
        int hAlign;
        int vAlign;

        static const char *sipKwdList[] = {
            sipName_colText,
            sipName_colBack,
            sipName_font,
            sipName_hAlign,
            sipName_vAlign,
        };

        if (sipParseKwdArgs(sipParseErr, sipArgs, sipKwds, sipKwdList, sipUnused, "J1J1J9ii", sipType_wxColour, &colText, &colTextState, sipType_wxColour, &colBack, &colBackState, sipType_wxFont, &font, &hAlign, &vAlign))
        {
            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipCpp = new sipwxGridCellAttr(*colText, *colBack, *font, hAlign, vAlign);
            Py_END_ALLOW_THREADS

            *sipOwner = Py_None;
            sipReleaseType(const_cast< ::wxColour *>(colText), sipType_wxColour, colTextState);
            sipReleaseType(const_cast< ::wxColour *>(colBack), sipType_wxColour, colBackState);

            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_wxGridCellAttr[] = {{26, 0, 0}, {22, 0, 1}};


static PyMethodDef methods_wxGridCellAttr[] = {
    {sipName_CanOverflow, meth_wxGridCellAttr_CanOverflow, METH_VARARGS, doc_wxGridCellAttr_CanOverflow},
    {sipName_Clone, meth_wxGridCellAttr_Clone, METH_VARARGS, doc_wxGridCellAttr_Clone},
    {sipName_DecRef, meth_wxGridCellAttr_DecRef, METH_VARARGS, doc_wxGridCellAttr_DecRef},
    {sipName_GetAlignment, SIP_MLMETH_CAST(meth_wxGridCellAttr_GetAlignment), METH_VARARGS|METH_KEYWORDS, doc_wxGridCellAttr_GetAlignment},
    {sipName_GetBackgroundColour, meth_wxGridCellAttr_GetBackgroundColour, METH_VARARGS, doc_wxGridCellAttr_GetBackgroundColour},
    {sipName_GetEditor, SIP_MLMETH_CAST(meth_wxGridCellAttr_GetEditor), METH_VARARGS|METH_KEYWORDS, doc_wxGridCellAttr_GetEditor},
    {sipName_GetEditorPtr, SIP_MLMETH_CAST(meth_wxGridCellAttr_GetEditorPtr), METH_VARARGS|METH_KEYWORDS, doc_wxGridCellAttr_GetEditorPtr},
    {sipName_GetFitMode, meth_wxGridCellAttr_GetFitMode, METH_VARARGS, doc_wxGridCellAttr_GetFitMode},
    {sipName_GetFont, meth_wxGridCellAttr_GetFont, METH_VARARGS, doc_wxGridCellAttr_GetFont},
    {sipName_GetKind, meth_wxGridCellAttr_GetKind, METH_VARARGS, doc_wxGridCellAttr_GetKind},
    {sipName_GetNonDefaultAlignment, SIP_MLMETH_CAST(meth_wxGridCellAttr_GetNonDefaultAlignment), METH_VARARGS|METH_KEYWORDS, doc_wxGridCellAttr_GetNonDefaultAlignment},
    {sipName_GetOverflow, meth_wxGridCellAttr_GetOverflow, METH_VARARGS, doc_wxGridCellAttr_GetOverflow},
    {sipName_GetRenderer, SIP_MLMETH_CAST(meth_wxGridCellAttr_GetRenderer), METH_VARARGS|METH_KEYWORDS, doc_wxGridCellAttr_GetRenderer},
    {sipName_GetSize, SIP_MLMETH_CAST(meth_wxGridCellAttr_GetSize), METH_VARARGS|METH_KEYWORDS, doc_wxGridCellAttr_GetSize},
    {sipName_GetTextColour, meth_wxGridCellAttr_GetTextColour, METH_VARARGS, doc_wxGridCellAttr_GetTextColour},
    {sipName_HasAlignment, meth_wxGridCellAttr_HasAlignment, METH_VARARGS, doc_wxGridCellAttr_HasAlignment},
    {sipName_HasBackgroundColour, meth_wxGridCellAttr_HasBackgroundColour, METH_VARARGS, doc_wxGridCellAttr_HasBackgroundColour},
    {sipName_HasEditor, meth_wxGridCellAttr_HasEditor, METH_VARARGS, doc_wxGridCellAttr_HasEditor},
    {sipName_HasFont, meth_wxGridCellAttr_HasFont, METH_VARARGS, doc_wxGridCellAttr_HasFont},
    {sipName_HasOverflowMode, meth_wxGridCellAttr_HasOverflowMode, METH_VARARGS, doc_wxGridCellAttr_HasOverflowMode},
    {sipName_HasReadWriteMode, meth_wxGridCellAttr_HasReadWriteMode, METH_VARARGS, doc_wxGridCellAttr_HasReadWriteMode},
    {sipName_HasRenderer, meth_wxGridCellAttr_HasRenderer, METH_VARARGS, doc_wxGridCellAttr_HasRenderer},
    {sipName_HasSize, meth_wxGridCellAttr_HasSize, METH_VARARGS, doc_wxGridCellAttr_HasSize},
    {sipName_HasTextColour, meth_wxGridCellAttr_HasTextColour, METH_VARARGS, doc_wxGridCellAttr_HasTextColour},
    {sipName_IncRef, meth_wxGridCellAttr_IncRef, METH_VARARGS, doc_wxGridCellAttr_IncRef},
    {sipName_IsReadOnly, meth_wxGridCellAttr_IsReadOnly, METH_VARARGS, doc_wxGridCellAttr_IsReadOnly},
    {sipName_MergeWith, SIP_MLMETH_CAST(meth_wxGridCellAttr_MergeWith), METH_VARARGS|METH_KEYWORDS, doc_wxGridCellAttr_MergeWith},
    {sipName_SetAlignment, SIP_MLMETH_CAST(meth_wxGridCellAttr_SetAlignment), METH_VARARGS|METH_KEYWORDS, doc_wxGridCellAttr_SetAlignment},
    {sipName_SetBackgroundColour, SIP_MLMETH_CAST(meth_wxGridCellAttr_SetBackgroundColour), METH_VARARGS|METH_KEYWORDS, doc_wxGridCellAttr_SetBackgroundColour},
    {sipName_SetDefAttr, SIP_MLMETH_CAST(meth_wxGridCellAttr_SetDefAttr), METH_VARARGS|METH_KEYWORDS, doc_wxGridCellAttr_SetDefAttr},
    {sipName_SetEditor, SIP_MLMETH_CAST(meth_wxGridCellAttr_SetEditor), METH_VARARGS|METH_KEYWORDS, doc_wxGridCellAttr_SetEditor},
    {sipName_SetFitMode, SIP_MLMETH_CAST(meth_wxGridCellAttr_SetFitMode), METH_VARARGS|METH_KEYWORDS, doc_wxGridCellAttr_SetFitMode},
    {sipName_SetFont, SIP_MLMETH_CAST(meth_wxGridCellAttr_SetFont), METH_VARARGS|METH_KEYWORDS, doc_wxGridCellAttr_SetFont},
    {sipName_SetKind, SIP_MLMETH_CAST(meth_wxGridCellAttr_SetKind), METH_VARARGS|METH_KEYWORDS, doc_wxGridCellAttr_SetKind},
    {sipName_SetOverflow, SIP_MLMETH_CAST(meth_wxGridCellAttr_SetOverflow), METH_VARARGS|METH_KEYWORDS, doc_wxGridCellAttr_SetOverflow},
    {sipName_SetReadOnly, SIP_MLMETH_CAST(meth_wxGridCellAttr_SetReadOnly), METH_VARARGS|METH_KEYWORDS, doc_wxGridCellAttr_SetReadOnly},
    {sipName_SetRenderer, SIP_MLMETH_CAST(meth_wxGridCellAttr_SetRenderer), METH_VARARGS|METH_KEYWORDS, doc_wxGridCellAttr_SetRenderer},
    {sipName_SetSize, SIP_MLMETH_CAST(meth_wxGridCellAttr_SetSize), METH_VARARGS|METH_KEYWORDS, doc_wxGridCellAttr_SetSize},
    {sipName_SetTextColour, SIP_MLMETH_CAST(meth_wxGridCellAttr_SetTextColour), METH_VARARGS|METH_KEYWORDS, doc_wxGridCellAttr_SetTextColour}
};

static sipEnumMemberDef enummembers_wxGridCellAttr[] = {
    {sipName_Any, static_cast<int>(::wxGridCellAttr::Any), 13},
    {sipName_Cell, static_cast<int>(::wxGridCellAttr::Cell), 13},
    {sipName_Col, static_cast<int>(::wxGridCellAttr::Col), 13},
    {sipName_Default, static_cast<int>(::wxGridCellAttr::Default), 13},
    {sipName_Merged, static_cast<int>(::wxGridCellAttr::Merged), 13},
    {sipName_Row, static_cast<int>(::wxGridCellAttr::Row), 13},
};

sipVariableDef variables_wxGridCellAttr[] = {
    {PropertyVariable, sipName_TextColour, &methods_wxGridCellAttr[14], &methods_wxGridCellAttr[38], SIP_NULLPTR, SIP_NULLPTR},
    {PropertyVariable, sipName_Overflow, &methods_wxGridCellAttr[11], &methods_wxGridCellAttr[34], SIP_NULLPTR, SIP_NULLPTR},
    {PropertyVariable, sipName_Kind, &methods_wxGridCellAttr[9], &methods_wxGridCellAttr[33], SIP_NULLPTR, SIP_NULLPTR},
    {PropertyVariable, sipName_Font, &methods_wxGridCellAttr[8], &methods_wxGridCellAttr[32], SIP_NULLPTR, SIP_NULLPTR},
    {PropertyVariable, sipName_FitMode, &methods_wxGridCellAttr[7], &methods_wxGridCellAttr[31], SIP_NULLPTR, SIP_NULLPTR},
    {PropertyVariable, sipName_BackgroundColour, &methods_wxGridCellAttr[4], &methods_wxGridCellAttr[28], SIP_NULLPTR, SIP_NULLPTR},
};

PyDoc_STRVAR(doc_wxGridCellAttr, "GridCellAttr(attrDefault=None) -> None\n"
"GridCellAttr(colText, colBack, font, hAlign, vAlign) -> None\n"
"\n"
"This class can be used to alter the cells' appearance in the grid by\n"
"changing their attributes from the defaults.");


sipClassTypeDef sipTypeDef__grid_wxGridCellAttr = {
    {
        -1,
        SIP_NULLPTR,
        SIP_NULLPTR,
        SIP_TYPE_CLASS,
        sipNameNr_wxGridCellAttr,
        SIP_NULLPTR,
        SIP_NULLPTR,
    },
    {
        sipNameNr_GridCellAttr,
        {0, 0, 1},
        39, methods_wxGridCellAttr,
        6, enummembers_wxGridCellAttr,
        6, variables_wxGridCellAttr,
        {SIP_NULLPTR, SIP_NULLPTR, SIP_NULLPTR, SIP_NULLPTR, SIP_NULLPTR, SIP_NULLPTR, SIP_NULLPTR, SIP_NULLPTR, SIP_NULLPTR, SIP_NULLPTR},
    },
    doc_wxGridCellAttr,
    -1,
    -1,
    supers_wxGridCellAttr,
    SIP_NULLPTR,
    init_type_wxGridCellAttr,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
    dealloc_wxGridCellAttr,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
    release_wxGridCellAttr,
    cast_wxGridCellAttr,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
    sizeof (::wxGridCellAttr),
};
