#ifndef SBK_BOOKMARKSFOLDERSBUTTONWRAPPER_H
#define SBK_BOOKMARKSFOLDERSBUTTONWRAPPER_H

#include <bookmarkstools.h>


// Argument includes
#include <bookmarkitem.h>
#include <qbytearray.h>
#include <qcoreevent.h>
#include <qevent.h>
#include <qmetaobject.h>
#include <qnamespace.h>
#include <qobject.h>
#include <qobjectdefs.h>
#include <qpaintdevice.h>
#include <qpainter.h>
#include <qpoint.h>
#include <qsize.h>
#include <qstyleoption.h>
#include <qvariant.h>
#include <qwidget.h>
#include <sbkpython.h>

#include <array>
namespace Shiboken { struct AutoDecRef; class GilState; }

namespace PySide { class DynamicQMetaObject; }

class BookmarksFoldersButtonWrapper : public BookmarksFoldersButton
{
public:
    BookmarksFoldersButtonWrapper(::QWidget * parent, ::BookmarkItem * folder = nullptr);
    BookmarksFoldersButtonWrapper(const BookmarksFoldersButtonWrapper &) = delete;
    BookmarksFoldersButtonWrapper& operator=(const BookmarksFoldersButtonWrapper &) = delete;
    BookmarksFoldersButtonWrapper(BookmarksFoldersButtonWrapper &&) = delete;
    BookmarksFoldersButtonWrapper& operator=(BookmarksFoldersButtonWrapper &&) = delete;
    ~BookmarksFoldersButtonWrapper() override;

    void actionEvent_protected(::QActionEvent * event) { QWidget::actionEvent(event); }
    void actionEvent(::QActionEvent * event) override;
    void changeEvent_protected(::QEvent * e) { QAbstractButton::changeEvent(e); }
    void changeEvent(::QEvent * e) override;
    void checkStateSet_protected() { QAbstractButton::checkStateSet(); }
    void checkStateSet() override;
    void childEvent_protected(::QChildEvent * event) { QObject::childEvent(event); }
    void childEvent(::QChildEvent * event) override;
    void closeEvent_protected(::QCloseEvent * event) { QWidget::closeEvent(event); }
    void closeEvent(::QCloseEvent * event) override;
    void connectNotify_protected(const ::QMetaMethod & signal) { QObject::connectNotify(signal); }
    void connectNotify(const ::QMetaMethod & signal) override;
    void contextMenuEvent_protected(::QContextMenuEvent * event) { QWidget::contextMenuEvent(event); }
    void contextMenuEvent(::QContextMenuEvent * event) override;
    void customEvent_protected(::QEvent * event) { QObject::customEvent(event); }
    void customEvent(::QEvent * event) override;
    int devType() const override;
    void disconnectNotify_protected(const ::QMetaMethod & signal) { QObject::disconnectNotify(signal); }
    void disconnectNotify(const ::QMetaMethod & signal) override;
    void dragEnterEvent_protected(::QDragEnterEvent * event) { QWidget::dragEnterEvent(event); }
    void dragEnterEvent(::QDragEnterEvent * event) override;
    void dragLeaveEvent_protected(::QDragLeaveEvent * event) { QWidget::dragLeaveEvent(event); }
    void dragLeaveEvent(::QDragLeaveEvent * event) override;
    void dragMoveEvent_protected(::QDragMoveEvent * event) { QWidget::dragMoveEvent(event); }
    void dragMoveEvent(::QDragMoveEvent * event) override;
    void dropEvent_protected(::QDropEvent * event) { QWidget::dropEvent(event); }
    void dropEvent(::QDropEvent * event) override;
    void enterEvent_protected(::QEnterEvent * event) { QWidget::enterEvent(event); }
    void enterEvent(::QEnterEvent * event) override;
    bool event_protected(::QEvent * e) { return QPushButton::event(e); }
    bool event(::QEvent * e) override;
    bool eventFilter(::QObject * watched, ::QEvent * event) override;
    void focusInEvent_protected(::QFocusEvent * arg__1) { QPushButton::focusInEvent(arg__1); }
    void focusInEvent(::QFocusEvent * arg__1) override;
    bool focusNextPrevChild_protected(bool next) { return QWidget::focusNextPrevChild(next); }
    bool focusNextPrevChild(bool next) override;
    void focusOutEvent_protected(::QFocusEvent * arg__1) { QPushButton::focusOutEvent(arg__1); }
    void focusOutEvent(::QFocusEvent * arg__1) override;
    bool hasHeightForWidth() const override;
    int heightForWidth(int arg__1) const override;
    void hideEvent_protected(::QHideEvent * event) { QWidget::hideEvent(event); }
    void hideEvent(::QHideEvent * event) override;
    bool hitButton_protected(const ::QPoint & pos) const { return QPushButton::hitButton(pos); }
    bool hitButton(const ::QPoint & pos) const override;
    void initPainter_protected(::QPainter * painter) const { QWidget::initPainter(painter); }
    void initPainter(::QPainter * painter) const override;
    void initStyleOption_protected(::QStyleOptionButton * option) const { QPushButton::initStyleOption(option); }
    void initStyleOption(::QStyleOptionButton * option) const override;
    static void sbk_o_initStyleOption([[maybe_unused]] const char *ownerClassName, [[maybe_unused]] const char *funcName, [[maybe_unused]] Shiboken::GilState &gil, [[maybe_unused]] const Shiboken::AutoDecRef &pyOverride, [[maybe_unused]] ::QStyleOptionButton * option);
    void inputMethodEvent_protected(::QInputMethodEvent * event) { QWidget::inputMethodEvent(event); }
    void inputMethodEvent(::QInputMethodEvent * event) override;
    ::QVariant inputMethodQuery(::Qt::InputMethodQuery arg__1) const override;
    void keyPressEvent_protected(::QKeyEvent * arg__1) { QPushButton::keyPressEvent(arg__1); }
    void keyPressEvent(::QKeyEvent * arg__1) override;
    void keyReleaseEvent_protected(::QKeyEvent * e) { QAbstractButton::keyReleaseEvent(e); }
    void keyReleaseEvent(::QKeyEvent * e) override;
    void leaveEvent_protected(::QEvent * event) { QWidget::leaveEvent(event); }
    void leaveEvent(::QEvent * event) override;
    int metric_protected(::QPaintDevice::PaintDeviceMetric arg__1) const { return QWidget::metric(QPaintDevice::PaintDeviceMetric(arg__1)); }
    int metric(::QPaintDevice::PaintDeviceMetric arg__1) const override;
    ::QSize minimumSizeHint() const override;
    void mouseDoubleClickEvent_protected(::QMouseEvent * event) { QWidget::mouseDoubleClickEvent(event); }
    void mouseDoubleClickEvent(::QMouseEvent * event) override;
    void mouseMoveEvent_protected(::QMouseEvent * arg__1) { QPushButton::mouseMoveEvent(arg__1); }
    void mouseMoveEvent(::QMouseEvent * arg__1) override;
    void mousePressEvent_protected(::QMouseEvent * e) { QAbstractButton::mousePressEvent(e); }
    void mousePressEvent(::QMouseEvent * e) override;
    void mouseReleaseEvent_protected(::QMouseEvent * e) { QAbstractButton::mouseReleaseEvent(e); }
    void mouseReleaseEvent(::QMouseEvent * e) override;
    void moveEvent_protected(::QMoveEvent * event) { QWidget::moveEvent(event); }
    void moveEvent(::QMoveEvent * event) override;
    bool nativeEvent_protected(const ::QByteArray & eventType, void * message, ::qintptr * result) { return QWidget::nativeEvent(eventType, message, result); }
    bool nativeEvent(const ::QByteArray & eventType, void * message, ::qintptr * result) override;
    void nextCheckState_protected() { QAbstractButton::nextCheckState(); }
    void nextCheckState() override;
    ::QPaintEngine * paintEngine() const override;
    void paintEvent_protected(::QPaintEvent * arg__1) { QPushButton::paintEvent(arg__1); }
    void paintEvent(::QPaintEvent * arg__1) override;
    ::QPaintDevice * redirected_protected(::QPoint * offset) const { return QWidget::redirected(offset); }
    ::QPaintDevice * redirected(::QPoint * offset) const override;
    void resizeEvent_protected(::QResizeEvent * event) { QWidget::resizeEvent(event); }
    void resizeEvent(::QResizeEvent * event) override;
    void setVisible(bool visible) override;
    ::QPainter * sharedPainter_protected() const { return QWidget::sharedPainter(); }
    ::QPainter * sharedPainter() const override;
    void showEvent_protected(::QShowEvent * event) { QWidget::showEvent(event); }
    void showEvent(::QShowEvent * event) override;
    ::QSize sizeHint() const override;
    void tabletEvent_protected(::QTabletEvent * event) { QWidget::tabletEvent(event); }
    void tabletEvent(::QTabletEvent * event) override;
    void timerEvent_protected(::QTimerEvent * e) { QAbstractButton::timerEvent(e); }
    void timerEvent(::QTimerEvent * e) override;
    void wheelEvent_protected(::QWheelEvent * event) { QWidget::wheelEvent(event); }
    void wheelEvent(::QWheelEvent * event) override;

    const ::QMetaObject * metaObject() const override;
    int qt_metacall(QMetaObject::Call call, int id, void **args) override;
    void *qt_metacast(const char *_clname) override;
    static void pysideInitQtMetaTypes();

    void resetPyMethodCache();

private:
    mutable std::array<PyObject *, 51> m_PyMethodCache = {nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr};
};

#  ifndef SBK_QPUSHBUTTONWRAPPER_H
#  define SBK_QPUSHBUTTONWRAPPER_H

// Inherited base class:
class QPushButtonWrapper : public QPushButton
{
public:
    QPushButtonWrapper(::QWidget * parent = nullptr);
    QPushButtonWrapper(const ::QIcon & icon, const ::QString & text, ::QWidget * parent = nullptr);
    QPushButtonWrapper(const ::QString & text, ::QWidget * parent = nullptr);
    QPushButtonWrapper(const QPushButtonWrapper &) = delete;
    QPushButtonWrapper& operator=(const QPushButtonWrapper &) = delete;
    QPushButtonWrapper(QPushButtonWrapper &&) = delete;
    QPushButtonWrapper& operator=(QPushButtonWrapper &&) = delete;
    ~QPushButtonWrapper() override;

    void actionEvent_protected(::QActionEvent * event) { QWidget::actionEvent(event); }
    void actionEvent(::QActionEvent * event) override;
    void changeEvent_protected(::QEvent * e) { QAbstractButton::changeEvent(e); }
    void changeEvent(::QEvent * e) override;
    void checkStateSet_protected() { QAbstractButton::checkStateSet(); }
    void checkStateSet() override;
    void childEvent_protected(::QChildEvent * event) { QObject::childEvent(event); }
    void childEvent(::QChildEvent * event) override;
    void closeEvent_protected(::QCloseEvent * event) { QWidget::closeEvent(event); }
    void closeEvent(::QCloseEvent * event) override;
    void connectNotify_protected(const ::QMetaMethod & signal) { QObject::connectNotify(signal); }
    void connectNotify(const ::QMetaMethod & signal) override;
    void contextMenuEvent_protected(::QContextMenuEvent * event) { QWidget::contextMenuEvent(event); }
    void contextMenuEvent(::QContextMenuEvent * event) override;
    void customEvent_protected(::QEvent * event) { QObject::customEvent(event); }
    void customEvent(::QEvent * event) override;
    int devType() const override;
    void disconnectNotify_protected(const ::QMetaMethod & signal) { QObject::disconnectNotify(signal); }
    void disconnectNotify(const ::QMetaMethod & signal) override;
    void dragEnterEvent_protected(::QDragEnterEvent * event) { QWidget::dragEnterEvent(event); }
    void dragEnterEvent(::QDragEnterEvent * event) override;
    void dragLeaveEvent_protected(::QDragLeaveEvent * event) { QWidget::dragLeaveEvent(event); }
    void dragLeaveEvent(::QDragLeaveEvent * event) override;
    void dragMoveEvent_protected(::QDragMoveEvent * event) { QWidget::dragMoveEvent(event); }
    void dragMoveEvent(::QDragMoveEvent * event) override;
    void dropEvent_protected(::QDropEvent * event) { QWidget::dropEvent(event); }
    void dropEvent(::QDropEvent * event) override;
    void enterEvent_protected(::QEnterEvent * event) { QWidget::enterEvent(event); }
    void enterEvent(::QEnterEvent * event) override;
    bool event_protected(::QEvent * e) { return QPushButton::event(e); }
    bool event(::QEvent * e) override;
    bool eventFilter(::QObject * watched, ::QEvent * event) override;
    void focusInEvent_protected(::QFocusEvent * arg__1) { QPushButton::focusInEvent(arg__1); }
    void focusInEvent(::QFocusEvent * arg__1) override;
    bool focusNextPrevChild_protected(bool next) { return QWidget::focusNextPrevChild(next); }
    bool focusNextPrevChild(bool next) override;
    void focusOutEvent_protected(::QFocusEvent * arg__1) { QPushButton::focusOutEvent(arg__1); }
    void focusOutEvent(::QFocusEvent * arg__1) override;
    bool hasHeightForWidth() const override;
    int heightForWidth(int arg__1) const override;
    void hideEvent_protected(::QHideEvent * event) { QWidget::hideEvent(event); }
    void hideEvent(::QHideEvent * event) override;
    bool hitButton_protected(const ::QPoint & pos) const { return QPushButton::hitButton(pos); }
    bool hitButton(const ::QPoint & pos) const override;
    void initPainter_protected(::QPainter * painter) const { QWidget::initPainter(painter); }
    void initPainter(::QPainter * painter) const override;
    void initStyleOption_protected(::QStyleOptionButton * option) const { QPushButton::initStyleOption(option); }
    void initStyleOption(::QStyleOptionButton * option) const override;
    void inputMethodEvent_protected(::QInputMethodEvent * event) { QWidget::inputMethodEvent(event); }
    void inputMethodEvent(::QInputMethodEvent * event) override;
    ::QVariant inputMethodQuery(::Qt::InputMethodQuery arg__1) const override;
    void keyPressEvent_protected(::QKeyEvent * arg__1) { QPushButton::keyPressEvent(arg__1); }
    void keyPressEvent(::QKeyEvent * arg__1) override;
    void keyReleaseEvent_protected(::QKeyEvent * e) { QAbstractButton::keyReleaseEvent(e); }
    void keyReleaseEvent(::QKeyEvent * e) override;
    void leaveEvent_protected(::QEvent * event) { QWidget::leaveEvent(event); }
    void leaveEvent(::QEvent * event) override;
    int metric_protected(::QPaintDevice::PaintDeviceMetric arg__1) const { return QWidget::metric(QPaintDevice::PaintDeviceMetric(arg__1)); }
    int metric(::QPaintDevice::PaintDeviceMetric arg__1) const override;
    ::QSize minimumSizeHint() const override;
    void mouseDoubleClickEvent_protected(::QMouseEvent * event) { QWidget::mouseDoubleClickEvent(event); }
    void mouseDoubleClickEvent(::QMouseEvent * event) override;
    void mouseMoveEvent_protected(::QMouseEvent * arg__1) { QPushButton::mouseMoveEvent(arg__1); }
    void mouseMoveEvent(::QMouseEvent * arg__1) override;
    void mousePressEvent_protected(::QMouseEvent * e) { QAbstractButton::mousePressEvent(e); }
    void mousePressEvent(::QMouseEvent * e) override;
    void mouseReleaseEvent_protected(::QMouseEvent * e) { QAbstractButton::mouseReleaseEvent(e); }
    void mouseReleaseEvent(::QMouseEvent * e) override;
    void moveEvent_protected(::QMoveEvent * event) { QWidget::moveEvent(event); }
    void moveEvent(::QMoveEvent * event) override;
    bool nativeEvent_protected(const ::QByteArray & eventType, void * message, ::qintptr * result) { return QWidget::nativeEvent(eventType, message, result); }
    bool nativeEvent(const ::QByteArray & eventType, void * message, ::qintptr * result) override;
    void nextCheckState_protected() { QAbstractButton::nextCheckState(); }
    void nextCheckState() override;
    ::QPaintEngine * paintEngine() const override;
    void paintEvent_protected(::QPaintEvent * arg__1) { QPushButton::paintEvent(arg__1); }
    void paintEvent(::QPaintEvent * arg__1) override;
    ::QPaintDevice * redirected_protected(::QPoint * offset) const { return QWidget::redirected(offset); }
    ::QPaintDevice * redirected(::QPoint * offset) const override;
    void resizeEvent_protected(::QResizeEvent * event) { QWidget::resizeEvent(event); }
    void resizeEvent(::QResizeEvent * event) override;
    void setVisible(bool visible) override;
    ::QPainter * sharedPainter_protected() const { return QWidget::sharedPainter(); }
    ::QPainter * sharedPainter() const override;
    void showEvent_protected(::QShowEvent * event) { QWidget::showEvent(event); }
    void showEvent(::QShowEvent * event) override;
    ::QSize sizeHint() const override;
    void tabletEvent_protected(::QTabletEvent * event) { QWidget::tabletEvent(event); }
    void tabletEvent(::QTabletEvent * event) override;
    void timerEvent_protected(::QTimerEvent * e) { QAbstractButton::timerEvent(e); }
    void timerEvent(::QTimerEvent * e) override;
    void wheelEvent_protected(::QWheelEvent * event) { QWidget::wheelEvent(event); }
    void wheelEvent(::QWheelEvent * event) override;

    const ::QMetaObject * metaObject() const override;
    int qt_metacall(QMetaObject::Call call, int id, void **args) override;
    void *qt_metacast(const char *_clname) override;
    static void pysideInitQtMetaTypes();

    void resetPyMethodCache();

private:
    mutable std::array<PyObject *, 51> m_PyMethodCache = {nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr};
};

#  endif // SBK_QPUSHBUTTONWRAPPER_H

#  ifndef SBK_QABSTRACTBUTTONWRAPPER_H
#  define SBK_QABSTRACTBUTTONWRAPPER_H

// Inherited base class:
class QAbstractButtonWrapper : public QAbstractButton
{
public:
    QAbstractButtonWrapper(::QWidget * parent = nullptr);
    QAbstractButtonWrapper(const QAbstractButtonWrapper &) = delete;
    QAbstractButtonWrapper& operator=(const QAbstractButtonWrapper &) = delete;
    QAbstractButtonWrapper(QAbstractButtonWrapper &&) = delete;
    QAbstractButtonWrapper& operator=(QAbstractButtonWrapper &&) = delete;
    ~QAbstractButtonWrapper() override;

    void actionEvent_protected(::QActionEvent * event) { QWidget::actionEvent(event); }
    void actionEvent(::QActionEvent * event) override;
    void changeEvent_protected(::QEvent * e) { QAbstractButton::changeEvent(e); }
    void changeEvent(::QEvent * e) override;
    void checkStateSet_protected() { QAbstractButton::checkStateSet(); }
    void checkStateSet() override;
    void childEvent_protected(::QChildEvent * event) { QObject::childEvent(event); }
    void childEvent(::QChildEvent * event) override;
    void closeEvent_protected(::QCloseEvent * event) { QWidget::closeEvent(event); }
    void closeEvent(::QCloseEvent * event) override;
    void connectNotify_protected(const ::QMetaMethod & signal) { QObject::connectNotify(signal); }
    void connectNotify(const ::QMetaMethod & signal) override;
    void contextMenuEvent_protected(::QContextMenuEvent * event) { QWidget::contextMenuEvent(event); }
    void contextMenuEvent(::QContextMenuEvent * event) override;
    void customEvent_protected(::QEvent * event) { QObject::customEvent(event); }
    void customEvent(::QEvent * event) override;
    int devType() const override;
    void disconnectNotify_protected(const ::QMetaMethod & signal) { QObject::disconnectNotify(signal); }
    void disconnectNotify(const ::QMetaMethod & signal) override;
    void dragEnterEvent_protected(::QDragEnterEvent * event) { QWidget::dragEnterEvent(event); }
    void dragEnterEvent(::QDragEnterEvent * event) override;
    void dragLeaveEvent_protected(::QDragLeaveEvent * event) { QWidget::dragLeaveEvent(event); }
    void dragLeaveEvent(::QDragLeaveEvent * event) override;
    void dragMoveEvent_protected(::QDragMoveEvent * event) { QWidget::dragMoveEvent(event); }
    void dragMoveEvent(::QDragMoveEvent * event) override;
    void dropEvent_protected(::QDropEvent * event) { QWidget::dropEvent(event); }
    void dropEvent(::QDropEvent * event) override;
    void enterEvent_protected(::QEnterEvent * event) { QWidget::enterEvent(event); }
    void enterEvent(::QEnterEvent * event) override;
    bool event_protected(::QEvent * e) { return QAbstractButton::event(e); }
    bool event(::QEvent * e) override;
    bool eventFilter(::QObject * watched, ::QEvent * event) override;
    void focusInEvent_protected(::QFocusEvent * e) { QAbstractButton::focusInEvent(e); }
    void focusInEvent(::QFocusEvent * e) override;
    bool focusNextPrevChild_protected(bool next) { return QWidget::focusNextPrevChild(next); }
    bool focusNextPrevChild(bool next) override;
    void focusOutEvent_protected(::QFocusEvent * e) { QAbstractButton::focusOutEvent(e); }
    void focusOutEvent(::QFocusEvent * e) override;
    bool hasHeightForWidth() const override;
    int heightForWidth(int arg__1) const override;
    void hideEvent_protected(::QHideEvent * event) { QWidget::hideEvent(event); }
    void hideEvent(::QHideEvent * event) override;
    bool hitButton_protected(const ::QPoint & pos) const { return QAbstractButton::hitButton(pos); }
    bool hitButton(const ::QPoint & pos) const override;
    void initPainter_protected(::QPainter * painter) const { QWidget::initPainter(painter); }
    void initPainter(::QPainter * painter) const override;
    void inputMethodEvent_protected(::QInputMethodEvent * event) { QWidget::inputMethodEvent(event); }
    void inputMethodEvent(::QInputMethodEvent * event) override;
    ::QVariant inputMethodQuery(::Qt::InputMethodQuery arg__1) const override;
    void keyPressEvent_protected(::QKeyEvent * e) { QAbstractButton::keyPressEvent(e); }
    void keyPressEvent(::QKeyEvent * e) override;
    void keyReleaseEvent_protected(::QKeyEvent * e) { QAbstractButton::keyReleaseEvent(e); }
    void keyReleaseEvent(::QKeyEvent * e) override;
    void leaveEvent_protected(::QEvent * event) { QWidget::leaveEvent(event); }
    void leaveEvent(::QEvent * event) override;
    int metric_protected(::QPaintDevice::PaintDeviceMetric arg__1) const { return QWidget::metric(QPaintDevice::PaintDeviceMetric(arg__1)); }
    int metric(::QPaintDevice::PaintDeviceMetric arg__1) const override;
    ::QSize minimumSizeHint() const override;
    void mouseDoubleClickEvent_protected(::QMouseEvent * event) { QWidget::mouseDoubleClickEvent(event); }
    void mouseDoubleClickEvent(::QMouseEvent * event) override;
    void mouseMoveEvent_protected(::QMouseEvent * e) { QAbstractButton::mouseMoveEvent(e); }
    void mouseMoveEvent(::QMouseEvent * e) override;
    void mousePressEvent_protected(::QMouseEvent * e) { QAbstractButton::mousePressEvent(e); }
    void mousePressEvent(::QMouseEvent * e) override;
    void mouseReleaseEvent_protected(::QMouseEvent * e) { QAbstractButton::mouseReleaseEvent(e); }
    void mouseReleaseEvent(::QMouseEvent * e) override;
    void moveEvent_protected(::QMoveEvent * event) { QWidget::moveEvent(event); }
    void moveEvent(::QMoveEvent * event) override;
    bool nativeEvent_protected(const ::QByteArray & eventType, void * message, ::qintptr * result) { return QWidget::nativeEvent(eventType, message, result); }
    bool nativeEvent(const ::QByteArray & eventType, void * message, ::qintptr * result) override;
    void nextCheckState_protected() { QAbstractButton::nextCheckState(); }
    void nextCheckState() override;
    ::QPaintEngine * paintEngine() const override;
    void paintEvent_protected(::QPaintEvent * e) { paintEvent(e); }
    void paintEvent(::QPaintEvent * e) override;
    ::QPaintDevice * redirected_protected(::QPoint * offset) const { return QWidget::redirected(offset); }
    ::QPaintDevice * redirected(::QPoint * offset) const override;
    void resizeEvent_protected(::QResizeEvent * event) { QWidget::resizeEvent(event); }
    void resizeEvent(::QResizeEvent * event) override;
    void setVisible(bool visible) override;
    ::QPainter * sharedPainter_protected() const { return QWidget::sharedPainter(); }
    ::QPainter * sharedPainter() const override;
    void showEvent_protected(::QShowEvent * event) { QWidget::showEvent(event); }
    void showEvent(::QShowEvent * event) override;
    ::QSize sizeHint() const override;
    void tabletEvent_protected(::QTabletEvent * event) { QWidget::tabletEvent(event); }
    void tabletEvent(::QTabletEvent * event) override;
    void timerEvent_protected(::QTimerEvent * e) { QAbstractButton::timerEvent(e); }
    void timerEvent(::QTimerEvent * e) override;
    void wheelEvent_protected(::QWheelEvent * event) { QWidget::wheelEvent(event); }
    void wheelEvent(::QWheelEvent * event) override;

    const ::QMetaObject * metaObject() const override;
    int qt_metacall(QMetaObject::Call call, int id, void **args) override;
    void *qt_metacast(const char *_clname) override;
    static void pysideInitQtMetaTypes();

    void resetPyMethodCache();

private:
    mutable std::array<PyObject *, 50> m_PyMethodCache = {nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr};
};

#  endif // SBK_QABSTRACTBUTTONWRAPPER_H

#  ifndef SBK_QWIDGETWRAPPER_H
#  define SBK_QWIDGETWRAPPER_H

// Inherited base class:
class QWidgetWrapper : public QWidget
{
public:
    QWidgetWrapper(::QWidget * parent = nullptr, ::QFlags<Qt::WindowType> f = Qt::WindowFlags());
    QWidgetWrapper(const QWidgetWrapper &) = delete;
    QWidgetWrapper& operator=(const QWidgetWrapper &) = delete;
    QWidgetWrapper(QWidgetWrapper &&) = delete;
    QWidgetWrapper& operator=(QWidgetWrapper &&) = delete;
    ~QWidgetWrapper() override;

    void actionEvent_protected(::QActionEvent * event) { QWidget::actionEvent(event); }
    void actionEvent(::QActionEvent * event) override;
    static void sbk_o_actionEvent([[maybe_unused]] const char *ownerClassName, [[maybe_unused]] const char *funcName, [[maybe_unused]] Shiboken::GilState &gil, [[maybe_unused]] const Shiboken::AutoDecRef &pyOverride, [[maybe_unused]] ::QActionEvent * event);
    void changeEvent_protected(::QEvent * event) { QWidget::changeEvent(event); }
    void changeEvent(::QEvent * event) override;
    static void sbk_o_changeEvent([[maybe_unused]] const char *ownerClassName, [[maybe_unused]] const char *funcName, [[maybe_unused]] Shiboken::GilState &gil, [[maybe_unused]] const Shiboken::AutoDecRef &pyOverride, [[maybe_unused]] ::QEvent * event);
    void childEvent_protected(::QChildEvent * event) { QObject::childEvent(event); }
    void childEvent(::QChildEvent * event) override;
    void closeEvent_protected(::QCloseEvent * event) { QWidget::closeEvent(event); }
    void closeEvent(::QCloseEvent * event) override;
    static void sbk_o_closeEvent([[maybe_unused]] const char *ownerClassName, [[maybe_unused]] const char *funcName, [[maybe_unused]] Shiboken::GilState &gil, [[maybe_unused]] const Shiboken::AutoDecRef &pyOverride, [[maybe_unused]] ::QCloseEvent * event);
    void connectNotify_protected(const ::QMetaMethod & signal) { QObject::connectNotify(signal); }
    void connectNotify(const ::QMetaMethod & signal) override;
    void contextMenuEvent_protected(::QContextMenuEvent * event) { QWidget::contextMenuEvent(event); }
    void contextMenuEvent(::QContextMenuEvent * event) override;
    static void sbk_o_contextMenuEvent([[maybe_unused]] const char *ownerClassName, [[maybe_unused]] const char *funcName, [[maybe_unused]] Shiboken::GilState &gil, [[maybe_unused]] const Shiboken::AutoDecRef &pyOverride, [[maybe_unused]] ::QContextMenuEvent * event);
    void create_protected(::WId arg__1 = 0, bool initializeWindow = true, bool destroyOldWindow = true) { QWidget::create(arg__1, initializeWindow, destroyOldWindow); }
    void customEvent_protected(::QEvent * event) { QObject::customEvent(event); }
    void customEvent(::QEvent * event) override;
    void destroy_protected(bool destroyWindow = true, bool destroySubWindows = true) { QWidget::destroy(destroyWindow, destroySubWindows); }
    int devType() const override;
    void disconnectNotify_protected(const ::QMetaMethod & signal) { QObject::disconnectNotify(signal); }
    void disconnectNotify(const ::QMetaMethod & signal) override;
    void dragEnterEvent_protected(::QDragEnterEvent * event) { QWidget::dragEnterEvent(event); }
    void dragEnterEvent(::QDragEnterEvent * event) override;
    static void sbk_o_dragEnterEvent([[maybe_unused]] const char *ownerClassName, [[maybe_unused]] const char *funcName, [[maybe_unused]] Shiboken::GilState &gil, [[maybe_unused]] const Shiboken::AutoDecRef &pyOverride, [[maybe_unused]] ::QDragEnterEvent * event);
    void dragLeaveEvent_protected(::QDragLeaveEvent * event) { QWidget::dragLeaveEvent(event); }
    void dragLeaveEvent(::QDragLeaveEvent * event) override;
    static void sbk_o_dragLeaveEvent([[maybe_unused]] const char *ownerClassName, [[maybe_unused]] const char *funcName, [[maybe_unused]] Shiboken::GilState &gil, [[maybe_unused]] const Shiboken::AutoDecRef &pyOverride, [[maybe_unused]] ::QDragLeaveEvent * event);
    void dragMoveEvent_protected(::QDragMoveEvent * event) { QWidget::dragMoveEvent(event); }
    void dragMoveEvent(::QDragMoveEvent * event) override;
    static void sbk_o_dragMoveEvent([[maybe_unused]] const char *ownerClassName, [[maybe_unused]] const char *funcName, [[maybe_unused]] Shiboken::GilState &gil, [[maybe_unused]] const Shiboken::AutoDecRef &pyOverride, [[maybe_unused]] ::QDragMoveEvent * event);
    void dropEvent_protected(::QDropEvent * event) { QWidget::dropEvent(event); }
    void dropEvent(::QDropEvent * event) override;
    static void sbk_o_dropEvent([[maybe_unused]] const char *ownerClassName, [[maybe_unused]] const char *funcName, [[maybe_unused]] Shiboken::GilState &gil, [[maybe_unused]] const Shiboken::AutoDecRef &pyOverride, [[maybe_unused]] ::QDropEvent * event);
    void enterEvent_protected(::QEnterEvent * event) { QWidget::enterEvent(event); }
    void enterEvent(::QEnterEvent * event) override;
    static void sbk_o_enterEvent([[maybe_unused]] const char *ownerClassName, [[maybe_unused]] const char *funcName, [[maybe_unused]] Shiboken::GilState &gil, [[maybe_unused]] const Shiboken::AutoDecRef &pyOverride, [[maybe_unused]] ::QEnterEvent * event);
    bool event_protected(::QEvent * event) { return QWidget::event(event); }
    bool event(::QEvent * event) override;
    bool eventFilter(::QObject * watched, ::QEvent * event) override;
    void focusInEvent_protected(::QFocusEvent * event) { QWidget::focusInEvent(event); }
    void focusInEvent(::QFocusEvent * event) override;
    static void sbk_o_focusInEvent([[maybe_unused]] const char *ownerClassName, [[maybe_unused]] const char *funcName, [[maybe_unused]] Shiboken::GilState &gil, [[maybe_unused]] const Shiboken::AutoDecRef &pyOverride, [[maybe_unused]] ::QFocusEvent * event);
    bool focusNextChild_protected() { return QWidget::focusNextChild(); }
    bool focusNextPrevChild_protected(bool next) { return QWidget::focusNextPrevChild(next); }
    bool focusNextPrevChild(bool next) override;
    void focusOutEvent_protected(::QFocusEvent * event) { QWidget::focusOutEvent(event); }
    void focusOutEvent(::QFocusEvent * event) override;
    static void sbk_o_focusOutEvent([[maybe_unused]] const char *ownerClassName, [[maybe_unused]] const char *funcName, [[maybe_unused]] Shiboken::GilState &gil, [[maybe_unused]] const Shiboken::AutoDecRef &pyOverride, [[maybe_unused]] ::QFocusEvent * event);
    bool focusPreviousChild_protected() { return QWidget::focusPreviousChild(); }
    bool hasHeightForWidth() const override;
    int heightForWidth(int arg__1) const override;
    void hideEvent_protected(::QHideEvent * event) { QWidget::hideEvent(event); }
    void hideEvent(::QHideEvent * event) override;
    static void sbk_o_hideEvent([[maybe_unused]] const char *ownerClassName, [[maybe_unused]] const char *funcName, [[maybe_unused]] Shiboken::GilState &gil, [[maybe_unused]] const Shiboken::AutoDecRef &pyOverride, [[maybe_unused]] ::QHideEvent * event);
    void initPainter_protected(::QPainter * painter) const { QWidget::initPainter(painter); }
    void initPainter(::QPainter * painter) const override;
    void inputMethodEvent_protected(::QInputMethodEvent * event) { QWidget::inputMethodEvent(event); }
    void inputMethodEvent(::QInputMethodEvent * event) override;
    static void sbk_o_inputMethodEvent([[maybe_unused]] const char *ownerClassName, [[maybe_unused]] const char *funcName, [[maybe_unused]] Shiboken::GilState &gil, [[maybe_unused]] const Shiboken::AutoDecRef &pyOverride, [[maybe_unused]] ::QInputMethodEvent * event);
    ::QVariant inputMethodQuery(::Qt::InputMethodQuery arg__1) const override;
    void keyPressEvent_protected(::QKeyEvent * event) { QWidget::keyPressEvent(event); }
    void keyPressEvent(::QKeyEvent * event) override;
    static void sbk_o_keyPressEvent([[maybe_unused]] const char *ownerClassName, [[maybe_unused]] const char *funcName, [[maybe_unused]] Shiboken::GilState &gil, [[maybe_unused]] const Shiboken::AutoDecRef &pyOverride, [[maybe_unused]] ::QKeyEvent * event);
    void keyReleaseEvent_protected(::QKeyEvent * event) { QWidget::keyReleaseEvent(event); }
    void keyReleaseEvent(::QKeyEvent * event) override;
    static void sbk_o_keyReleaseEvent([[maybe_unused]] const char *ownerClassName, [[maybe_unused]] const char *funcName, [[maybe_unused]] Shiboken::GilState &gil, [[maybe_unused]] const Shiboken::AutoDecRef &pyOverride, [[maybe_unused]] ::QKeyEvent * event);
    void leaveEvent_protected(::QEvent * event) { QWidget::leaveEvent(event); }
    void leaveEvent(::QEvent * event) override;
    static void sbk_o_leaveEvent([[maybe_unused]] const char *ownerClassName, [[maybe_unused]] const char *funcName, [[maybe_unused]] Shiboken::GilState &gil, [[maybe_unused]] const Shiboken::AutoDecRef &pyOverride, [[maybe_unused]] ::QEvent * event);
    int metric_protected(::QPaintDevice::PaintDeviceMetric arg__1) const { return QWidget::metric(QPaintDevice::PaintDeviceMetric(arg__1)); }
    int metric(::QPaintDevice::PaintDeviceMetric arg__1) const override;
    ::QSize minimumSizeHint() const override;
    void mouseDoubleClickEvent_protected(::QMouseEvent * event) { QWidget::mouseDoubleClickEvent(event); }
    void mouseDoubleClickEvent(::QMouseEvent * event) override;
    static void sbk_o_mouseDoubleClickEvent([[maybe_unused]] const char *ownerClassName, [[maybe_unused]] const char *funcName, [[maybe_unused]] Shiboken::GilState &gil, [[maybe_unused]] const Shiboken::AutoDecRef &pyOverride, [[maybe_unused]] ::QMouseEvent * event);
    void mouseMoveEvent_protected(::QMouseEvent * event) { QWidget::mouseMoveEvent(event); }
    void mouseMoveEvent(::QMouseEvent * event) override;
    static void sbk_o_mouseMoveEvent([[maybe_unused]] const char *ownerClassName, [[maybe_unused]] const char *funcName, [[maybe_unused]] Shiboken::GilState &gil, [[maybe_unused]] const Shiboken::AutoDecRef &pyOverride, [[maybe_unused]] ::QMouseEvent * event);
    void mousePressEvent_protected(::QMouseEvent * event) { QWidget::mousePressEvent(event); }
    void mousePressEvent(::QMouseEvent * event) override;
    static void sbk_o_mousePressEvent([[maybe_unused]] const char *ownerClassName, [[maybe_unused]] const char *funcName, [[maybe_unused]] Shiboken::GilState &gil, [[maybe_unused]] const Shiboken::AutoDecRef &pyOverride, [[maybe_unused]] ::QMouseEvent * event);
    void mouseReleaseEvent_protected(::QMouseEvent * event) { QWidget::mouseReleaseEvent(event); }
    void mouseReleaseEvent(::QMouseEvent * event) override;
    static void sbk_o_mouseReleaseEvent([[maybe_unused]] const char *ownerClassName, [[maybe_unused]] const char *funcName, [[maybe_unused]] Shiboken::GilState &gil, [[maybe_unused]] const Shiboken::AutoDecRef &pyOverride, [[maybe_unused]] ::QMouseEvent * event);
    void moveEvent_protected(::QMoveEvent * event) { QWidget::moveEvent(event); }
    void moveEvent(::QMoveEvent * event) override;
    static void sbk_o_moveEvent([[maybe_unused]] const char *ownerClassName, [[maybe_unused]] const char *funcName, [[maybe_unused]] Shiboken::GilState &gil, [[maybe_unused]] const Shiboken::AutoDecRef &pyOverride, [[maybe_unused]] ::QMoveEvent * event);
    bool nativeEvent_protected(const ::QByteArray & eventType, void * message, ::qintptr * result) { return QWidget::nativeEvent(eventType, message, result); }
    bool nativeEvent(const ::QByteArray & eventType, void * message, ::qintptr * result) override;
    static bool sbk_o_nativeEvent([[maybe_unused]] const char *ownerClassName, [[maybe_unused]] const char *funcName, [[maybe_unused]] Shiboken::GilState &gil, [[maybe_unused]] const Shiboken::AutoDecRef &pyOverride, [[maybe_unused]] const ::QByteArray & eventType, [[maybe_unused]] void * message, [[maybe_unused]] ::qintptr * result);
    ::QPaintEngine * paintEngine() const override;
    void paintEvent_protected(::QPaintEvent * event) { QWidget::paintEvent(event); }
    void paintEvent(::QPaintEvent * event) override;
    static void sbk_o_paintEvent([[maybe_unused]] const char *ownerClassName, [[maybe_unused]] const char *funcName, [[maybe_unused]] Shiboken::GilState &gil, [[maybe_unused]] const Shiboken::AutoDecRef &pyOverride, [[maybe_unused]] ::QPaintEvent * event);
    ::QPaintDevice * redirected_protected(::QPoint * offset) const { return QWidget::redirected(offset); }
    ::QPaintDevice * redirected(::QPoint * offset) const override;
    void resizeEvent_protected(::QResizeEvent * event) { QWidget::resizeEvent(event); }
    void resizeEvent(::QResizeEvent * event) override;
    static void sbk_o_resizeEvent([[maybe_unused]] const char *ownerClassName, [[maybe_unused]] const char *funcName, [[maybe_unused]] Shiboken::GilState &gil, [[maybe_unused]] const Shiboken::AutoDecRef &pyOverride, [[maybe_unused]] ::QResizeEvent * event);
    void setVisible(bool visible) override;
    ::QPainter * sharedPainter_protected() const { return QWidget::sharedPainter(); }
    ::QPainter * sharedPainter() const override;
    void showEvent_protected(::QShowEvent * event) { QWidget::showEvent(event); }
    void showEvent(::QShowEvent * event) override;
    static void sbk_o_showEvent([[maybe_unused]] const char *ownerClassName, [[maybe_unused]] const char *funcName, [[maybe_unused]] Shiboken::GilState &gil, [[maybe_unused]] const Shiboken::AutoDecRef &pyOverride, [[maybe_unused]] ::QShowEvent * event);
    ::QSize sizeHint() const override;
    void tabletEvent_protected(::QTabletEvent * event) { QWidget::tabletEvent(event); }
    void tabletEvent(::QTabletEvent * event) override;
    static void sbk_o_tabletEvent([[maybe_unused]] const char *ownerClassName, [[maybe_unused]] const char *funcName, [[maybe_unused]] Shiboken::GilState &gil, [[maybe_unused]] const Shiboken::AutoDecRef &pyOverride, [[maybe_unused]] ::QTabletEvent * event);
    void timerEvent_protected(::QTimerEvent * event) { QObject::timerEvent(event); }
    void timerEvent(::QTimerEvent * event) override;
    void updateMicroFocus_protected(::Qt::InputMethodQuery query = Qt::ImQueryAll) { QWidget::updateMicroFocus(Qt::InputMethodQuery(query)); }
    void wheelEvent_protected(::QWheelEvent * event) { QWidget::wheelEvent(event); }
    void wheelEvent(::QWheelEvent * event) override;
    static void sbk_o_wheelEvent([[maybe_unused]] const char *ownerClassName, [[maybe_unused]] const char *funcName, [[maybe_unused]] Shiboken::GilState &gil, [[maybe_unused]] const Shiboken::AutoDecRef &pyOverride, [[maybe_unused]] ::QWheelEvent * event);

    const ::QMetaObject * metaObject() const override;
    int qt_metacall(QMetaObject::Call call, int id, void **args) override;
    void *qt_metacast(const char *_clname) override;
    static void pysideInitQtMetaTypes();

    void resetPyMethodCache();

private:
    mutable std::array<PyObject *, 47> m_PyMethodCache = {nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr};
};

#  endif // SBK_QWIDGETWRAPPER_H

#  ifndef SBK_QOBJECTWRAPPER_H
#  define SBK_QOBJECTWRAPPER_H

// Inherited base class:
class QObjectWrapper : public QObject
{
public:
    QObjectWrapper(::QObject * parent = nullptr);
    QObjectWrapper(const QObjectWrapper &) = delete;
    QObjectWrapper& operator=(const QObjectWrapper &) = delete;
    QObjectWrapper(QObjectWrapper &&) = delete;
    QObjectWrapper& operator=(QObjectWrapper &&) = delete;
    ~QObjectWrapper() override;

    void childEvent_protected(::QChildEvent * event) { QObject::childEvent(event); }
    void childEvent(::QChildEvent * event) override;
    static void sbk_o_childEvent([[maybe_unused]] const char *ownerClassName, [[maybe_unused]] const char *funcName, [[maybe_unused]] Shiboken::GilState &gil, [[maybe_unused]] const Shiboken::AutoDecRef &pyOverride, [[maybe_unused]] ::QChildEvent * event);
    void connectNotify_protected(const ::QMetaMethod & signal) { QObject::connectNotify(signal); }
    void connectNotify(const ::QMetaMethod & signal) override;
    void customEvent_protected(::QEvent * event) { QObject::customEvent(event); }
    void customEvent(::QEvent * event) override;
    static void sbk_o_customEvent([[maybe_unused]] const char *ownerClassName, [[maybe_unused]] const char *funcName, [[maybe_unused]] Shiboken::GilState &gil, [[maybe_unused]] const Shiboken::AutoDecRef &pyOverride, [[maybe_unused]] ::QEvent * event);
    void disconnectNotify_protected(const ::QMetaMethod & signal) { QObject::disconnectNotify(signal); }
    void disconnectNotify(const ::QMetaMethod & signal) override;
    bool event(::QEvent * event) override;
    static bool sbk_o_event([[maybe_unused]] const char *ownerClassName, [[maybe_unused]] const char *funcName, [[maybe_unused]] Shiboken::GilState &gil, [[maybe_unused]] const Shiboken::AutoDecRef &pyOverride, [[maybe_unused]] ::QEvent * event);
    bool eventFilter(::QObject * watched, ::QEvent * event) override;
    static bool sbk_o_eventFilter([[maybe_unused]] const char *ownerClassName, [[maybe_unused]] const char *funcName, [[maybe_unused]] Shiboken::GilState &gil, [[maybe_unused]] const Shiboken::AutoDecRef &pyOverride, [[maybe_unused]] ::QObject * watched, [[maybe_unused]] ::QEvent * event);
    bool isSignalConnected_protected(const ::QMetaMethod & signal) const { return QObject::isSignalConnected(signal); }
    int receivers_protected(const char * signal) const { return QObject::receivers(signal); }
    ::QObject * sender_protected() const { return QObject::sender(); }
    int senderSignalIndex_protected() const { return QObject::senderSignalIndex(); }
    void timerEvent_protected(::QTimerEvent * event) { QObject::timerEvent(event); }
    void timerEvent(::QTimerEvent * event) override;
    static void sbk_o_timerEvent([[maybe_unused]] const char *ownerClassName, [[maybe_unused]] const char *funcName, [[maybe_unused]] Shiboken::GilState &gil, [[maybe_unused]] const Shiboken::AutoDecRef &pyOverride, [[maybe_unused]] ::QTimerEvent * event);

    const ::QMetaObject * metaObject() const override;
    int qt_metacall(QMetaObject::Call call, int id, void **args) override;
    void *qt_metacast(const char *_clname) override;
    static void pysideInitQtMetaTypes();

    void resetPyMethodCache();

private:
    mutable std::array<PyObject *, 7> m_PyMethodCache = {nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr};
};

#  endif // SBK_QOBJECTWRAPPER_H

#  ifndef SBK_QPAINTDEVICEWRAPPER_H
#  define SBK_QPAINTDEVICEWRAPPER_H

// Inherited base class:
class QPaintDeviceWrapper : public QPaintDevice
{
public:
    QPaintDeviceWrapper() noexcept;
    QPaintDeviceWrapper(const QPaintDeviceWrapper &) = delete;
    QPaintDeviceWrapper& operator=(const QPaintDeviceWrapper &) = delete;
    QPaintDeviceWrapper(QPaintDeviceWrapper &&) = delete;
    QPaintDeviceWrapper& operator=(QPaintDeviceWrapper &&) = delete;
    ~QPaintDeviceWrapper() override;

    int devType() const override;
    double getDecodedMetricF_protected(::QPaintDevice::PaintDeviceMetric metricA, ::QPaintDevice::PaintDeviceMetric metricB) const { return QPaintDevice::getDecodedMetricF(QPaintDevice::PaintDeviceMetric(metricA), QPaintDevice::PaintDeviceMetric(metricB)); }
    void initPainter_protected(::QPainter * painter) const { QPaintDevice::initPainter(painter); }
    void initPainter(::QPainter * painter) const override;
    int metric_protected(::QPaintDevice::PaintDeviceMetric metric) const { return QPaintDevice::metric(QPaintDevice::PaintDeviceMetric(metric)); }
    int metric(::QPaintDevice::PaintDeviceMetric metric) const override;
    ::QPaintEngine * paintEngine() const override;
    ::QPaintDevice * redirected_protected(::QPoint * offset) const { return QPaintDevice::redirected(offset); }
    ::QPaintDevice * redirected(::QPoint * offset) const override;
    ::QPainter * sharedPainter_protected() const { return QPaintDevice::sharedPainter(); }
    ::QPainter * sharedPainter() const override;
    static void pysideInitQtMetaTypes();

    void resetPyMethodCache();

    // Make protected fields accessible
    using QPaintDevice::painters;

private:
    mutable std::array<PyObject *, 6> m_PyMethodCache = {nullptr, nullptr, nullptr, nullptr, nullptr, nullptr};
};

#  endif // SBK_QPAINTDEVICEWRAPPER_H

#endif // SBK_BOOKMARKSFOLDERSBUTTONWRAPPER_H
