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

#include "sipAPI_ribbon.h"
        #include <wx/ribbon/art.h>
        #include <wx/gdicmn.h>
        #include <wx/gdicmn.h>
        #include <wx/dc.h>
        #include <wx/window.h>
        #include <wx/ribbon/panel.h>
        #include <wx/ribbon/page.h>
        #include <wx/ribbon/gallery.h>
        #include <wx/gdicmn.h>
        #include <wx/bitmap.h>
        #include <wx/ribbon/bar.h>
        #include <wx/ribbon/bar.h>
        #include <wx/colour.h>
        #include <wx/font.h>


class sipwxRibbonArtProvider : public ::wxRibbonArtProvider
{
public:
    sipwxRibbonArtProvider();
    sipwxRibbonArtProvider(const ::wxRibbonArtProvider&);
    virtual ~sipwxRibbonArtProvider();

    /*
     * There is a protected method for every virtual method visible from
     * this class.
     */
protected:
    ::wxRect GetRibbonHelpButtonArea(const ::wxRect&) SIP_OVERRIDE;
    ::wxRect GetBarToggleButtonArea(const ::wxRect&) SIP_OVERRIDE;
    ::wxSize GetToolSize(::wxDC&, ::wxWindow*, ::wxSize, ::wxRibbonButtonKind, bool, bool, ::wxRect*) SIP_OVERRIDE;
    ::wxSize GetMinimisedPanelMinimumSize(::wxDC&, const ::wxRibbonPanel*, ::wxSize*, ::wxDirection*) SIP_OVERRIDE;
    ::wxCoord GetButtonBarButtonTextWidth(::wxDC&, const ::wxString&, ::wxRibbonButtonKind, ::wxRibbonButtonBarButtonState) SIP_OVERRIDE;
    bool GetButtonBarButtonSize(::wxDC&, ::wxWindow*, ::wxRibbonButtonKind, ::wxRibbonButtonBarButtonState, const ::wxString&, ::wxCoord, ::wxSize, ::wxSize, ::wxSize*, ::wxRect*, ::wxRect*) SIP_OVERRIDE;
    ::wxRect GetPageBackgroundRedrawArea(::wxDC&, const ::wxRibbonPage*, ::wxSize, ::wxSize) SIP_OVERRIDE;
    ::wxSize GetGalleryClientSize(::wxDC&, const ::wxRibbonGallery*, ::wxSize, ::wxPoint*, ::wxRect*, ::wxRect*, ::wxRect*) SIP_OVERRIDE;
    ::wxSize GetGallerySize(::wxDC&, const ::wxRibbonGallery*, ::wxSize) SIP_OVERRIDE;
    ::wxRect GetPanelExtButtonArea(::wxDC&, const ::wxRibbonPanel*, ::wxRect) SIP_OVERRIDE;
    ::wxSize GetPanelClientSize(::wxDC&, const ::wxRibbonPanel*, ::wxSize, ::wxPoint*) SIP_OVERRIDE;
    ::wxSize GetPanelSize(::wxDC&, const ::wxRibbonPanel*, ::wxSize, ::wxPoint*) SIP_OVERRIDE;
    ::wxSize GetScrollButtonMinimumSize(::wxDC&, ::wxWindow*, long) SIP_OVERRIDE;
    int GetTabCtrlHeight(::wxDC&, ::wxWindow*, const ::wxRibbonPageTabInfoArray&) SIP_OVERRIDE;
    void GetBarTabWidth(::wxDC&, ::wxWindow*, const ::wxString&, const ::wxBitmap&, int*, int*, int*, int*) SIP_OVERRIDE;
    void DrawHelpButton(::wxDC&, ::wxRibbonBar*, const ::wxRect&) SIP_OVERRIDE;
    void DrawToggleButton(::wxDC&, ::wxRibbonBar*, const ::wxRect&, ::wxRibbonDisplayMode) SIP_OVERRIDE;
    void DrawTool(::wxDC&, ::wxWindow*, const ::wxRect&, const ::wxBitmap&, ::wxRibbonButtonKind, long) SIP_OVERRIDE;
    void DrawToolGroupBackground(::wxDC&, ::wxWindow*, const ::wxRect&) SIP_OVERRIDE;
    void DrawToolBarBackground(::wxDC&, ::wxWindow*, const ::wxRect&) SIP_OVERRIDE;
    void DrawButtonBarButton(::wxDC&, ::wxWindow*, const ::wxRect&, ::wxRibbonButtonKind, long, const ::wxString&, const ::wxBitmap&, const ::wxBitmap&) SIP_OVERRIDE;
    void DrawButtonBarBackground(::wxDC&, ::wxWindow*, const ::wxRect&) SIP_OVERRIDE;
    void DrawMinimisedPanel(::wxDC&, ::wxRibbonPanel*, const ::wxRect&, ::wxBitmap&) SIP_OVERRIDE;
    void DrawGalleryItemBackground(::wxDC&, ::wxRibbonGallery*, const ::wxRect&, ::wxRibbonGalleryItem*) SIP_OVERRIDE;
    void DrawGalleryBackground(::wxDC&, ::wxRibbonGallery*, const ::wxRect&) SIP_OVERRIDE;
    void DrawPanelBackground(::wxDC&, ::wxRibbonPanel*, const ::wxRect&) SIP_OVERRIDE;
    void DrawScrollButton(::wxDC&, ::wxWindow*, const ::wxRect&, long) SIP_OVERRIDE;
    void DrawPageBackground(::wxDC&, ::wxWindow*, const ::wxRect&) SIP_OVERRIDE;
    void DrawTabSeparator(::wxDC&, ::wxWindow*, const ::wxRect&, double) SIP_OVERRIDE;
    void DrawTab(::wxDC&, ::wxWindow*, const ::wxRibbonPageTabInfo&) SIP_OVERRIDE;
    void DrawTabCtrlBackground(::wxDC&, ::wxWindow*, const ::wxRect&) SIP_OVERRIDE;
    void SetColourScheme(const ::wxColour&, const ::wxColour&, const ::wxColour&) SIP_OVERRIDE;
    void GetColourScheme(::wxColour*, ::wxColour*, ::wxColour*) const SIP_OVERRIDE;
    void SetColour(int, const ::wxColour&) SIP_OVERRIDE;
    ::wxColour GetColour(int) const SIP_OVERRIDE;
    ::wxFont GetFont(int) const SIP_OVERRIDE;
    void SetFont(int, const ::wxFont&) SIP_OVERRIDE;
    void SetMetric(int, int) SIP_OVERRIDE;
    int GetMetric(int) const SIP_OVERRIDE;
    long GetFlags() const SIP_OVERRIDE;
    void SetFlags(long) SIP_OVERRIDE;
    ::wxRibbonArtProvider* Clone() const SIP_OVERRIDE;

public:
    sipSimpleWrapper *sipPySelf;

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

    char sipPyMethods[42];
};

sipwxRibbonArtProvider::sipwxRibbonArtProvider(): ::wxRibbonArtProvider(), sipPySelf(SIP_NULLPTR)
{
    memset(sipPyMethods, 0, sizeof (sipPyMethods));
}

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

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

::wxRect sipwxRibbonArtProvider::GetRibbonHelpButtonArea(const ::wxRect& rect)
{
    sip_gilstate_t sipGILState;
    PyObject *sipMeth;

    sipMeth = sipIsPyMethod(&sipGILState, &sipPyMethods[0], &sipPySelf, sipName_RibbonArtProvider, sipName_GetRibbonHelpButtonArea);

    if (!sipMeth)
        return ::wxRect();

    extern ::wxRect sipVH__ribbon_54(sip_gilstate_t, sipVirtErrorHandlerFunc, sipSimpleWrapper *, PyObject *, const ::wxRect&);

    return sipVH__ribbon_54(sipGILState, 0, sipPySelf, sipMeth, rect);
}

::wxRect sipwxRibbonArtProvider::GetBarToggleButtonArea(const ::wxRect& rect)
{
    sip_gilstate_t sipGILState;
    PyObject *sipMeth;

    sipMeth = sipIsPyMethod(&sipGILState, &sipPyMethods[1], &sipPySelf, sipName_RibbonArtProvider, sipName_GetBarToggleButtonArea);

    if (!sipMeth)
        return ::wxRect();

    extern ::wxRect sipVH__ribbon_54(sip_gilstate_t, sipVirtErrorHandlerFunc, sipSimpleWrapper *, PyObject *, const ::wxRect&);

    return sipVH__ribbon_54(sipGILState, 0, sipPySelf, sipMeth, rect);
}

::wxSize sipwxRibbonArtProvider::GetToolSize(::wxDC& dc, ::wxWindow*wnd, ::wxSize bitmap_size, ::wxRibbonButtonKind kind, bool is_first, bool is_last, ::wxRect*dropdown_region)
{
    sip_gilstate_t sipGILState;
    PyObject *sipMeth;

    sipMeth = sipIsPyMethod(&sipGILState, &sipPyMethods[2], &sipPySelf, sipName_RibbonArtProvider, sipName_GetToolSize);

    if (!sipMeth)
        return ::wxSize();

    extern ::wxSize sipVH__ribbon_53(sip_gilstate_t, sipVirtErrorHandlerFunc, sipSimpleWrapper *, PyObject *, ::wxDC&, ::wxWindow*, ::wxSize, ::wxRibbonButtonKind, bool, bool, ::wxRect*);

    return sipVH__ribbon_53(sipGILState, 0, sipPySelf, sipMeth, dc, wnd, bitmap_size, kind, is_first, is_last, dropdown_region);
}

::wxSize sipwxRibbonArtProvider::GetMinimisedPanelMinimumSize(::wxDC& dc, const ::wxRibbonPanel*wnd, ::wxSize*desired_bitmap_size, ::wxDirection*expanded_panel_direction)
{
    sip_gilstate_t sipGILState;
    PyObject *sipMeth;

    sipMeth = sipIsPyMethod(&sipGILState, &sipPyMethods[3], &sipPySelf, sipName_RibbonArtProvider, sipName_GetMinimisedPanelMinimumSize);

    if (!sipMeth)
        return ::wxSize();

    extern ::wxSize sipVH__ribbon_52(sip_gilstate_t, sipVirtErrorHandlerFunc, sipSimpleWrapper *, PyObject *, ::wxDC&, const ::wxRibbonPanel*, ::wxSize*, ::wxDirection*);

    return sipVH__ribbon_52(sipGILState, 0, sipPySelf, sipMeth, dc, wnd, desired_bitmap_size, expanded_panel_direction);
}

::wxCoord sipwxRibbonArtProvider::GetButtonBarButtonTextWidth(::wxDC& dc, const ::wxString& label, ::wxRibbonButtonKind kind, ::wxRibbonButtonBarButtonState size)
{
    sip_gilstate_t sipGILState;
    PyObject *sipMeth;

    sipMeth = sipIsPyMethod(&sipGILState, &sipPyMethods[4], &sipPySelf, sipName_RibbonArtProvider, sipName_GetButtonBarButtonTextWidth);

    if (!sipMeth)
        return 0;

    extern ::wxCoord sipVH__ribbon_51(sip_gilstate_t, sipVirtErrorHandlerFunc, sipSimpleWrapper *, PyObject *, ::wxDC&, const ::wxString&, ::wxRibbonButtonKind, ::wxRibbonButtonBarButtonState);

    return sipVH__ribbon_51(sipGILState, 0, sipPySelf, sipMeth, dc, label, kind, size);
}

bool sipwxRibbonArtProvider::GetButtonBarButtonSize(::wxDC& dc, ::wxWindow*wnd, ::wxRibbonButtonKind kind, ::wxRibbonButtonBarButtonState size, const ::wxString& label, ::wxCoord text_min_width, ::wxSize bitmap_size_large, ::wxSize bitmap_size_small, ::wxSize*button_size, ::wxRect*normal_region, ::wxRect*dropdown_region)
{
    sip_gilstate_t sipGILState;
    PyObject *sipMeth;

    sipMeth = sipIsPyMethod(&sipGILState, &sipPyMethods[5], &sipPySelf, sipName_RibbonArtProvider, sipName_GetButtonBarButtonSize);

    if (!sipMeth)
        return 0;

    extern bool sipVH__ribbon_50(sip_gilstate_t, sipVirtErrorHandlerFunc, sipSimpleWrapper *, PyObject *, ::wxDC&, ::wxWindow*, ::wxRibbonButtonKind, ::wxRibbonButtonBarButtonState, const ::wxString&, ::wxCoord, ::wxSize, ::wxSize, ::wxSize*, ::wxRect*, ::wxRect*);

    return sipVH__ribbon_50(sipGILState, 0, sipPySelf, sipMeth, dc, wnd, kind, size, label, text_min_width, bitmap_size_large, bitmap_size_small, button_size, normal_region, dropdown_region);
}

::wxRect sipwxRibbonArtProvider::GetPageBackgroundRedrawArea(::wxDC& dc, const ::wxRibbonPage*wnd, ::wxSize page_old_size, ::wxSize page_new_size)
{
    sip_gilstate_t sipGILState;
    PyObject *sipMeth;

    sipMeth = sipIsPyMethod(&sipGILState, &sipPyMethods[6], &sipPySelf, sipName_RibbonArtProvider, sipName_GetPageBackgroundRedrawArea);

    if (!sipMeth)
        return ::wxRect();

    extern ::wxRect sipVH__ribbon_49(sip_gilstate_t, sipVirtErrorHandlerFunc, sipSimpleWrapper *, PyObject *, ::wxDC&, const ::wxRibbonPage*, ::wxSize, ::wxSize);

    return sipVH__ribbon_49(sipGILState, 0, sipPySelf, sipMeth, dc, wnd, page_old_size, page_new_size);
}

::wxSize sipwxRibbonArtProvider::GetGalleryClientSize(::wxDC& dc, const ::wxRibbonGallery*wnd, ::wxSize size, ::wxPoint*client_offset, ::wxRect*scroll_up_button, ::wxRect*scroll_down_button, ::wxRect*extension_button)
{
    sip_gilstate_t sipGILState;
    PyObject *sipMeth;

    sipMeth = sipIsPyMethod(&sipGILState, &sipPyMethods[7], &sipPySelf, sipName_RibbonArtProvider, sipName_GetGalleryClientSize);

    if (!sipMeth)
        return ::wxSize();

    extern ::wxSize sipVH__ribbon_48(sip_gilstate_t, sipVirtErrorHandlerFunc, sipSimpleWrapper *, PyObject *, ::wxDC&, const ::wxRibbonGallery*, ::wxSize, ::wxPoint*, ::wxRect*, ::wxRect*, ::wxRect*);

    return sipVH__ribbon_48(sipGILState, 0, sipPySelf, sipMeth, dc, wnd, size, client_offset, scroll_up_button, scroll_down_button, extension_button);
}

::wxSize sipwxRibbonArtProvider::GetGallerySize(::wxDC& dc, const ::wxRibbonGallery*wnd, ::wxSize client_size)
{
    sip_gilstate_t sipGILState;
    PyObject *sipMeth;

    sipMeth = sipIsPyMethod(&sipGILState, &sipPyMethods[8], &sipPySelf, sipName_RibbonArtProvider, sipName_GetGallerySize);

    if (!sipMeth)
        return ::wxSize();

    extern ::wxSize sipVH__ribbon_47(sip_gilstate_t, sipVirtErrorHandlerFunc, sipSimpleWrapper *, PyObject *, ::wxDC&, const ::wxRibbonGallery*, ::wxSize);

    return sipVH__ribbon_47(sipGILState, 0, sipPySelf, sipMeth, dc, wnd, client_size);
}

::wxRect sipwxRibbonArtProvider::GetPanelExtButtonArea(::wxDC& dc, const ::wxRibbonPanel*wnd, ::wxRect rect)
{
    sip_gilstate_t sipGILState;
    PyObject *sipMeth;

    sipMeth = sipIsPyMethod(&sipGILState, &sipPyMethods[9], &sipPySelf, sipName_RibbonArtProvider, sipName_GetPanelExtButtonArea);

    if (!sipMeth)
        return ::wxRect();

    extern ::wxRect sipVH__ribbon_46(sip_gilstate_t, sipVirtErrorHandlerFunc, sipSimpleWrapper *, PyObject *, ::wxDC&, const ::wxRibbonPanel*, ::wxRect);

    return sipVH__ribbon_46(sipGILState, 0, sipPySelf, sipMeth, dc, wnd, rect);
}

::wxSize sipwxRibbonArtProvider::GetPanelClientSize(::wxDC& dc, const ::wxRibbonPanel*wnd, ::wxSize size, ::wxPoint*client_offset)
{
    sip_gilstate_t sipGILState;
    PyObject *sipMeth;

    sipMeth = sipIsPyMethod(&sipGILState, &sipPyMethods[10], &sipPySelf, sipName_RibbonArtProvider, sipName_GetPanelClientSize);

    if (!sipMeth)
        return ::wxSize();

    extern ::wxSize sipVH__ribbon_45(sip_gilstate_t, sipVirtErrorHandlerFunc, sipSimpleWrapper *, PyObject *, ::wxDC&, const ::wxRibbonPanel*, ::wxSize, ::wxPoint*);

    return sipVH__ribbon_45(sipGILState, 0, sipPySelf, sipMeth, dc, wnd, size, client_offset);
}

::wxSize sipwxRibbonArtProvider::GetPanelSize(::wxDC& dc, const ::wxRibbonPanel*wnd, ::wxSize client_size, ::wxPoint*client_offset)
{
    sip_gilstate_t sipGILState;
    PyObject *sipMeth;

    sipMeth = sipIsPyMethod(&sipGILState, &sipPyMethods[11], &sipPySelf, sipName_RibbonArtProvider, sipName_GetPanelSize);

    if (!sipMeth)
        return ::wxSize();

    extern ::wxSize sipVH__ribbon_45(sip_gilstate_t, sipVirtErrorHandlerFunc, sipSimpleWrapper *, PyObject *, ::wxDC&, const ::wxRibbonPanel*, ::wxSize, ::wxPoint*);

    return sipVH__ribbon_45(sipGILState, 0, sipPySelf, sipMeth, dc, wnd, client_size, client_offset);
}

::wxSize sipwxRibbonArtProvider::GetScrollButtonMinimumSize(::wxDC& dc, ::wxWindow*wnd, long style)
{
    sip_gilstate_t sipGILState;
    PyObject *sipMeth;

    sipMeth = sipIsPyMethod(&sipGILState, &sipPyMethods[12], &sipPySelf, sipName_RibbonArtProvider, sipName_GetScrollButtonMinimumSize);

    if (!sipMeth)
        return ::wxSize();

    extern ::wxSize sipVH__ribbon_44(sip_gilstate_t, sipVirtErrorHandlerFunc, sipSimpleWrapper *, PyObject *, ::wxDC&, ::wxWindow*, long);

    return sipVH__ribbon_44(sipGILState, 0, sipPySelf, sipMeth, dc, wnd, style);
}

int sipwxRibbonArtProvider::GetTabCtrlHeight(::wxDC& dc, ::wxWindow*wnd, const ::wxRibbonPageTabInfoArray& pages)
{
    sip_gilstate_t sipGILState;
    PyObject *sipMeth;

    sipMeth = sipIsPyMethod(&sipGILState, &sipPyMethods[13], &sipPySelf, sipName_RibbonArtProvider, sipName_GetTabCtrlHeight);

    if (!sipMeth)
        return 0;

    extern int sipVH__ribbon_43(sip_gilstate_t, sipVirtErrorHandlerFunc, sipSimpleWrapper *, PyObject *, ::wxDC&, ::wxWindow*, const ::wxRibbonPageTabInfoArray&);

    return sipVH__ribbon_43(sipGILState, 0, sipPySelf, sipMeth, dc, wnd, pages);
}

void sipwxRibbonArtProvider::GetBarTabWidth(::wxDC& dc, ::wxWindow*wnd, const ::wxString& label, const ::wxBitmap& bitmap, int*ideal, int*small_begin_need_separator, int*small_must_have_separator, int*minimum)
{
    sip_gilstate_t sipGILState;
    PyObject *sipMeth;

    sipMeth = sipIsPyMethod(&sipGILState, &sipPyMethods[14], &sipPySelf, sipName_RibbonArtProvider, sipName_GetBarTabWidth);

    if (!sipMeth)
        return;

    extern void sipVH__ribbon_42(sip_gilstate_t, sipVirtErrorHandlerFunc, sipSimpleWrapper *, PyObject *, ::wxDC&, ::wxWindow*, const ::wxString&, const ::wxBitmap&, int*, int*, int*, int*);

    sipVH__ribbon_42(sipGILState, 0, sipPySelf, sipMeth, dc, wnd, label, bitmap, ideal, small_begin_need_separator, small_must_have_separator, minimum);
}

void sipwxRibbonArtProvider::DrawHelpButton(::wxDC& dc, ::wxRibbonBar*wnd, const ::wxRect& rect)
{
    sip_gilstate_t sipGILState;
    PyObject *sipMeth;

    sipMeth = sipIsPyMethod(&sipGILState, &sipPyMethods[15], &sipPySelf, sipName_RibbonArtProvider, sipName_DrawHelpButton);

    if (!sipMeth)
        return;

    extern void sipVH__ribbon_41(sip_gilstate_t, sipVirtErrorHandlerFunc, sipSimpleWrapper *, PyObject *, ::wxDC&, ::wxRibbonBar*, const ::wxRect&);

    sipVH__ribbon_41(sipGILState, 0, sipPySelf, sipMeth, dc, wnd, rect);
}

void sipwxRibbonArtProvider::DrawToggleButton(::wxDC& dc, ::wxRibbonBar*wnd, const ::wxRect& rect, ::wxRibbonDisplayMode mode)
{
    sip_gilstate_t sipGILState;
    PyObject *sipMeth;

    sipMeth = sipIsPyMethod(&sipGILState, &sipPyMethods[16], &sipPySelf, sipName_RibbonArtProvider, sipName_DrawToggleButton);

    if (!sipMeth)
        return;

    extern void sipVH__ribbon_40(sip_gilstate_t, sipVirtErrorHandlerFunc, sipSimpleWrapper *, PyObject *, ::wxDC&, ::wxRibbonBar*, const ::wxRect&, ::wxRibbonDisplayMode);

    sipVH__ribbon_40(sipGILState, 0, sipPySelf, sipMeth, dc, wnd, rect, mode);
}

void sipwxRibbonArtProvider::DrawTool(::wxDC& dc, ::wxWindow*wnd, const ::wxRect& rect, const ::wxBitmap& bitmap, ::wxRibbonButtonKind kind, long state)
{
    sip_gilstate_t sipGILState;
    PyObject *sipMeth;

    sipMeth = sipIsPyMethod(&sipGILState, &sipPyMethods[17], &sipPySelf, sipName_RibbonArtProvider, sipName_DrawTool);

    if (!sipMeth)
        return;

    extern void sipVH__ribbon_39(sip_gilstate_t, sipVirtErrorHandlerFunc, sipSimpleWrapper *, PyObject *, ::wxDC&, ::wxWindow*, const ::wxRect&, const ::wxBitmap&, ::wxRibbonButtonKind, long);

    sipVH__ribbon_39(sipGILState, 0, sipPySelf, sipMeth, dc, wnd, rect, bitmap, kind, state);
}

void sipwxRibbonArtProvider::DrawToolGroupBackground(::wxDC& dc, ::wxWindow*wnd, const ::wxRect& rect)
{
    sip_gilstate_t sipGILState;
    PyObject *sipMeth;

    sipMeth = sipIsPyMethod(&sipGILState, &sipPyMethods[18], &sipPySelf, sipName_RibbonArtProvider, sipName_DrawToolGroupBackground);

    if (!sipMeth)
        return;

    extern void sipVH__ribbon_30(sip_gilstate_t, sipVirtErrorHandlerFunc, sipSimpleWrapper *, PyObject *, ::wxDC&, ::wxWindow*, const ::wxRect&);

    sipVH__ribbon_30(sipGILState, 0, sipPySelf, sipMeth, dc, wnd, rect);
}

void sipwxRibbonArtProvider::DrawToolBarBackground(::wxDC& dc, ::wxWindow*wnd, const ::wxRect& rect)
{
    sip_gilstate_t sipGILState;
    PyObject *sipMeth;

    sipMeth = sipIsPyMethod(&sipGILState, &sipPyMethods[19], &sipPySelf, sipName_RibbonArtProvider, sipName_DrawToolBarBackground);

    if (!sipMeth)
        return;

    extern void sipVH__ribbon_30(sip_gilstate_t, sipVirtErrorHandlerFunc, sipSimpleWrapper *, PyObject *, ::wxDC&, ::wxWindow*, const ::wxRect&);

    sipVH__ribbon_30(sipGILState, 0, sipPySelf, sipMeth, dc, wnd, rect);
}

void sipwxRibbonArtProvider::DrawButtonBarButton(::wxDC& dc, ::wxWindow*wnd, const ::wxRect& rect, ::wxRibbonButtonKind kind, long state, const ::wxString& label, const ::wxBitmap& bitmap_large, const ::wxBitmap& bitmap_small)
{
    sip_gilstate_t sipGILState;
    PyObject *sipMeth;

    sipMeth = sipIsPyMethod(&sipGILState, &sipPyMethods[20], &sipPySelf, sipName_RibbonArtProvider, sipName_DrawButtonBarButton);

    if (!sipMeth)
        return;

    extern void sipVH__ribbon_38(sip_gilstate_t, sipVirtErrorHandlerFunc, sipSimpleWrapper *, PyObject *, ::wxDC&, ::wxWindow*, const ::wxRect&, ::wxRibbonButtonKind, long, const ::wxString&, const ::wxBitmap&, const ::wxBitmap&);

    sipVH__ribbon_38(sipGILState, 0, sipPySelf, sipMeth, dc, wnd, rect, kind, state, label, bitmap_large, bitmap_small);
}

void sipwxRibbonArtProvider::DrawButtonBarBackground(::wxDC& dc, ::wxWindow*wnd, const ::wxRect& rect)
{
    sip_gilstate_t sipGILState;
    PyObject *sipMeth;

    sipMeth = sipIsPyMethod(&sipGILState, &sipPyMethods[21], &sipPySelf, sipName_RibbonArtProvider, sipName_DrawButtonBarBackground);

    if (!sipMeth)
        return;

    extern void sipVH__ribbon_30(sip_gilstate_t, sipVirtErrorHandlerFunc, sipSimpleWrapper *, PyObject *, ::wxDC&, ::wxWindow*, const ::wxRect&);

    sipVH__ribbon_30(sipGILState, 0, sipPySelf, sipMeth, dc, wnd, rect);
}

void sipwxRibbonArtProvider::DrawMinimisedPanel(::wxDC& dc, ::wxRibbonPanel*wnd, const ::wxRect& rect, ::wxBitmap& bitmap)
{
    sip_gilstate_t sipGILState;
    PyObject *sipMeth;

    sipMeth = sipIsPyMethod(&sipGILState, &sipPyMethods[22], &sipPySelf, sipName_RibbonArtProvider, sipName_DrawMinimisedPanel);

    if (!sipMeth)
        return;

    extern void sipVH__ribbon_37(sip_gilstate_t, sipVirtErrorHandlerFunc, sipSimpleWrapper *, PyObject *, ::wxDC&, ::wxRibbonPanel*, const ::wxRect&, ::wxBitmap&);

    sipVH__ribbon_37(sipGILState, 0, sipPySelf, sipMeth, dc, wnd, rect, bitmap);
}

void sipwxRibbonArtProvider::DrawGalleryItemBackground(::wxDC& dc, ::wxRibbonGallery*wnd, const ::wxRect& rect, ::wxRibbonGalleryItem*item)
{
    sip_gilstate_t sipGILState;
    PyObject *sipMeth;

    sipMeth = sipIsPyMethod(&sipGILState, &sipPyMethods[23], &sipPySelf, sipName_RibbonArtProvider, sipName_DrawGalleryItemBackground);

    if (!sipMeth)
        return;

    extern void sipVH__ribbon_36(sip_gilstate_t, sipVirtErrorHandlerFunc, sipSimpleWrapper *, PyObject *, ::wxDC&, ::wxRibbonGallery*, const ::wxRect&, ::wxRibbonGalleryItem*);

    sipVH__ribbon_36(sipGILState, 0, sipPySelf, sipMeth, dc, wnd, rect, item);
}

void sipwxRibbonArtProvider::DrawGalleryBackground(::wxDC& dc, ::wxRibbonGallery*wnd, const ::wxRect& rect)
{
    sip_gilstate_t sipGILState;
    PyObject *sipMeth;

    sipMeth = sipIsPyMethod(&sipGILState, &sipPyMethods[24], &sipPySelf, sipName_RibbonArtProvider, sipName_DrawGalleryBackground);

    if (!sipMeth)
        return;

    extern void sipVH__ribbon_35(sip_gilstate_t, sipVirtErrorHandlerFunc, sipSimpleWrapper *, PyObject *, ::wxDC&, ::wxRibbonGallery*, const ::wxRect&);

    sipVH__ribbon_35(sipGILState, 0, sipPySelf, sipMeth, dc, wnd, rect);
}

void sipwxRibbonArtProvider::DrawPanelBackground(::wxDC& dc, ::wxRibbonPanel*wnd, const ::wxRect& rect)
{
    sip_gilstate_t sipGILState;
    PyObject *sipMeth;

    sipMeth = sipIsPyMethod(&sipGILState, &sipPyMethods[25], &sipPySelf, sipName_RibbonArtProvider, sipName_DrawPanelBackground);

    if (!sipMeth)
        return;

    extern void sipVH__ribbon_34(sip_gilstate_t, sipVirtErrorHandlerFunc, sipSimpleWrapper *, PyObject *, ::wxDC&, ::wxRibbonPanel*, const ::wxRect&);

    sipVH__ribbon_34(sipGILState, 0, sipPySelf, sipMeth, dc, wnd, rect);
}

void sipwxRibbonArtProvider::DrawScrollButton(::wxDC& dc, ::wxWindow*wnd, const ::wxRect& rect, long style)
{
    sip_gilstate_t sipGILState;
    PyObject *sipMeth;

    sipMeth = sipIsPyMethod(&sipGILState, &sipPyMethods[26], &sipPySelf, sipName_RibbonArtProvider, sipName_DrawScrollButton);

    if (!sipMeth)
        return;

    extern void sipVH__ribbon_33(sip_gilstate_t, sipVirtErrorHandlerFunc, sipSimpleWrapper *, PyObject *, ::wxDC&, ::wxWindow*, const ::wxRect&, long);

    sipVH__ribbon_33(sipGILState, 0, sipPySelf, sipMeth, dc, wnd, rect, style);
}

void sipwxRibbonArtProvider::DrawPageBackground(::wxDC& dc, ::wxWindow*wnd, const ::wxRect& rect)
{
    sip_gilstate_t sipGILState;
    PyObject *sipMeth;

    sipMeth = sipIsPyMethod(&sipGILState, &sipPyMethods[27], &sipPySelf, sipName_RibbonArtProvider, sipName_DrawPageBackground);

    if (!sipMeth)
        return;

    extern void sipVH__ribbon_30(sip_gilstate_t, sipVirtErrorHandlerFunc, sipSimpleWrapper *, PyObject *, ::wxDC&, ::wxWindow*, const ::wxRect&);

    sipVH__ribbon_30(sipGILState, 0, sipPySelf, sipMeth, dc, wnd, rect);
}

void sipwxRibbonArtProvider::DrawTabSeparator(::wxDC& dc, ::wxWindow*wnd, const ::wxRect& rect, double visibility)
{
    sip_gilstate_t sipGILState;
    PyObject *sipMeth;

    sipMeth = sipIsPyMethod(&sipGILState, &sipPyMethods[28], &sipPySelf, sipName_RibbonArtProvider, sipName_DrawTabSeparator);

    if (!sipMeth)
        return;

    extern void sipVH__ribbon_32(sip_gilstate_t, sipVirtErrorHandlerFunc, sipSimpleWrapper *, PyObject *, ::wxDC&, ::wxWindow*, const ::wxRect&, double);

    sipVH__ribbon_32(sipGILState, 0, sipPySelf, sipMeth, dc, wnd, rect, visibility);
}

void sipwxRibbonArtProvider::DrawTab(::wxDC& dc, ::wxWindow*wnd, const ::wxRibbonPageTabInfo& tab)
{
    sip_gilstate_t sipGILState;
    PyObject *sipMeth;

    sipMeth = sipIsPyMethod(&sipGILState, &sipPyMethods[29], &sipPySelf, sipName_RibbonArtProvider, sipName_DrawTab);

    if (!sipMeth)
        return;

    extern void sipVH__ribbon_31(sip_gilstate_t, sipVirtErrorHandlerFunc, sipSimpleWrapper *, PyObject *, ::wxDC&, ::wxWindow*, const ::wxRibbonPageTabInfo&);

    sipVH__ribbon_31(sipGILState, 0, sipPySelf, sipMeth, dc, wnd, tab);
}

void sipwxRibbonArtProvider::DrawTabCtrlBackground(::wxDC& dc, ::wxWindow*wnd, const ::wxRect& rect)
{
    sip_gilstate_t sipGILState;
    PyObject *sipMeth;

    sipMeth = sipIsPyMethod(&sipGILState, &sipPyMethods[30], &sipPySelf, sipName_RibbonArtProvider, sipName_DrawTabCtrlBackground);

    if (!sipMeth)
        return;

    extern void sipVH__ribbon_30(sip_gilstate_t, sipVirtErrorHandlerFunc, sipSimpleWrapper *, PyObject *, ::wxDC&, ::wxWindow*, const ::wxRect&);

    sipVH__ribbon_30(sipGILState, 0, sipPySelf, sipMeth, dc, wnd, rect);
}

void sipwxRibbonArtProvider::SetColourScheme(const ::wxColour& primary, const ::wxColour& secondary, const ::wxColour& tertiary)
{
    sip_gilstate_t sipGILState;
    PyObject *sipMeth;

    sipMeth = sipIsPyMethod(&sipGILState, &sipPyMethods[31], &sipPySelf, sipName_RibbonArtProvider, sipName_SetColourScheme);

    if (!sipMeth)
        return;

    extern void sipVH__ribbon_29(sip_gilstate_t, sipVirtErrorHandlerFunc, sipSimpleWrapper *, PyObject *, const ::wxColour&, const ::wxColour&, const ::wxColour&);

    sipVH__ribbon_29(sipGILState, 0, sipPySelf, sipMeth, primary, secondary, tertiary);
}

void sipwxRibbonArtProvider::GetColourScheme(::wxColour*primary, ::wxColour*secondary, ::wxColour*tertiary) const
{
    sip_gilstate_t sipGILState;
    PyObject *sipMeth;

    sipMeth = sipIsPyMethod(&sipGILState, const_cast<char *>(&sipPyMethods[32]), const_cast<sipSimpleWrapper **>(&sipPySelf), sipName_RibbonArtProvider, sipName_GetColourScheme);

    if (!sipMeth)
        return;

    extern void sipVH__ribbon_28(sip_gilstate_t, sipVirtErrorHandlerFunc, sipSimpleWrapper *, PyObject *, ::wxColour*, ::wxColour*, ::wxColour*);

    sipVH__ribbon_28(sipGILState, 0, sipPySelf, sipMeth, primary, secondary, tertiary);
}

void sipwxRibbonArtProvider::SetColour(int id, const ::wxColour& colour)
{
    sip_gilstate_t sipGILState;
    PyObject *sipMeth;

    sipMeth = sipIsPyMethod(&sipGILState, &sipPyMethods[33], &sipPySelf, sipName_RibbonArtProvider, sipName_SetColour);

    if (!sipMeth)
        return;

    extern void sipVH__ribbon_27(sip_gilstate_t, sipVirtErrorHandlerFunc, sipSimpleWrapper *, PyObject *, int, const ::wxColour&);

    sipVH__ribbon_27(sipGILState, 0, sipPySelf, sipMeth, id, colour);
}

::wxColour sipwxRibbonArtProvider::GetColour(int id) const
{
    sip_gilstate_t sipGILState;
    PyObject *sipMeth;

    sipMeth = sipIsPyMethod(&sipGILState, const_cast<char *>(&sipPyMethods[34]), const_cast<sipSimpleWrapper **>(&sipPySelf), sipName_RibbonArtProvider, sipName_GetColour);

    if (!sipMeth)
        return ::wxColour();

    extern ::wxColour sipVH__ribbon_26(sip_gilstate_t, sipVirtErrorHandlerFunc, sipSimpleWrapper *, PyObject *, int);

    return sipVH__ribbon_26(sipGILState, 0, sipPySelf, sipMeth, id);
}

::wxFont sipwxRibbonArtProvider::GetFont(int id) const
{
    sip_gilstate_t sipGILState;
    PyObject *sipMeth;

    sipMeth = sipIsPyMethod(&sipGILState, const_cast<char *>(&sipPyMethods[35]), const_cast<sipSimpleWrapper **>(&sipPySelf), sipName_RibbonArtProvider, sipName_GetFont);

    if (!sipMeth)
        return ::wxFont();

    extern ::wxFont sipVH__ribbon_25(sip_gilstate_t, sipVirtErrorHandlerFunc, sipSimpleWrapper *, PyObject *, int);

    return sipVH__ribbon_25(sipGILState, 0, sipPySelf, sipMeth, id);
}

void sipwxRibbonArtProvider::SetFont(int id, const ::wxFont& font)
{
    sip_gilstate_t sipGILState;
    PyObject *sipMeth;

    sipMeth = sipIsPyMethod(&sipGILState, &sipPyMethods[36], &sipPySelf, sipName_RibbonArtProvider, sipName_SetFont);

    if (!sipMeth)
        return;

    extern void sipVH__ribbon_24(sip_gilstate_t, sipVirtErrorHandlerFunc, sipSimpleWrapper *, PyObject *, int, const ::wxFont&);

    sipVH__ribbon_24(sipGILState, 0, sipPySelf, sipMeth, id, font);
}

void sipwxRibbonArtProvider::SetMetric(int id, int new_val)
{
    sip_gilstate_t sipGILState;
    PyObject *sipMeth;

    sipMeth = sipIsPyMethod(&sipGILState, &sipPyMethods[37], &sipPySelf, sipName_RibbonArtProvider, sipName_SetMetric);

    if (!sipMeth)
        return;

    extern void sipVH__ribbon_12(sip_gilstate_t, sipVirtErrorHandlerFunc, sipSimpleWrapper *, PyObject *, int, int);

    sipVH__ribbon_12(sipGILState, 0, sipPySelf, sipMeth, id, new_val);
}

int sipwxRibbonArtProvider::GetMetric(int id) const
{
    sip_gilstate_t sipGILState;
    PyObject *sipMeth;

    sipMeth = sipIsPyMethod(&sipGILState, const_cast<char *>(&sipPyMethods[38]), const_cast<sipSimpleWrapper **>(&sipPySelf), sipName_RibbonArtProvider, sipName_GetMetric);

    if (!sipMeth)
        return 0;

    extern int sipVH__ribbon_23(sip_gilstate_t, sipVirtErrorHandlerFunc, sipSimpleWrapper *, PyObject *, int);

    return sipVH__ribbon_23(sipGILState, 0, sipPySelf, sipMeth, id);
}

long sipwxRibbonArtProvider::GetFlags() const
{
    sip_gilstate_t sipGILState;
    PyObject *sipMeth;

    sipMeth = sipIsPyMethod(&sipGILState, const_cast<char *>(&sipPyMethods[39]), const_cast<sipSimpleWrapper **>(&sipPySelf), sipName_RibbonArtProvider, sipName_GetFlags);

    if (!sipMeth)
        return 0;

    extern long sipVH__ribbon_22(sip_gilstate_t, sipVirtErrorHandlerFunc, sipSimpleWrapper *, PyObject *);

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

void sipwxRibbonArtProvider::SetFlags(long flags)
{
    sip_gilstate_t sipGILState;
    PyObject *sipMeth;

    sipMeth = sipIsPyMethod(&sipGILState, &sipPyMethods[40], &sipPySelf, sipName_RibbonArtProvider, sipName_SetFlags);

    if (!sipMeth)
        return;

    extern void sipVH__ribbon_21(sip_gilstate_t, sipVirtErrorHandlerFunc, sipSimpleWrapper *, PyObject *, long);

    sipVH__ribbon_21(sipGILState, 0, sipPySelf, sipMeth, flags);
}

::wxRibbonArtProvider* sipwxRibbonArtProvider::Clone() const
{
    sip_gilstate_t sipGILState;
    PyObject *sipMeth;

    sipMeth = sipIsPyMethod(&sipGILState, const_cast<char *>(&sipPyMethods[41]), const_cast<sipSimpleWrapper **>(&sipPySelf), sipName_RibbonArtProvider, sipName_Clone);

    if (!sipMeth)
        return 0;

    extern ::wxRibbonArtProvider* sipVH__ribbon_20(sip_gilstate_t, sipVirtErrorHandlerFunc, sipSimpleWrapper *, PyObject *);

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


PyDoc_STRVAR(doc_wxRibbonArtProvider_Clone, "Clone() -> RibbonArtProvider\n"
"\n"
"Create a new art provider which is a clone of this one.");

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

    {
        const ::wxRibbonArtProvider *sipCpp;

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

            if (!sipOrigSelf)
            {
                sipAbstractMethod(sipName_RibbonArtProvider, sipName_Clone);
                return SIP_NULLPTR;
            }

            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipRes = sipCpp->Clone();
            Py_END_ALLOW_THREADS

            if (PyErr_Occurred())
                return 0;

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

    sipNoMethod(sipParseErr, sipName_RibbonArtProvider, sipName_Clone, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxRibbonArtProvider_SetFlags, "SetFlags(flags) -> None\n"
"\n"
"Set the style flags.");

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

    {
        long flags;
        ::wxRibbonArtProvider *sipCpp;

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

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "Bl", &sipSelf, sipType_wxRibbonArtProvider, &sipCpp, &flags))
        {
            if (!sipOrigSelf)
            {
                sipAbstractMethod(sipName_RibbonArtProvider, sipName_SetFlags);
                return SIP_NULLPTR;
            }

            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipCpp->SetFlags(flags);
            Py_END_ALLOW_THREADS

            if (PyErr_Occurred())
                return 0;

            Py_INCREF(Py_None);
            return Py_None;
        }
    }

    sipNoMethod(sipParseErr, sipName_RibbonArtProvider, sipName_SetFlags, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxRibbonArtProvider_GetFlags, "GetFlags() -> int\n"
"\n"
"Get the previously set style flags.");

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

    {
        const ::wxRibbonArtProvider *sipCpp;

        if (sipParseArgs(&sipParseErr, sipArgs, "B", &sipSelf, sipType_wxRibbonArtProvider, &sipCpp))
        {
            long sipRes;

            if (!sipOrigSelf)
            {
                sipAbstractMethod(sipName_RibbonArtProvider, sipName_GetFlags);
                return SIP_NULLPTR;
            }

            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipRes = sipCpp->GetFlags();
            Py_END_ALLOW_THREADS

            if (PyErr_Occurred())
                return 0;

            return PyLong_FromLong(sipRes);
        }
    }

    sipNoMethod(sipParseErr, sipName_RibbonArtProvider, sipName_GetFlags, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxRibbonArtProvider_GetMetric, "GetMetric(id) -> int\n"
"\n"
"Get the value of a certain integer setting.");

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

    {
        int id;
        const ::wxRibbonArtProvider *sipCpp;

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

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "Bi", &sipSelf, sipType_wxRibbonArtProvider, &sipCpp, &id))
        {
            int sipRes;

            if (!sipOrigSelf)
            {
                sipAbstractMethod(sipName_RibbonArtProvider, sipName_GetMetric);
                return SIP_NULLPTR;
            }

            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipRes = sipCpp->GetMetric(id);
            Py_END_ALLOW_THREADS

            if (PyErr_Occurred())
                return 0;

            return PyLong_FromLong(sipRes);
        }
    }

    sipNoMethod(sipParseErr, sipName_RibbonArtProvider, sipName_GetMetric, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxRibbonArtProvider_SetMetric, "SetMetric(id, new_val) -> None\n"
"\n"
"Set the value of a certain integer setting to the value new_val.");

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

    {
        int id;
        int new_val;
        ::wxRibbonArtProvider *sipCpp;

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

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "Bii", &sipSelf, sipType_wxRibbonArtProvider, &sipCpp, &id, &new_val))
        {
            if (!sipOrigSelf)
            {
                sipAbstractMethod(sipName_RibbonArtProvider, sipName_SetMetric);
                return SIP_NULLPTR;
            }

            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipCpp->SetMetric(id, new_val);
            Py_END_ALLOW_THREADS

            if (PyErr_Occurred())
                return 0;

            Py_INCREF(Py_None);
            return Py_None;
        }
    }

    sipNoMethod(sipParseErr, sipName_RibbonArtProvider, sipName_SetMetric, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxRibbonArtProvider_SetFont, "SetFont(id, font) -> None\n"
"\n"
"Set the value of a certain font setting to the value font.");

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

    {
        int id;
        const ::wxFont* font;
        ::wxRibbonArtProvider *sipCpp;

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

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "BiJ9", &sipSelf, sipType_wxRibbonArtProvider, &sipCpp, &id, sipType_wxFont, &font))
        {
            if (!sipOrigSelf)
            {
                sipAbstractMethod(sipName_RibbonArtProvider, sipName_SetFont);
                return SIP_NULLPTR;
            }

            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipCpp->SetFont(id, *font);
            Py_END_ALLOW_THREADS

            if (PyErr_Occurred())
                return 0;

            Py_INCREF(Py_None);
            return Py_None;
        }
    }

    sipNoMethod(sipParseErr, sipName_RibbonArtProvider, sipName_SetFont, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxRibbonArtProvider_GetFont, "GetFont(id) -> wx.Font\n"
"\n"
"Get the value of a certain font setting.");

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

    {
        int id;
        const ::wxRibbonArtProvider *sipCpp;

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

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "Bi", &sipSelf, sipType_wxRibbonArtProvider, &sipCpp, &id))
        {
            ::wxFont*sipRes;

            if (!sipOrigSelf)
            {
                sipAbstractMethod(sipName_RibbonArtProvider, sipName_GetFont);
                return SIP_NULLPTR;
            }

            PyErr_Clear();

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

            if (PyErr_Occurred())
                return 0;

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

    sipNoMethod(sipParseErr, sipName_RibbonArtProvider, sipName_GetFont, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxRibbonArtProvider_GetColour, "GetColour(id) -> wx.Colour\n"
"\n"
"Get the value of a certain colour setting.");

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

    {
        int id;
        const ::wxRibbonArtProvider *sipCpp;

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

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "Bi", &sipSelf, sipType_wxRibbonArtProvider, &sipCpp, &id))
        {
            ::wxColour*sipRes;

            if (!sipOrigSelf)
            {
                sipAbstractMethod(sipName_RibbonArtProvider, sipName_GetColour);
                return SIP_NULLPTR;
            }

            PyErr_Clear();

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

            if (PyErr_Occurred())
                return 0;

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

    sipNoMethod(sipParseErr, sipName_RibbonArtProvider, sipName_GetColour, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxRibbonArtProvider_SetColour, "SetColour(id, colour) -> None\n"
"\n"
"Set the value of a certain colour setting to the value colour.");

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

    {
        int id;
        const ::wxColour* colour;
        int colourState = 0;
        ::wxRibbonArtProvider *sipCpp;

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

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "BiJ1", &sipSelf, sipType_wxRibbonArtProvider, &sipCpp, &id, sipType_wxColour, &colour, &colourState))
        {
            if (!sipOrigSelf)
            {
                sipAbstractMethod(sipName_RibbonArtProvider, sipName_SetColour);
                return SIP_NULLPTR;
            }

            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipCpp->SetColour(id, *colour);
            Py_END_ALLOW_THREADS
            sipReleaseType(const_cast< ::wxColour *>(colour), sipType_wxColour, colourState);

            if (PyErr_Occurred())
                return 0;

            Py_INCREF(Py_None);
            return Py_None;
        }
    }

    sipNoMethod(sipParseErr, sipName_RibbonArtProvider, sipName_SetColour, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxRibbonArtProvider_GetColor, "GetColor(id) -> wx.Colour");

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

    {
        int id;
        const ::wxRibbonArtProvider *sipCpp;

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

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "Bi", &sipSelf, sipType_wxRibbonArtProvider, &sipCpp, &id))
        {
            ::wxColour*sipRes;

            PyErr_Clear();

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

            if (PyErr_Occurred())
                return 0;

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

    sipNoMethod(sipParseErr, sipName_RibbonArtProvider, sipName_GetColor, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxRibbonArtProvider_SetColor, "SetColor(id, color) -> None");

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

    {
        int id;
        const ::wxColour* color;
        int colorState = 0;
        ::wxRibbonArtProvider *sipCpp;

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

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "BiJ1", &sipSelf, sipType_wxRibbonArtProvider, &sipCpp, &id, sipType_wxColour, &color, &colorState))
        {
            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipCpp->SetColor(id, *color);
            Py_END_ALLOW_THREADS
            sipReleaseType(const_cast< ::wxColour *>(color), sipType_wxColour, colorState);

            if (PyErr_Occurred())
                return 0;

            Py_INCREF(Py_None);
            return Py_None;
        }
    }

    sipNoMethod(sipParseErr, sipName_RibbonArtProvider, sipName_SetColor, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxRibbonArtProvider_GetColourScheme, "GetColourScheme() -> Tuple[wx.Colour, wx.Colour, wx.Colour]\n"
"\n"
"Get the current colour scheme.");

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

    {
        ::wxColour* primary;
        ::wxColour* secondary;
        ::wxColour* tertiary;
        const ::wxRibbonArtProvider *sipCpp;

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, SIP_NULLPTR, SIP_NULLPTR, "B", &sipSelf, sipType_wxRibbonArtProvider, &sipCpp))
        {
            primary = new ::wxColour();
            secondary = new ::wxColour();
            tertiary = new ::wxColour();

            if (!sipOrigSelf)
            {
                sipAbstractMethod(sipName_RibbonArtProvider, sipName_GetColourScheme);
                return SIP_NULLPTR;
            }

            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipCpp->GetColourScheme(primary, secondary, tertiary);
            Py_END_ALLOW_THREADS

            if (PyErr_Occurred())
                return 0;

            return sipBuildResult(0, "(NNN)", primary, sipType_wxColour, SIP_NULLPTR, secondary, sipType_wxColour, SIP_NULLPTR, tertiary, sipType_wxColour, SIP_NULLPTR);
        }
    }

    sipNoMethod(sipParseErr, sipName_RibbonArtProvider, sipName_GetColourScheme, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxRibbonArtProvider_SetColourScheme, "SetColourScheme(primary, secondary, tertiary) -> None\n"
"\n"
"Set all applicable colour settings from a few base colours.");

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

    {
        const ::wxColour* primary;
        int primaryState = 0;
        const ::wxColour* secondary;
        int secondaryState = 0;
        const ::wxColour* tertiary;
        int tertiaryState = 0;
        ::wxRibbonArtProvider *sipCpp;

        static const char *sipKwdList[] = {
            sipName_primary,
            sipName_secondary,
            sipName_tertiary,
        };

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "BJ1J1J1", &sipSelf, sipType_wxRibbonArtProvider, &sipCpp, sipType_wxColour, &primary, &primaryState, sipType_wxColour, &secondary, &secondaryState, sipType_wxColour, &tertiary, &tertiaryState))
        {
            if (!sipOrigSelf)
            {
                sipAbstractMethod(sipName_RibbonArtProvider, sipName_SetColourScheme);
                return SIP_NULLPTR;
            }

            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipCpp->SetColourScheme(*primary, *secondary, *tertiary);
            Py_END_ALLOW_THREADS
            sipReleaseType(const_cast< ::wxColour *>(primary), sipType_wxColour, primaryState);
            sipReleaseType(const_cast< ::wxColour *>(secondary), sipType_wxColour, secondaryState);
            sipReleaseType(const_cast< ::wxColour *>(tertiary), sipType_wxColour, tertiaryState);

            if (PyErr_Occurred())
                return 0;

            Py_INCREF(Py_None);
            return Py_None;
        }
    }

    sipNoMethod(sipParseErr, sipName_RibbonArtProvider, sipName_SetColourScheme, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxRibbonArtProvider_DrawTabCtrlBackground, "DrawTabCtrlBackground(dc, wnd, rect) -> None\n"
"\n"
"Draw the background of the tab region of a ribbon bar.");

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

    {
        ::wxDC* dc;
        ::wxWindow* wnd;
        const ::wxRect* rect;
        int rectState = 0;
        ::wxRibbonArtProvider *sipCpp;

        static const char *sipKwdList[] = {
            sipName_dc,
            sipName_wnd,
            sipName_rect,
        };

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "BJ9J8J1", &sipSelf, sipType_wxRibbonArtProvider, &sipCpp, sipType_wxDC, &dc, sipType_wxWindow, &wnd, sipType_wxRect, &rect, &rectState))
        {
            if (!sipOrigSelf)
            {
                sipAbstractMethod(sipName_RibbonArtProvider, sipName_DrawTabCtrlBackground);
                return SIP_NULLPTR;
            }

            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipCpp->DrawTabCtrlBackground(*dc, wnd, *rect);
            Py_END_ALLOW_THREADS
            sipReleaseType(const_cast< ::wxRect *>(rect), sipType_wxRect, rectState);

            if (PyErr_Occurred())
                return 0;

            Py_INCREF(Py_None);
            return Py_None;
        }
    }

    sipNoMethod(sipParseErr, sipName_RibbonArtProvider, sipName_DrawTabCtrlBackground, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxRibbonArtProvider_DrawTab, "DrawTab(dc, wnd, tab) -> None\n"
"\n"
"Draw a single tab in the tab region of a ribbon bar.");

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

    {
        ::wxDC* dc;
        ::wxWindow* wnd;
        const ::wxRibbonPageTabInfo* tab;
        ::wxRibbonArtProvider *sipCpp;

        static const char *sipKwdList[] = {
            sipName_dc,
            sipName_wnd,
            sipName_tab,
        };

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "BJ9J8J9", &sipSelf, sipType_wxRibbonArtProvider, &sipCpp, sipType_wxDC, &dc, sipType_wxWindow, &wnd, sipType_wxRibbonPageTabInfo, &tab))
        {
            if (!sipOrigSelf)
            {
                sipAbstractMethod(sipName_RibbonArtProvider, sipName_DrawTab);
                return SIP_NULLPTR;
            }

            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipCpp->DrawTab(*dc, wnd, *tab);
            Py_END_ALLOW_THREADS

            if (PyErr_Occurred())
                return 0;

            Py_INCREF(Py_None);
            return Py_None;
        }
    }

    sipNoMethod(sipParseErr, sipName_RibbonArtProvider, sipName_DrawTab, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxRibbonArtProvider_DrawTabSeparator, "DrawTabSeparator(dc, wnd, rect, visibility) -> None\n"
"\n"
"Draw a separator between two tabs in a ribbon bar.");

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

    {
        ::wxDC* dc;
        ::wxWindow* wnd;
        const ::wxRect* rect;
        int rectState = 0;
        double visibility;
        ::wxRibbonArtProvider *sipCpp;

        static const char *sipKwdList[] = {
            sipName_dc,
            sipName_wnd,
            sipName_rect,
            sipName_visibility,
        };

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "BJ9J8J1d", &sipSelf, sipType_wxRibbonArtProvider, &sipCpp, sipType_wxDC, &dc, sipType_wxWindow, &wnd, sipType_wxRect, &rect, &rectState, &visibility))
        {
            if (!sipOrigSelf)
            {
                sipAbstractMethod(sipName_RibbonArtProvider, sipName_DrawTabSeparator);
                return SIP_NULLPTR;
            }

            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipCpp->DrawTabSeparator(*dc, wnd, *rect, visibility);
            Py_END_ALLOW_THREADS
            sipReleaseType(const_cast< ::wxRect *>(rect), sipType_wxRect, rectState);

            if (PyErr_Occurred())
                return 0;

            Py_INCREF(Py_None);
            return Py_None;
        }
    }

    sipNoMethod(sipParseErr, sipName_RibbonArtProvider, sipName_DrawTabSeparator, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxRibbonArtProvider_DrawPageBackground, "DrawPageBackground(dc, wnd, rect) -> None\n"
"\n"
"Draw the background of a ribbon page.");

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

    {
        ::wxDC* dc;
        ::wxWindow* wnd;
        const ::wxRect* rect;
        int rectState = 0;
        ::wxRibbonArtProvider *sipCpp;

        static const char *sipKwdList[] = {
            sipName_dc,
            sipName_wnd,
            sipName_rect,
        };

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "BJ9J8J1", &sipSelf, sipType_wxRibbonArtProvider, &sipCpp, sipType_wxDC, &dc, sipType_wxWindow, &wnd, sipType_wxRect, &rect, &rectState))
        {
            if (!sipOrigSelf)
            {
                sipAbstractMethod(sipName_RibbonArtProvider, sipName_DrawPageBackground);
                return SIP_NULLPTR;
            }

            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipCpp->DrawPageBackground(*dc, wnd, *rect);
            Py_END_ALLOW_THREADS
            sipReleaseType(const_cast< ::wxRect *>(rect), sipType_wxRect, rectState);

            if (PyErr_Occurred())
                return 0;

            Py_INCREF(Py_None);
            return Py_None;
        }
    }

    sipNoMethod(sipParseErr, sipName_RibbonArtProvider, sipName_DrawPageBackground, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxRibbonArtProvider_DrawScrollButton, "DrawScrollButton(dc, wnd, rect, style) -> None\n"
"\n"
"Draw a ribbon-style scroll button.");

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

    {
        ::wxDC* dc;
        ::wxWindow* wnd;
        const ::wxRect* rect;
        int rectState = 0;
        long style;
        ::wxRibbonArtProvider *sipCpp;

        static const char *sipKwdList[] = {
            sipName_dc,
            sipName_wnd,
            sipName_rect,
            sipName_style,
        };

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "BJ9J8J1l", &sipSelf, sipType_wxRibbonArtProvider, &sipCpp, sipType_wxDC, &dc, sipType_wxWindow, &wnd, sipType_wxRect, &rect, &rectState, &style))
        {
            if (!sipOrigSelf)
            {
                sipAbstractMethod(sipName_RibbonArtProvider, sipName_DrawScrollButton);
                return SIP_NULLPTR;
            }

            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipCpp->DrawScrollButton(*dc, wnd, *rect, style);
            Py_END_ALLOW_THREADS
            sipReleaseType(const_cast< ::wxRect *>(rect), sipType_wxRect, rectState);

            if (PyErr_Occurred())
                return 0;

            Py_INCREF(Py_None);
            return Py_None;
        }
    }

    sipNoMethod(sipParseErr, sipName_RibbonArtProvider, sipName_DrawScrollButton, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxRibbonArtProvider_DrawPanelBackground, "DrawPanelBackground(dc, wnd, rect) -> None\n"
"\n"
"Draw the background and chrome for a ribbon panel.");

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

    {
        ::wxDC* dc;
        ::wxRibbonPanel* wnd;
        const ::wxRect* rect;
        int rectState = 0;
        ::wxRibbonArtProvider *sipCpp;

        static const char *sipKwdList[] = {
            sipName_dc,
            sipName_wnd,
            sipName_rect,
        };

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "BJ9J8J1", &sipSelf, sipType_wxRibbonArtProvider, &sipCpp, sipType_wxDC, &dc, sipType_wxRibbonPanel, &wnd, sipType_wxRect, &rect, &rectState))
        {
            if (!sipOrigSelf)
            {
                sipAbstractMethod(sipName_RibbonArtProvider, sipName_DrawPanelBackground);
                return SIP_NULLPTR;
            }

            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipCpp->DrawPanelBackground(*dc, wnd, *rect);
            Py_END_ALLOW_THREADS
            sipReleaseType(const_cast< ::wxRect *>(rect), sipType_wxRect, rectState);

            if (PyErr_Occurred())
                return 0;

            Py_INCREF(Py_None);
            return Py_None;
        }
    }

    sipNoMethod(sipParseErr, sipName_RibbonArtProvider, sipName_DrawPanelBackground, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxRibbonArtProvider_DrawGalleryBackground, "DrawGalleryBackground(dc, wnd, rect) -> None\n"
"\n"
"Draw the background and chrome for a wxRibbonGallery control.");

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

    {
        ::wxDC* dc;
        ::wxRibbonGallery* wnd;
        const ::wxRect* rect;
        int rectState = 0;
        ::wxRibbonArtProvider *sipCpp;

        static const char *sipKwdList[] = {
            sipName_dc,
            sipName_wnd,
            sipName_rect,
        };

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "BJ9J8J1", &sipSelf, sipType_wxRibbonArtProvider, &sipCpp, sipType_wxDC, &dc, sipType_wxRibbonGallery, &wnd, sipType_wxRect, &rect, &rectState))
        {
            if (!sipOrigSelf)
            {
                sipAbstractMethod(sipName_RibbonArtProvider, sipName_DrawGalleryBackground);
                return SIP_NULLPTR;
            }

            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipCpp->DrawGalleryBackground(*dc, wnd, *rect);
            Py_END_ALLOW_THREADS
            sipReleaseType(const_cast< ::wxRect *>(rect), sipType_wxRect, rectState);

            if (PyErr_Occurred())
                return 0;

            Py_INCREF(Py_None);
            return Py_None;
        }
    }

    sipNoMethod(sipParseErr, sipName_RibbonArtProvider, sipName_DrawGalleryBackground, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxRibbonArtProvider_DrawGalleryItemBackground, "DrawGalleryItemBackground(dc, wnd, rect, item) -> None\n"
"\n"
"Draw the background of a single item in a wxRibbonGallery control.");

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

    {
        ::wxDC* dc;
        ::wxRibbonGallery* wnd;
        const ::wxRect* rect;
        int rectState = 0;
        ::wxRibbonGalleryItem* item;
        ::wxRibbonArtProvider *sipCpp;

        static const char *sipKwdList[] = {
            sipName_dc,
            sipName_wnd,
            sipName_rect,
            sipName_item,
        };

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "BJ9J8J1J8", &sipSelf, sipType_wxRibbonArtProvider, &sipCpp, sipType_wxDC, &dc, sipType_wxRibbonGallery, &wnd, sipType_wxRect, &rect, &rectState, sipType_wxRibbonGalleryItem, &item))
        {
            if (!sipOrigSelf)
            {
                sipAbstractMethod(sipName_RibbonArtProvider, sipName_DrawGalleryItemBackground);
                return SIP_NULLPTR;
            }

            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipCpp->DrawGalleryItemBackground(*dc, wnd, *rect, item);
            Py_END_ALLOW_THREADS
            sipReleaseType(const_cast< ::wxRect *>(rect), sipType_wxRect, rectState);

            if (PyErr_Occurred())
                return 0;

            Py_INCREF(Py_None);
            return Py_None;
        }
    }

    sipNoMethod(sipParseErr, sipName_RibbonArtProvider, sipName_DrawGalleryItemBackground, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxRibbonArtProvider_DrawMinimisedPanel, "DrawMinimisedPanel(dc, wnd, rect, bitmap) -> None\n"
"\n"
"Draw a minimised ribbon panel.");

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

    {
        ::wxDC* dc;
        ::wxRibbonPanel* wnd;
        const ::wxRect* rect;
        int rectState = 0;
        ::wxBitmap* bitmap;
        ::wxRibbonArtProvider *sipCpp;

        static const char *sipKwdList[] = {
            sipName_dc,
            sipName_wnd,
            sipName_rect,
            sipName_bitmap,
        };

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "BJ9J8J1J9", &sipSelf, sipType_wxRibbonArtProvider, &sipCpp, sipType_wxDC, &dc, sipType_wxRibbonPanel, &wnd, sipType_wxRect, &rect, &rectState, sipType_wxBitmap, &bitmap))
        {
            if (!sipOrigSelf)
            {
                sipAbstractMethod(sipName_RibbonArtProvider, sipName_DrawMinimisedPanel);
                return SIP_NULLPTR;
            }

            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipCpp->DrawMinimisedPanel(*dc, wnd, *rect, *bitmap);
            Py_END_ALLOW_THREADS
            sipReleaseType(const_cast< ::wxRect *>(rect), sipType_wxRect, rectState);

            if (PyErr_Occurred())
                return 0;

            Py_INCREF(Py_None);
            return Py_None;
        }
    }

    sipNoMethod(sipParseErr, sipName_RibbonArtProvider, sipName_DrawMinimisedPanel, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxRibbonArtProvider_DrawButtonBarBackground, "DrawButtonBarBackground(dc, wnd, rect) -> None\n"
"\n"
"Draw the background for a wxRibbonButtonBar control.");

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

    {
        ::wxDC* dc;
        ::wxWindow* wnd;
        const ::wxRect* rect;
        int rectState = 0;
        ::wxRibbonArtProvider *sipCpp;

        static const char *sipKwdList[] = {
            sipName_dc,
            sipName_wnd,
            sipName_rect,
        };

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "BJ9J8J1", &sipSelf, sipType_wxRibbonArtProvider, &sipCpp, sipType_wxDC, &dc, sipType_wxWindow, &wnd, sipType_wxRect, &rect, &rectState))
        {
            if (!sipOrigSelf)
            {
                sipAbstractMethod(sipName_RibbonArtProvider, sipName_DrawButtonBarBackground);
                return SIP_NULLPTR;
            }

            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipCpp->DrawButtonBarBackground(*dc, wnd, *rect);
            Py_END_ALLOW_THREADS
            sipReleaseType(const_cast< ::wxRect *>(rect), sipType_wxRect, rectState);

            if (PyErr_Occurred())
                return 0;

            Py_INCREF(Py_None);
            return Py_None;
        }
    }

    sipNoMethod(sipParseErr, sipName_RibbonArtProvider, sipName_DrawButtonBarBackground, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxRibbonArtProvider_DrawButtonBarButton, "DrawButtonBarButton(dc, wnd, rect, kind, state, label, bitmap_large, bitmap_small) -> None\n"
"\n"
"Draw a single button for a wxRibbonButtonBar control.");

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

    {
        ::wxDC* dc;
        ::wxWindow* wnd;
        const ::wxRect* rect;
        int rectState = 0;
        ::wxRibbonButtonKind kind;
        long state;
        const ::wxString* label;
        int labelState = 0;
        const ::wxBitmap* bitmap_large;
        const ::wxBitmap* bitmap_small;
        ::wxRibbonArtProvider *sipCpp;

        static const char *sipKwdList[] = {
            sipName_dc,
            sipName_wnd,
            sipName_rect,
            sipName_kind,
            sipName_state,
            sipName_label,
            sipName_bitmap_large,
            sipName_bitmap_small,
        };

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "BJ9J8J1ElJ1J9J9", &sipSelf, sipType_wxRibbonArtProvider, &sipCpp, sipType_wxDC, &dc, sipType_wxWindow, &wnd, sipType_wxRect, &rect, &rectState, sipType_wxRibbonButtonKind, &kind, &state, sipType_wxString, &label, &labelState, sipType_wxBitmap, &bitmap_large, sipType_wxBitmap, &bitmap_small))
        {
            if (!sipOrigSelf)
            {
                sipAbstractMethod(sipName_RibbonArtProvider, sipName_DrawButtonBarButton);
                return SIP_NULLPTR;
            }

            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipCpp->DrawButtonBarButton(*dc, wnd, *rect, kind, state, *label, *bitmap_large, *bitmap_small);
            Py_END_ALLOW_THREADS
            sipReleaseType(const_cast< ::wxRect *>(rect), sipType_wxRect, rectState);
            sipReleaseType(const_cast< ::wxString *>(label), sipType_wxString, labelState);

            if (PyErr_Occurred())
                return 0;

            Py_INCREF(Py_None);
            return Py_None;
        }
    }

    sipNoMethod(sipParseErr, sipName_RibbonArtProvider, sipName_DrawButtonBarButton, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxRibbonArtProvider_DrawToolBarBackground, "DrawToolBarBackground(dc, wnd, rect) -> None\n"
"\n"
"Draw the background for a wxRibbonToolBar control.");

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

    {
        ::wxDC* dc;
        ::wxWindow* wnd;
        const ::wxRect* rect;
        int rectState = 0;
        ::wxRibbonArtProvider *sipCpp;

        static const char *sipKwdList[] = {
            sipName_dc,
            sipName_wnd,
            sipName_rect,
        };

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "BJ9J8J1", &sipSelf, sipType_wxRibbonArtProvider, &sipCpp, sipType_wxDC, &dc, sipType_wxWindow, &wnd, sipType_wxRect, &rect, &rectState))
        {
            if (!sipOrigSelf)
            {
                sipAbstractMethod(sipName_RibbonArtProvider, sipName_DrawToolBarBackground);
                return SIP_NULLPTR;
            }

            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipCpp->DrawToolBarBackground(*dc, wnd, *rect);
            Py_END_ALLOW_THREADS
            sipReleaseType(const_cast< ::wxRect *>(rect), sipType_wxRect, rectState);

            if (PyErr_Occurred())
                return 0;

            Py_INCREF(Py_None);
            return Py_None;
        }
    }

    sipNoMethod(sipParseErr, sipName_RibbonArtProvider, sipName_DrawToolBarBackground, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxRibbonArtProvider_DrawToolGroupBackground, "DrawToolGroupBackground(dc, wnd, rect) -> None\n"
"\n"
"Draw the background for a group of tools on a wxRibbonToolBar control.");

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

    {
        ::wxDC* dc;
        ::wxWindow* wnd;
        const ::wxRect* rect;
        int rectState = 0;
        ::wxRibbonArtProvider *sipCpp;

        static const char *sipKwdList[] = {
            sipName_dc,
            sipName_wnd,
            sipName_rect,
        };

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "BJ9J8J1", &sipSelf, sipType_wxRibbonArtProvider, &sipCpp, sipType_wxDC, &dc, sipType_wxWindow, &wnd, sipType_wxRect, &rect, &rectState))
        {
            if (!sipOrigSelf)
            {
                sipAbstractMethod(sipName_RibbonArtProvider, sipName_DrawToolGroupBackground);
                return SIP_NULLPTR;
            }

            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipCpp->DrawToolGroupBackground(*dc, wnd, *rect);
            Py_END_ALLOW_THREADS
            sipReleaseType(const_cast< ::wxRect *>(rect), sipType_wxRect, rectState);

            if (PyErr_Occurred())
                return 0;

            Py_INCREF(Py_None);
            return Py_None;
        }
    }

    sipNoMethod(sipParseErr, sipName_RibbonArtProvider, sipName_DrawToolGroupBackground, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxRibbonArtProvider_DrawTool, "DrawTool(dc, wnd, rect, bitmap, kind, state) -> None\n"
"\n"
"Draw a single tool (for a wxRibbonToolBar control).");

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

    {
        ::wxDC* dc;
        ::wxWindow* wnd;
        const ::wxRect* rect;
        int rectState = 0;
        const ::wxBitmap* bitmap;
        ::wxRibbonButtonKind kind;
        long state;
        ::wxRibbonArtProvider *sipCpp;

        static const char *sipKwdList[] = {
            sipName_dc,
            sipName_wnd,
            sipName_rect,
            sipName_bitmap,
            sipName_kind,
            sipName_state,
        };

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "BJ9J8J1J9El", &sipSelf, sipType_wxRibbonArtProvider, &sipCpp, sipType_wxDC, &dc, sipType_wxWindow, &wnd, sipType_wxRect, &rect, &rectState, sipType_wxBitmap, &bitmap, sipType_wxRibbonButtonKind, &kind, &state))
        {
            if (!sipOrigSelf)
            {
                sipAbstractMethod(sipName_RibbonArtProvider, sipName_DrawTool);
                return SIP_NULLPTR;
            }

            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipCpp->DrawTool(*dc, wnd, *rect, *bitmap, kind, state);
            Py_END_ALLOW_THREADS
            sipReleaseType(const_cast< ::wxRect *>(rect), sipType_wxRect, rectState);

            if (PyErr_Occurred())
                return 0;

            Py_INCREF(Py_None);
            return Py_None;
        }
    }

    sipNoMethod(sipParseErr, sipName_RibbonArtProvider, sipName_DrawTool, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxRibbonArtProvider_DrawToggleButton, "DrawToggleButton(dc, wnd, rect, mode) -> None\n"
"\n"
"Draw toggle button on wxRibbonBar.");

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

    {
        ::wxDC* dc;
        ::wxRibbonBar* wnd;
        const ::wxRect* rect;
        int rectState = 0;
        ::wxRibbonDisplayMode mode;
        ::wxRibbonArtProvider *sipCpp;

        static const char *sipKwdList[] = {
            sipName_dc,
            sipName_wnd,
            sipName_rect,
            sipName_mode,
        };

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "BJ9J8J1E", &sipSelf, sipType_wxRibbonArtProvider, &sipCpp, sipType_wxDC, &dc, sipType_wxRibbonBar, &wnd, sipType_wxRect, &rect, &rectState, sipType_wxRibbonDisplayMode, &mode))
        {
            if (!sipOrigSelf)
            {
                sipAbstractMethod(sipName_RibbonArtProvider, sipName_DrawToggleButton);
                return SIP_NULLPTR;
            }

            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipCpp->DrawToggleButton(*dc, wnd, *rect, mode);
            Py_END_ALLOW_THREADS
            sipReleaseType(const_cast< ::wxRect *>(rect), sipType_wxRect, rectState);

            if (PyErr_Occurred())
                return 0;

            Py_INCREF(Py_None);
            return Py_None;
        }
    }

    sipNoMethod(sipParseErr, sipName_RibbonArtProvider, sipName_DrawToggleButton, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxRibbonArtProvider_DrawHelpButton, "DrawHelpButton(dc, wnd, rect) -> None\n"
"\n"
"Draw help button on wxRibbonBar.");

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

    {
        ::wxDC* dc;
        ::wxRibbonBar* wnd;
        const ::wxRect* rect;
        int rectState = 0;
        ::wxRibbonArtProvider *sipCpp;

        static const char *sipKwdList[] = {
            sipName_dc,
            sipName_wnd,
            sipName_rect,
        };

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "BJ9J8J1", &sipSelf, sipType_wxRibbonArtProvider, &sipCpp, sipType_wxDC, &dc, sipType_wxRibbonBar, &wnd, sipType_wxRect, &rect, &rectState))
        {
            if (!sipOrigSelf)
            {
                sipAbstractMethod(sipName_RibbonArtProvider, sipName_DrawHelpButton);
                return SIP_NULLPTR;
            }

            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipCpp->DrawHelpButton(*dc, wnd, *rect);
            Py_END_ALLOW_THREADS
            sipReleaseType(const_cast< ::wxRect *>(rect), sipType_wxRect, rectState);

            if (PyErr_Occurred())
                return 0;

            Py_INCREF(Py_None);
            return Py_None;
        }
    }

    sipNoMethod(sipParseErr, sipName_RibbonArtProvider, sipName_DrawHelpButton, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxRibbonArtProvider_GetBarTabWidth, "GetBarTabWidth(dc, wnd, label, bitmap, ideal, small_begin_need_separator, small_must_have_separator, minimum) -> None\n"
"\n"
"Calculate the ideal and minimum width (in pixels) of a tab in a ribbon\n"
"bar.");

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

    {
        ::wxDC* dc;
        ::wxWindow* wnd;
        const ::wxString* label;
        int labelState = 0;
        const ::wxBitmap* bitmap;
        int ideal;
        int small_begin_need_separator;
        int small_must_have_separator;
        int minimum;
        ::wxRibbonArtProvider *sipCpp;

        static const char *sipKwdList[] = {
            sipName_dc,
            sipName_wnd,
            sipName_label,
            sipName_bitmap,
        };

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "BJ9J8J1J9", &sipSelf, sipType_wxRibbonArtProvider, &sipCpp, sipType_wxDC, &dc, sipType_wxWindow, &wnd, sipType_wxString, &label, &labelState, sipType_wxBitmap, &bitmap))
        {
            if (!sipOrigSelf)
            {
                sipAbstractMethod(sipName_RibbonArtProvider, sipName_GetBarTabWidth);
                return SIP_NULLPTR;
            }

            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipCpp->GetBarTabWidth(*dc, wnd, *label, *bitmap, &ideal, &small_begin_need_separator, &small_must_have_separator, &minimum);
            Py_END_ALLOW_THREADS
            sipReleaseType(const_cast< ::wxString *>(label), sipType_wxString, labelState);

            if (PyErr_Occurred())
                return 0;

            return sipBuildResult(0, "(iiii)", ideal, small_begin_need_separator, small_must_have_separator, minimum);
        }
    }

    sipNoMethod(sipParseErr, sipName_RibbonArtProvider, sipName_GetBarTabWidth, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxRibbonArtProvider_GetTabCtrlHeight, "GetTabCtrlHeight(dc, wnd, pages) -> int\n"
"\n"
"Calculate the height (in pixels) of the tab region of a ribbon bar.");

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

    {
        ::wxDC* dc;
        ::wxWindow* wnd;
        const ::wxRibbonPageTabInfoArray* pages;
        ::wxRibbonArtProvider *sipCpp;

        static const char *sipKwdList[] = {
            sipName_dc,
            sipName_wnd,
            sipName_pages,
        };

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "BJ9J8J9", &sipSelf, sipType_wxRibbonArtProvider, &sipCpp, sipType_wxDC, &dc, sipType_wxWindow, &wnd, sipType_wxRibbonPageTabInfoArray, &pages))
        {
            int sipRes;

            if (!sipOrigSelf)
            {
                sipAbstractMethod(sipName_RibbonArtProvider, sipName_GetTabCtrlHeight);
                return SIP_NULLPTR;
            }

            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipRes = sipCpp->GetTabCtrlHeight(*dc, wnd, *pages);
            Py_END_ALLOW_THREADS

            if (PyErr_Occurred())
                return 0;

            return PyLong_FromLong(sipRes);
        }
    }

    sipNoMethod(sipParseErr, sipName_RibbonArtProvider, sipName_GetTabCtrlHeight, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxRibbonArtProvider_GetScrollButtonMinimumSize, "GetScrollButtonMinimumSize(dc, wnd, style) -> wx.Size\n"
"\n"
"Calculate the minimum size (in pixels) of a scroll button.");

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

    {
        ::wxDC* dc;
        ::wxWindow* wnd;
        long style;
        ::wxRibbonArtProvider *sipCpp;

        static const char *sipKwdList[] = {
            sipName_dc,
            sipName_wnd,
            sipName_style,
        };

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "BJ9J8l", &sipSelf, sipType_wxRibbonArtProvider, &sipCpp, sipType_wxDC, &dc, sipType_wxWindow, &wnd, &style))
        {
            ::wxSize*sipRes;

            if (!sipOrigSelf)
            {
                sipAbstractMethod(sipName_RibbonArtProvider, sipName_GetScrollButtonMinimumSize);
                return SIP_NULLPTR;
            }

            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipRes = new ::wxSize(sipCpp->GetScrollButtonMinimumSize(*dc, wnd, style));
            Py_END_ALLOW_THREADS

            if (PyErr_Occurred())
                return 0;

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

    sipNoMethod(sipParseErr, sipName_RibbonArtProvider, sipName_GetScrollButtonMinimumSize, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxRibbonArtProvider_GetPanelSize, "GetPanelSize(dc, wnd, client_size, client_offset) -> wx.Size\n"
"\n"
"Calculate the size of a panel for a given client size.");

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

    {
        ::wxDC* dc;
        const ::wxRibbonPanel* wnd;
        ::wxSize* client_size;
        int client_sizeState = 0;
        ::wxPoint* client_offset;
        int client_offsetState = 0;
        ::wxRibbonArtProvider *sipCpp;

        static const char *sipKwdList[] = {
            sipName_dc,
            sipName_wnd,
            sipName_client_size,
            sipName_client_offset,
        };

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "BJ9J8J1J0", &sipSelf, sipType_wxRibbonArtProvider, &sipCpp, sipType_wxDC, &dc, sipType_wxRibbonPanel, &wnd, sipType_wxSize, &client_size, &client_sizeState, sipType_wxPoint, &client_offset, &client_offsetState))
        {
            ::wxSize*sipRes;

            if (!sipOrigSelf)
            {
                sipAbstractMethod(sipName_RibbonArtProvider, sipName_GetPanelSize);
                return SIP_NULLPTR;
            }

            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipRes = new ::wxSize(sipCpp->GetPanelSize(*dc, wnd, *client_size, client_offset));
            Py_END_ALLOW_THREADS
            sipReleaseType(client_size, sipType_wxSize, client_sizeState);
            sipReleaseType(client_offset, sipType_wxPoint, client_offsetState);

            if (PyErr_Occurred())
                return 0;

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

    sipNoMethod(sipParseErr, sipName_RibbonArtProvider, sipName_GetPanelSize, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxRibbonArtProvider_GetPanelClientSize, "GetPanelClientSize(dc, wnd, size, client_offset) -> wx.Size\n"
"\n"
"Calculate the client size of a panel for a given overall size.");

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

    {
        ::wxDC* dc;
        const ::wxRibbonPanel* wnd;
        ::wxSize* size;
        int sizeState = 0;
        ::wxPoint* client_offset;
        int client_offsetState = 0;
        ::wxRibbonArtProvider *sipCpp;

        static const char *sipKwdList[] = {
            sipName_dc,
            sipName_wnd,
            sipName_size,
            sipName_client_offset,
        };

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "BJ9J8J1J0", &sipSelf, sipType_wxRibbonArtProvider, &sipCpp, sipType_wxDC, &dc, sipType_wxRibbonPanel, &wnd, sipType_wxSize, &size, &sizeState, sipType_wxPoint, &client_offset, &client_offsetState))
        {
            ::wxSize*sipRes;

            if (!sipOrigSelf)
            {
                sipAbstractMethod(sipName_RibbonArtProvider, sipName_GetPanelClientSize);
                return SIP_NULLPTR;
            }

            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipRes = new ::wxSize(sipCpp->GetPanelClientSize(*dc, wnd, *size, client_offset));
            Py_END_ALLOW_THREADS
            sipReleaseType(size, sipType_wxSize, sizeState);
            sipReleaseType(client_offset, sipType_wxPoint, client_offsetState);

            if (PyErr_Occurred())
                return 0;

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

    sipNoMethod(sipParseErr, sipName_RibbonArtProvider, sipName_GetPanelClientSize, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxRibbonArtProvider_GetPanelExtButtonArea, "GetPanelExtButtonArea(dc, wnd, rect) -> wx.Rect\n"
"\n"
"Calculate the position and size of the panel extension button.");

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

    {
        ::wxDC* dc;
        const ::wxRibbonPanel* wnd;
        ::wxRect* rect;
        int rectState = 0;
        ::wxRibbonArtProvider *sipCpp;

        static const char *sipKwdList[] = {
            sipName_dc,
            sipName_wnd,
            sipName_rect,
        };

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "BJ9J8J1", &sipSelf, sipType_wxRibbonArtProvider, &sipCpp, sipType_wxDC, &dc, sipType_wxRibbonPanel, &wnd, sipType_wxRect, &rect, &rectState))
        {
            ::wxRect*sipRes;

            if (!sipOrigSelf)
            {
                sipAbstractMethod(sipName_RibbonArtProvider, sipName_GetPanelExtButtonArea);
                return SIP_NULLPTR;
            }

            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipRes = new ::wxRect(sipCpp->GetPanelExtButtonArea(*dc, wnd, *rect));
            Py_END_ALLOW_THREADS
            sipReleaseType(rect, sipType_wxRect, rectState);

            if (PyErr_Occurred())
                return 0;

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

    sipNoMethod(sipParseErr, sipName_RibbonArtProvider, sipName_GetPanelExtButtonArea, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxRibbonArtProvider_GetGallerySize, "GetGallerySize(dc, wnd, client_size) -> wx.Size\n"
"\n"
"Calculate the size of a wxRibbonGallery control for a given client\n"
"size.");

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

    {
        ::wxDC* dc;
        const ::wxRibbonGallery* wnd;
        ::wxSize* client_size;
        int client_sizeState = 0;
        ::wxRibbonArtProvider *sipCpp;

        static const char *sipKwdList[] = {
            sipName_dc,
            sipName_wnd,
            sipName_client_size,
        };

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "BJ9J8J1", &sipSelf, sipType_wxRibbonArtProvider, &sipCpp, sipType_wxDC, &dc, sipType_wxRibbonGallery, &wnd, sipType_wxSize, &client_size, &client_sizeState))
        {
            ::wxSize*sipRes;

            if (!sipOrigSelf)
            {
                sipAbstractMethod(sipName_RibbonArtProvider, sipName_GetGallerySize);
                return SIP_NULLPTR;
            }

            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipRes = new ::wxSize(sipCpp->GetGallerySize(*dc, wnd, *client_size));
            Py_END_ALLOW_THREADS
            sipReleaseType(client_size, sipType_wxSize, client_sizeState);

            if (PyErr_Occurred())
                return 0;

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

    sipNoMethod(sipParseErr, sipName_RibbonArtProvider, sipName_GetGallerySize, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxRibbonArtProvider_GetGalleryClientSize, "GetGalleryClientSize(dc, wnd, size, client_offset, scroll_up_button, scroll_down_button, extension_button) -> wx.Size\n"
"\n"
"Calculate the client size of a wxRibbonGallery control for a given\n"
"size.");

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

    {
        ::wxDC* dc;
        const ::wxRibbonGallery* wnd;
        ::wxSize* size;
        int sizeState = 0;
        ::wxPoint* client_offset;
        int client_offsetState = 0;
        ::wxRect* scroll_up_button;
        int scroll_up_buttonState = 0;
        ::wxRect* scroll_down_button;
        int scroll_down_buttonState = 0;
        ::wxRect* extension_button;
        int extension_buttonState = 0;
        ::wxRibbonArtProvider *sipCpp;

        static const char *sipKwdList[] = {
            sipName_dc,
            sipName_wnd,
            sipName_size,
            sipName_client_offset,
            sipName_scroll_up_button,
            sipName_scroll_down_button,
            sipName_extension_button,
        };

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "BJ9J8J1J0J0J0J0", &sipSelf, sipType_wxRibbonArtProvider, &sipCpp, sipType_wxDC, &dc, sipType_wxRibbonGallery, &wnd, sipType_wxSize, &size, &sizeState, sipType_wxPoint, &client_offset, &client_offsetState, sipType_wxRect, &scroll_up_button, &scroll_up_buttonState, sipType_wxRect, &scroll_down_button, &scroll_down_buttonState, sipType_wxRect, &extension_button, &extension_buttonState))
        {
            ::wxSize*sipRes;

            if (!sipOrigSelf)
            {
                sipAbstractMethod(sipName_RibbonArtProvider, sipName_GetGalleryClientSize);
                return SIP_NULLPTR;
            }

            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipRes = new ::wxSize(sipCpp->GetGalleryClientSize(*dc, wnd, *size, client_offset, scroll_up_button, scroll_down_button, extension_button));
            Py_END_ALLOW_THREADS
            sipReleaseType(size, sipType_wxSize, sizeState);
            sipReleaseType(client_offset, sipType_wxPoint, client_offsetState);
            sipReleaseType(scroll_up_button, sipType_wxRect, scroll_up_buttonState);
            sipReleaseType(scroll_down_button, sipType_wxRect, scroll_down_buttonState);
            sipReleaseType(extension_button, sipType_wxRect, extension_buttonState);

            if (PyErr_Occurred())
                return 0;

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

    sipNoMethod(sipParseErr, sipName_RibbonArtProvider, sipName_GetGalleryClientSize, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxRibbonArtProvider_GetPageBackgroundRedrawArea, "GetPageBackgroundRedrawArea(dc, wnd, page_old_size, page_new_size) -> wx.Rect\n"
"\n"
"Calculate the portion of a page background which needs to be redrawn\n"
"when a page is resized.");

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

    {
        ::wxDC* dc;
        const ::wxRibbonPage* wnd;
        ::wxSize* page_old_size;
        int page_old_sizeState = 0;
        ::wxSize* page_new_size;
        int page_new_sizeState = 0;
        ::wxRibbonArtProvider *sipCpp;

        static const char *sipKwdList[] = {
            sipName_dc,
            sipName_wnd,
            sipName_page_old_size,
            sipName_page_new_size,
        };

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "BJ9J8J1J1", &sipSelf, sipType_wxRibbonArtProvider, &sipCpp, sipType_wxDC, &dc, sipType_wxRibbonPage, &wnd, sipType_wxSize, &page_old_size, &page_old_sizeState, sipType_wxSize, &page_new_size, &page_new_sizeState))
        {
            ::wxRect*sipRes;

            if (!sipOrigSelf)
            {
                sipAbstractMethod(sipName_RibbonArtProvider, sipName_GetPageBackgroundRedrawArea);
                return SIP_NULLPTR;
            }

            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipRes = new ::wxRect(sipCpp->GetPageBackgroundRedrawArea(*dc, wnd, *page_old_size, *page_new_size));
            Py_END_ALLOW_THREADS
            sipReleaseType(page_old_size, sipType_wxSize, page_old_sizeState);
            sipReleaseType(page_new_size, sipType_wxSize, page_new_sizeState);

            if (PyErr_Occurred())
                return 0;

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

    sipNoMethod(sipParseErr, sipName_RibbonArtProvider, sipName_GetPageBackgroundRedrawArea, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxRibbonArtProvider_GetButtonBarButtonSize, "GetButtonBarButtonSize(dc, wnd, kind, size, label, text_min_width, bitmap_size_large, bitmap_size_small, button_size, normal_region, dropdown_region) -> bool\n"
"\n"
"Calculate the size of a button within a wxRibbonButtonBar.");

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

    {
        ::wxDC* dc;
        ::wxWindow* wnd;
        ::wxRibbonButtonKind kind;
        ::wxRibbonButtonBarButtonState size;
        const ::wxString* label;
        int labelState = 0;
        ::wxCoord text_min_width;
        ::wxSize* bitmap_size_large;
        int bitmap_size_largeState = 0;
        ::wxSize* bitmap_size_small;
        int bitmap_size_smallState = 0;
        ::wxSize* button_size;
        int button_sizeState = 0;
        ::wxRect* normal_region;
        int normal_regionState = 0;
        ::wxRect* dropdown_region;
        int dropdown_regionState = 0;
        ::wxRibbonArtProvider *sipCpp;

        static const char *sipKwdList[] = {
            sipName_dc,
            sipName_wnd,
            sipName_kind,
            sipName_size,
            sipName_label,
            sipName_text_min_width,
            sipName_bitmap_size_large,
            sipName_bitmap_size_small,
            sipName_button_size,
            sipName_normal_region,
            sipName_dropdown_region,
        };

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "BJ9J8EEJ1iJ1J1J0J0J0", &sipSelf, sipType_wxRibbonArtProvider, &sipCpp, sipType_wxDC, &dc, sipType_wxWindow, &wnd, sipType_wxRibbonButtonKind, &kind, sipType_wxRibbonButtonBarButtonState, &size, sipType_wxString, &label, &labelState, &text_min_width, sipType_wxSize, &bitmap_size_large, &bitmap_size_largeState, sipType_wxSize, &bitmap_size_small, &bitmap_size_smallState, sipType_wxSize, &button_size, &button_sizeState, sipType_wxRect, &normal_region, &normal_regionState, sipType_wxRect, &dropdown_region, &dropdown_regionState))
        {
            bool sipRes;

            if (!sipOrigSelf)
            {
                sipAbstractMethod(sipName_RibbonArtProvider, sipName_GetButtonBarButtonSize);
                return SIP_NULLPTR;
            }

            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipRes = sipCpp->GetButtonBarButtonSize(*dc, wnd, kind, size, *label, text_min_width, *bitmap_size_large, *bitmap_size_small, button_size, normal_region, dropdown_region);
            Py_END_ALLOW_THREADS
            sipReleaseType(const_cast< ::wxString *>(label), sipType_wxString, labelState);
            sipReleaseType(bitmap_size_large, sipType_wxSize, bitmap_size_largeState);
            sipReleaseType(bitmap_size_small, sipType_wxSize, bitmap_size_smallState);
            sipReleaseType(button_size, sipType_wxSize, button_sizeState);
            sipReleaseType(normal_region, sipType_wxRect, normal_regionState);
            sipReleaseType(dropdown_region, sipType_wxRect, dropdown_regionState);

            if (PyErr_Occurred())
                return 0;

            return PyBool_FromLong(sipRes);
        }
    }

    sipNoMethod(sipParseErr, sipName_RibbonArtProvider, sipName_GetButtonBarButtonSize, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxRibbonArtProvider_GetButtonBarButtonTextWidth, "GetButtonBarButtonTextWidth(dc, label, kind, size) -> int\n"
"\n"
"Gets the width of the string if it is used as a wxRibbonButtonBar\n"
"button label.");

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

    {
        ::wxDC* dc;
        const ::wxString* label;
        int labelState = 0;
        ::wxRibbonButtonKind kind;
        ::wxRibbonButtonBarButtonState size;
        ::wxRibbonArtProvider *sipCpp;

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

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "BJ9J1EE", &sipSelf, sipType_wxRibbonArtProvider, &sipCpp, sipType_wxDC, &dc, sipType_wxString, &label, &labelState, sipType_wxRibbonButtonKind, &kind, sipType_wxRibbonButtonBarButtonState, &size))
        {
            ::wxCoord sipRes;

            if (!sipOrigSelf)
            {
                sipAbstractMethod(sipName_RibbonArtProvider, sipName_GetButtonBarButtonTextWidth);
                return SIP_NULLPTR;
            }

            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipRes = sipCpp->GetButtonBarButtonTextWidth(*dc, *label, kind, size);
            Py_END_ALLOW_THREADS
            sipReleaseType(const_cast< ::wxString *>(label), sipType_wxString, labelState);

            if (PyErr_Occurred())
                return 0;

            return PyLong_FromLong(sipRes);
        }
    }

    sipNoMethod(sipParseErr, sipName_RibbonArtProvider, sipName_GetButtonBarButtonTextWidth, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxRibbonArtProvider_GetMinimisedPanelMinimumSize, "GetMinimisedPanelMinimumSize(dc, wnd, desired_bitmap_size, expanded_panel_direction) -> wx.Size\n"
"\n"
"Calculate the size of a minimised ribbon panel.");

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

    {
        ::wxDC* dc;
        const ::wxRibbonPanel* wnd;
        ::wxSize* desired_bitmap_size;
        int desired_bitmap_sizeState = 0;
        ::wxDirection expanded_panel_direction;
        ::wxRibbonArtProvider *sipCpp;

        static const char *sipKwdList[] = {
            sipName_dc,
            sipName_wnd,
            sipName_desired_bitmap_size,
        };

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "BJ9J8J0", &sipSelf, sipType_wxRibbonArtProvider, &sipCpp, sipType_wxDC, &dc, sipType_wxRibbonPanel, &wnd, sipType_wxSize, &desired_bitmap_size, &desired_bitmap_sizeState))
        {
            ::wxSize*sipRes;

            if (!sipOrigSelf)
            {
                sipAbstractMethod(sipName_RibbonArtProvider, sipName_GetMinimisedPanelMinimumSize);
                return SIP_NULLPTR;
            }

            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipRes = new ::wxSize(sipCpp->GetMinimisedPanelMinimumSize(*dc, wnd, desired_bitmap_size, &expanded_panel_direction));
            Py_END_ALLOW_THREADS
            sipReleaseType(desired_bitmap_size, sipType_wxSize, desired_bitmap_sizeState);

            if (PyErr_Occurred())
                return 0;

            PyObject *sipResObj = sipConvertFromNewType(sipRes, sipType_wxSize, SIP_NULLPTR);
            return sipBuildResult(0, "(RF)", sipResObj, expanded_panel_direction, sipType_wxDirection);
        }
    }

    sipNoMethod(sipParseErr, sipName_RibbonArtProvider, sipName_GetMinimisedPanelMinimumSize, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxRibbonArtProvider_GetToolSize, "GetToolSize(dc, wnd, bitmap_size, kind, is_first, is_last, dropdown_region) -> wx.Size\n"
"\n"
"Calculate the size of a tool within a wxRibbonToolBar.");

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

    {
        ::wxDC* dc;
        ::wxWindow* wnd;
        ::wxSize* bitmap_size;
        int bitmap_sizeState = 0;
        ::wxRibbonButtonKind kind;
        bool is_first;
        bool is_last;
        ::wxRect* dropdown_region;
        int dropdown_regionState = 0;
        ::wxRibbonArtProvider *sipCpp;

        static const char *sipKwdList[] = {
            sipName_dc,
            sipName_wnd,
            sipName_bitmap_size,
            sipName_kind,
            sipName_is_first,
            sipName_is_last,
            sipName_dropdown_region,
        };

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "BJ9J8J1EbbJ0", &sipSelf, sipType_wxRibbonArtProvider, &sipCpp, sipType_wxDC, &dc, sipType_wxWindow, &wnd, sipType_wxSize, &bitmap_size, &bitmap_sizeState, sipType_wxRibbonButtonKind, &kind, &is_first, &is_last, sipType_wxRect, &dropdown_region, &dropdown_regionState))
        {
            ::wxSize*sipRes;

            if (!sipOrigSelf)
            {
                sipAbstractMethod(sipName_RibbonArtProvider, sipName_GetToolSize);
                return SIP_NULLPTR;
            }

            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipRes = new ::wxSize(sipCpp->GetToolSize(*dc, wnd, *bitmap_size, kind, is_first, is_last, dropdown_region));
            Py_END_ALLOW_THREADS
            sipReleaseType(bitmap_size, sipType_wxSize, bitmap_sizeState);
            sipReleaseType(dropdown_region, sipType_wxRect, dropdown_regionState);

            if (PyErr_Occurred())
                return 0;

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

    sipNoMethod(sipParseErr, sipName_RibbonArtProvider, sipName_GetToolSize, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxRibbonArtProvider_GetBarToggleButtonArea, "GetBarToggleButtonArea(rect) -> wx.Rect\n"
"\n"
"Calculate the position and size of the ribbon's toggle button.");

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

    {
        const ::wxRect* rect;
        int rectState = 0;
        ::wxRibbonArtProvider *sipCpp;

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

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "BJ1", &sipSelf, sipType_wxRibbonArtProvider, &sipCpp, sipType_wxRect, &rect, &rectState))
        {
            ::wxRect*sipRes;

            if (!sipOrigSelf)
            {
                sipAbstractMethod(sipName_RibbonArtProvider, sipName_GetBarToggleButtonArea);
                return SIP_NULLPTR;
            }

            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipRes = new ::wxRect(sipCpp->GetBarToggleButtonArea(*rect));
            Py_END_ALLOW_THREADS
            sipReleaseType(const_cast< ::wxRect *>(rect), sipType_wxRect, rectState);

            if (PyErr_Occurred())
                return 0;

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

    sipNoMethod(sipParseErr, sipName_RibbonArtProvider, sipName_GetBarToggleButtonArea, SIP_NULLPTR);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_wxRibbonArtProvider_GetRibbonHelpButtonArea, "GetRibbonHelpButtonArea(rect) -> wx.Rect\n"
"\n"
"Calculate the position and size of the ribbon's help button.");

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

    {
        const ::wxRect* rect;
        int rectState = 0;
        ::wxRibbonArtProvider *sipCpp;

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

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "BJ1", &sipSelf, sipType_wxRibbonArtProvider, &sipCpp, sipType_wxRect, &rect, &rectState))
        {
            ::wxRect*sipRes;

            if (!sipOrigSelf)
            {
                sipAbstractMethod(sipName_RibbonArtProvider, sipName_GetRibbonHelpButtonArea);
                return SIP_NULLPTR;
            }

            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipRes = new ::wxRect(sipCpp->GetRibbonHelpButtonArea(*rect));
            Py_END_ALLOW_THREADS
            sipReleaseType(const_cast< ::wxRect *>(rect), sipType_wxRect, rectState);

            if (PyErr_Occurred())
                return 0;

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

    sipNoMethod(sipParseErr, sipName_RibbonArtProvider, sipName_GetRibbonHelpButtonArea, SIP_NULLPTR);

    return SIP_NULLPTR;
}


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

    if (sipState & SIP_DERIVED_CLASS)
        delete reinterpret_cast<sipwxRibbonArtProvider *>(sipCppV);
    else
        delete reinterpret_cast< ::wxRibbonArtProvider *>(sipCppV);

    Py_END_ALLOW_THREADS
}


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

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


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

    {
        if (sipParseKwdArgs(sipParseErr, sipArgs, sipKwds, SIP_NULLPTR, sipUnused, ""))
        {
            PyErr_Clear();

            Py_BEGIN_ALLOW_THREADS
            sipCpp = new sipwxRibbonArtProvider();
            Py_END_ALLOW_THREADS

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

            sipCpp->sipPySelf = sipSelf;

            return sipCpp;
        }
    }

    {
        const ::wxRibbonArtProvider* a0;

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

            sipCpp->sipPySelf = sipSelf;

            return sipCpp;
        }
    }

    return SIP_NULLPTR;
}


static PyMethodDef methods_wxRibbonArtProvider[] = {
    {sipName_Clone, meth_wxRibbonArtProvider_Clone, METH_VARARGS, doc_wxRibbonArtProvider_Clone},
    {sipName_DrawButtonBarBackground, SIP_MLMETH_CAST(meth_wxRibbonArtProvider_DrawButtonBarBackground), METH_VARARGS|METH_KEYWORDS, doc_wxRibbonArtProvider_DrawButtonBarBackground},
    {sipName_DrawButtonBarButton, SIP_MLMETH_CAST(meth_wxRibbonArtProvider_DrawButtonBarButton), METH_VARARGS|METH_KEYWORDS, doc_wxRibbonArtProvider_DrawButtonBarButton},
    {sipName_DrawGalleryBackground, SIP_MLMETH_CAST(meth_wxRibbonArtProvider_DrawGalleryBackground), METH_VARARGS|METH_KEYWORDS, doc_wxRibbonArtProvider_DrawGalleryBackground},
    {sipName_DrawGalleryItemBackground, SIP_MLMETH_CAST(meth_wxRibbonArtProvider_DrawGalleryItemBackground), METH_VARARGS|METH_KEYWORDS, doc_wxRibbonArtProvider_DrawGalleryItemBackground},
    {sipName_DrawHelpButton, SIP_MLMETH_CAST(meth_wxRibbonArtProvider_DrawHelpButton), METH_VARARGS|METH_KEYWORDS, doc_wxRibbonArtProvider_DrawHelpButton},
    {sipName_DrawMinimisedPanel, SIP_MLMETH_CAST(meth_wxRibbonArtProvider_DrawMinimisedPanel), METH_VARARGS|METH_KEYWORDS, doc_wxRibbonArtProvider_DrawMinimisedPanel},
    {sipName_DrawPageBackground, SIP_MLMETH_CAST(meth_wxRibbonArtProvider_DrawPageBackground), METH_VARARGS|METH_KEYWORDS, doc_wxRibbonArtProvider_DrawPageBackground},
    {sipName_DrawPanelBackground, SIP_MLMETH_CAST(meth_wxRibbonArtProvider_DrawPanelBackground), METH_VARARGS|METH_KEYWORDS, doc_wxRibbonArtProvider_DrawPanelBackground},
    {sipName_DrawScrollButton, SIP_MLMETH_CAST(meth_wxRibbonArtProvider_DrawScrollButton), METH_VARARGS|METH_KEYWORDS, doc_wxRibbonArtProvider_DrawScrollButton},
    {sipName_DrawTab, SIP_MLMETH_CAST(meth_wxRibbonArtProvider_DrawTab), METH_VARARGS|METH_KEYWORDS, doc_wxRibbonArtProvider_DrawTab},
    {sipName_DrawTabCtrlBackground, SIP_MLMETH_CAST(meth_wxRibbonArtProvider_DrawTabCtrlBackground), METH_VARARGS|METH_KEYWORDS, doc_wxRibbonArtProvider_DrawTabCtrlBackground},
    {sipName_DrawTabSeparator, SIP_MLMETH_CAST(meth_wxRibbonArtProvider_DrawTabSeparator), METH_VARARGS|METH_KEYWORDS, doc_wxRibbonArtProvider_DrawTabSeparator},
    {sipName_DrawToggleButton, SIP_MLMETH_CAST(meth_wxRibbonArtProvider_DrawToggleButton), METH_VARARGS|METH_KEYWORDS, doc_wxRibbonArtProvider_DrawToggleButton},
    {sipName_DrawTool, SIP_MLMETH_CAST(meth_wxRibbonArtProvider_DrawTool), METH_VARARGS|METH_KEYWORDS, doc_wxRibbonArtProvider_DrawTool},
    {sipName_DrawToolBarBackground, SIP_MLMETH_CAST(meth_wxRibbonArtProvider_DrawToolBarBackground), METH_VARARGS|METH_KEYWORDS, doc_wxRibbonArtProvider_DrawToolBarBackground},
    {sipName_DrawToolGroupBackground, SIP_MLMETH_CAST(meth_wxRibbonArtProvider_DrawToolGroupBackground), METH_VARARGS|METH_KEYWORDS, doc_wxRibbonArtProvider_DrawToolGroupBackground},
    {sipName_GetBarTabWidth, SIP_MLMETH_CAST(meth_wxRibbonArtProvider_GetBarTabWidth), METH_VARARGS|METH_KEYWORDS, doc_wxRibbonArtProvider_GetBarTabWidth},
    {sipName_GetBarToggleButtonArea, SIP_MLMETH_CAST(meth_wxRibbonArtProvider_GetBarToggleButtonArea), METH_VARARGS|METH_KEYWORDS, doc_wxRibbonArtProvider_GetBarToggleButtonArea},
    {sipName_GetButtonBarButtonSize, SIP_MLMETH_CAST(meth_wxRibbonArtProvider_GetButtonBarButtonSize), METH_VARARGS|METH_KEYWORDS, doc_wxRibbonArtProvider_GetButtonBarButtonSize},
    {sipName_GetButtonBarButtonTextWidth, SIP_MLMETH_CAST(meth_wxRibbonArtProvider_GetButtonBarButtonTextWidth), METH_VARARGS|METH_KEYWORDS, doc_wxRibbonArtProvider_GetButtonBarButtonTextWidth},
    {sipName_GetColor, SIP_MLMETH_CAST(meth_wxRibbonArtProvider_GetColor), METH_VARARGS|METH_KEYWORDS, doc_wxRibbonArtProvider_GetColor},
    {sipName_GetColour, SIP_MLMETH_CAST(meth_wxRibbonArtProvider_GetColour), METH_VARARGS|METH_KEYWORDS, doc_wxRibbonArtProvider_GetColour},
    {sipName_GetColourScheme, SIP_MLMETH_CAST(meth_wxRibbonArtProvider_GetColourScheme), METH_VARARGS|METH_KEYWORDS, doc_wxRibbonArtProvider_GetColourScheme},
    {sipName_GetFlags, meth_wxRibbonArtProvider_GetFlags, METH_VARARGS, doc_wxRibbonArtProvider_GetFlags},
    {sipName_GetFont, SIP_MLMETH_CAST(meth_wxRibbonArtProvider_GetFont), METH_VARARGS|METH_KEYWORDS, doc_wxRibbonArtProvider_GetFont},
    {sipName_GetGalleryClientSize, SIP_MLMETH_CAST(meth_wxRibbonArtProvider_GetGalleryClientSize), METH_VARARGS|METH_KEYWORDS, doc_wxRibbonArtProvider_GetGalleryClientSize},
    {sipName_GetGallerySize, SIP_MLMETH_CAST(meth_wxRibbonArtProvider_GetGallerySize), METH_VARARGS|METH_KEYWORDS, doc_wxRibbonArtProvider_GetGallerySize},
    {sipName_GetMetric, SIP_MLMETH_CAST(meth_wxRibbonArtProvider_GetMetric), METH_VARARGS|METH_KEYWORDS, doc_wxRibbonArtProvider_GetMetric},
    {sipName_GetMinimisedPanelMinimumSize, SIP_MLMETH_CAST(meth_wxRibbonArtProvider_GetMinimisedPanelMinimumSize), METH_VARARGS|METH_KEYWORDS, doc_wxRibbonArtProvider_GetMinimisedPanelMinimumSize},
    {sipName_GetPageBackgroundRedrawArea, SIP_MLMETH_CAST(meth_wxRibbonArtProvider_GetPageBackgroundRedrawArea), METH_VARARGS|METH_KEYWORDS, doc_wxRibbonArtProvider_GetPageBackgroundRedrawArea},
    {sipName_GetPanelClientSize, SIP_MLMETH_CAST(meth_wxRibbonArtProvider_GetPanelClientSize), METH_VARARGS|METH_KEYWORDS, doc_wxRibbonArtProvider_GetPanelClientSize},
    {sipName_GetPanelExtButtonArea, SIP_MLMETH_CAST(meth_wxRibbonArtProvider_GetPanelExtButtonArea), METH_VARARGS|METH_KEYWORDS, doc_wxRibbonArtProvider_GetPanelExtButtonArea},
    {sipName_GetPanelSize, SIP_MLMETH_CAST(meth_wxRibbonArtProvider_GetPanelSize), METH_VARARGS|METH_KEYWORDS, doc_wxRibbonArtProvider_GetPanelSize},
    {sipName_GetRibbonHelpButtonArea, SIP_MLMETH_CAST(meth_wxRibbonArtProvider_GetRibbonHelpButtonArea), METH_VARARGS|METH_KEYWORDS, doc_wxRibbonArtProvider_GetRibbonHelpButtonArea},
    {sipName_GetScrollButtonMinimumSize, SIP_MLMETH_CAST(meth_wxRibbonArtProvider_GetScrollButtonMinimumSize), METH_VARARGS|METH_KEYWORDS, doc_wxRibbonArtProvider_GetScrollButtonMinimumSize},
    {sipName_GetTabCtrlHeight, SIP_MLMETH_CAST(meth_wxRibbonArtProvider_GetTabCtrlHeight), METH_VARARGS|METH_KEYWORDS, doc_wxRibbonArtProvider_GetTabCtrlHeight},
    {sipName_GetToolSize, SIP_MLMETH_CAST(meth_wxRibbonArtProvider_GetToolSize), METH_VARARGS|METH_KEYWORDS, doc_wxRibbonArtProvider_GetToolSize},
    {sipName_SetColor, SIP_MLMETH_CAST(meth_wxRibbonArtProvider_SetColor), METH_VARARGS|METH_KEYWORDS, doc_wxRibbonArtProvider_SetColor},
    {sipName_SetColour, SIP_MLMETH_CAST(meth_wxRibbonArtProvider_SetColour), METH_VARARGS|METH_KEYWORDS, doc_wxRibbonArtProvider_SetColour},
    {sipName_SetColourScheme, SIP_MLMETH_CAST(meth_wxRibbonArtProvider_SetColourScheme), METH_VARARGS|METH_KEYWORDS, doc_wxRibbonArtProvider_SetColourScheme},
    {sipName_SetFlags, SIP_MLMETH_CAST(meth_wxRibbonArtProvider_SetFlags), METH_VARARGS|METH_KEYWORDS, doc_wxRibbonArtProvider_SetFlags},
    {sipName_SetFont, SIP_MLMETH_CAST(meth_wxRibbonArtProvider_SetFont), METH_VARARGS|METH_KEYWORDS, doc_wxRibbonArtProvider_SetFont},
    {sipName_SetMetric, SIP_MLMETH_CAST(meth_wxRibbonArtProvider_SetMetric), METH_VARARGS|METH_KEYWORDS, doc_wxRibbonArtProvider_SetMetric}
};

sipVariableDef variables_wxRibbonArtProvider[] = {
    {PropertyVariable, sipName_Flags, &methods_wxRibbonArtProvider[24], &methods_wxRibbonArtProvider[41], SIP_NULLPTR, SIP_NULLPTR},
};

PyDoc_STRVAR(doc_wxRibbonArtProvider, "RibbonArtProvider() -> None\n"
"\n"
"wxRibbonArtProvider is responsible for drawing all the components of\n"
"the ribbon interface.");


sipClassTypeDef sipTypeDef__ribbon_wxRibbonArtProvider = {
    {
        -1,
        SIP_NULLPTR,
        SIP_NULLPTR,
        SIP_TYPE_ABSTRACT|SIP_TYPE_CLASS,
        sipNameNr_wxRibbonArtProvider,
        SIP_NULLPTR,
        SIP_NULLPTR,
    },
    {
        sipNameNr_RibbonArtProvider,
        {0, 0, 1},
        44, methods_wxRibbonArtProvider,
        0, SIP_NULLPTR,
        1, variables_wxRibbonArtProvider,
        {SIP_NULLPTR, SIP_NULLPTR, SIP_NULLPTR, SIP_NULLPTR, SIP_NULLPTR, SIP_NULLPTR, SIP_NULLPTR, SIP_NULLPTR, SIP_NULLPTR, SIP_NULLPTR},
    },
    doc_wxRibbonArtProvider,
    -1,
    -1,
    SIP_NULLPTR,
    SIP_NULLPTR,
    init_type_wxRibbonArtProvider,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
    dealloc_wxRibbonArtProvider,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
    release_wxRibbonArtProvider,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
    sizeof (::wxRibbonArtProvider),
};
