// This file was generated by qtwaylandscanner
// source file is /build/qt5-wayland/src/qtwayland/src/3rdparty/protocol/tablet-unstable-v2.xml

#include <QtWaylandClient/private/qwayland-tablet-unstable-v2.h>

QT_BEGIN_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_GCC("-Wmissing-field-initializers")

namespace QtWayland {

static inline void *wlRegistryBind(struct ::wl_registry *registry, uint32_t name, const struct ::wl_interface *interface, uint32_t version)
{
    const uint32_t bindOpCode = 0;
#if (WAYLAND_VERSION_MAJOR == 1 && WAYLAND_VERSION_MINOR > 10) || WAYLAND_VERSION_MAJOR > 1
    return (void *) wl_proxy_marshal_constructor_versioned((struct wl_proxy *) registry,
        bindOpCode, interface, version, name, interface->name, version, nullptr);
#else
    return (void *) wl_proxy_marshal_constructor((struct wl_proxy *) registry,
        bindOpCode, interface, name, interface->name, version, nullptr);
#endif
}

    zwp_tablet_manager_v2::zwp_tablet_manager_v2(struct ::wl_registry *registry, int id, int version)
    {
        init(registry, id, version);
    }

    zwp_tablet_manager_v2::zwp_tablet_manager_v2(struct ::zwp_tablet_manager_v2 *obj)
        : m_zwp_tablet_manager_v2(obj)
    {
    }

    zwp_tablet_manager_v2::zwp_tablet_manager_v2()
        : m_zwp_tablet_manager_v2(nullptr)
    {
    }

    zwp_tablet_manager_v2::~zwp_tablet_manager_v2()
    {
    }

    void zwp_tablet_manager_v2::init(struct ::wl_registry *registry, int id, int version)
    {
        m_zwp_tablet_manager_v2 = static_cast<struct ::zwp_tablet_manager_v2 *>(wlRegistryBind(registry, id, &zwp_tablet_manager_v2_interface, version));
    }

    void zwp_tablet_manager_v2::init(struct ::zwp_tablet_manager_v2 *obj)
    {
        m_zwp_tablet_manager_v2 = obj;
    }

    zwp_tablet_manager_v2 *zwp_tablet_manager_v2::fromObject(struct ::zwp_tablet_manager_v2 *object)
    {
        return static_cast<zwp_tablet_manager_v2 *>(zwp_tablet_manager_v2_get_user_data(object));
    }

    bool zwp_tablet_manager_v2::isInitialized() const
    {
        return m_zwp_tablet_manager_v2 != nullptr;
    }

    const struct wl_interface *zwp_tablet_manager_v2::interface()
    {
        return &::zwp_tablet_manager_v2_interface;
    }

    struct ::zwp_tablet_seat_v2 *zwp_tablet_manager_v2::get_tablet_seat(struct ::wl_seat *seat)
    {
        return zwp_tablet_manager_v2_get_tablet_seat(
            m_zwp_tablet_manager_v2,
            seat);
    }

    void zwp_tablet_manager_v2::destroy()
    {
        zwp_tablet_manager_v2_destroy(
            m_zwp_tablet_manager_v2);
        m_zwp_tablet_manager_v2 = nullptr;
    }

    zwp_tablet_seat_v2::zwp_tablet_seat_v2(struct ::wl_registry *registry, int id, int version)
    {
        init(registry, id, version);
    }

    zwp_tablet_seat_v2::zwp_tablet_seat_v2(struct ::zwp_tablet_seat_v2 *obj)
        : m_zwp_tablet_seat_v2(obj)
    {
        init_listener();
    }

    zwp_tablet_seat_v2::zwp_tablet_seat_v2()
        : m_zwp_tablet_seat_v2(nullptr)
    {
    }

    zwp_tablet_seat_v2::~zwp_tablet_seat_v2()
    {
    }

    void zwp_tablet_seat_v2::init(struct ::wl_registry *registry, int id, int version)
    {
        m_zwp_tablet_seat_v2 = static_cast<struct ::zwp_tablet_seat_v2 *>(wlRegistryBind(registry, id, &zwp_tablet_seat_v2_interface, version));
        init_listener();
    }

    void zwp_tablet_seat_v2::init(struct ::zwp_tablet_seat_v2 *obj)
    {
        m_zwp_tablet_seat_v2 = obj;
        init_listener();
    }

    zwp_tablet_seat_v2 *zwp_tablet_seat_v2::fromObject(struct ::zwp_tablet_seat_v2 *object)
    {
        if (wl_proxy_get_listener((struct ::wl_proxy *)object) != (void *)&m_zwp_tablet_seat_v2_listener)
            return nullptr;
        return static_cast<zwp_tablet_seat_v2 *>(zwp_tablet_seat_v2_get_user_data(object));
    }

    bool zwp_tablet_seat_v2::isInitialized() const
    {
        return m_zwp_tablet_seat_v2 != nullptr;
    }

    const struct wl_interface *zwp_tablet_seat_v2::interface()
    {
        return &::zwp_tablet_seat_v2_interface;
    }

    void zwp_tablet_seat_v2::destroy()
    {
        zwp_tablet_seat_v2_destroy(
            m_zwp_tablet_seat_v2);
        m_zwp_tablet_seat_v2 = nullptr;
    }

    void zwp_tablet_seat_v2::zwp_tablet_seat_v2_tablet_added(struct ::zwp_tablet_v2 *)
    {
    }

    void zwp_tablet_seat_v2::handle_tablet_added(
        void *data,
        struct ::zwp_tablet_seat_v2 *object,
        struct ::zwp_tablet_v2 *id)
    {
        Q_UNUSED(object);
        static_cast<zwp_tablet_seat_v2 *>(data)->zwp_tablet_seat_v2_tablet_added(
            id);
    }

    void zwp_tablet_seat_v2::zwp_tablet_seat_v2_tool_added(struct ::zwp_tablet_tool_v2 *)
    {
    }

    void zwp_tablet_seat_v2::handle_tool_added(
        void *data,
        struct ::zwp_tablet_seat_v2 *object,
        struct ::zwp_tablet_tool_v2 *id)
    {
        Q_UNUSED(object);
        static_cast<zwp_tablet_seat_v2 *>(data)->zwp_tablet_seat_v2_tool_added(
            id);
    }

    void zwp_tablet_seat_v2::zwp_tablet_seat_v2_pad_added(struct ::zwp_tablet_pad_v2 *)
    {
    }

    void zwp_tablet_seat_v2::handle_pad_added(
        void *data,
        struct ::zwp_tablet_seat_v2 *object,
        struct ::zwp_tablet_pad_v2 *id)
    {
        Q_UNUSED(object);
        static_cast<zwp_tablet_seat_v2 *>(data)->zwp_tablet_seat_v2_pad_added(
            id);
    }

    const struct zwp_tablet_seat_v2_listener zwp_tablet_seat_v2::m_zwp_tablet_seat_v2_listener = {
        zwp_tablet_seat_v2::handle_tablet_added,
        zwp_tablet_seat_v2::handle_tool_added,
        zwp_tablet_seat_v2::handle_pad_added,
    };

    void zwp_tablet_seat_v2::init_listener()
    {
        zwp_tablet_seat_v2_add_listener(m_zwp_tablet_seat_v2, &m_zwp_tablet_seat_v2_listener, this);
    }

    zwp_tablet_tool_v2::zwp_tablet_tool_v2(struct ::wl_registry *registry, int id, int version)
    {
        init(registry, id, version);
    }

    zwp_tablet_tool_v2::zwp_tablet_tool_v2(struct ::zwp_tablet_tool_v2 *obj)
        : m_zwp_tablet_tool_v2(obj)
    {
        init_listener();
    }

    zwp_tablet_tool_v2::zwp_tablet_tool_v2()
        : m_zwp_tablet_tool_v2(nullptr)
    {
    }

    zwp_tablet_tool_v2::~zwp_tablet_tool_v2()
    {
    }

    void zwp_tablet_tool_v2::init(struct ::wl_registry *registry, int id, int version)
    {
        m_zwp_tablet_tool_v2 = static_cast<struct ::zwp_tablet_tool_v2 *>(wlRegistryBind(registry, id, &zwp_tablet_tool_v2_interface, version));
        init_listener();
    }

    void zwp_tablet_tool_v2::init(struct ::zwp_tablet_tool_v2 *obj)
    {
        m_zwp_tablet_tool_v2 = obj;
        init_listener();
    }

    zwp_tablet_tool_v2 *zwp_tablet_tool_v2::fromObject(struct ::zwp_tablet_tool_v2 *object)
    {
        if (wl_proxy_get_listener((struct ::wl_proxy *)object) != (void *)&m_zwp_tablet_tool_v2_listener)
            return nullptr;
        return static_cast<zwp_tablet_tool_v2 *>(zwp_tablet_tool_v2_get_user_data(object));
    }

    bool zwp_tablet_tool_v2::isInitialized() const
    {
        return m_zwp_tablet_tool_v2 != nullptr;
    }

    const struct wl_interface *zwp_tablet_tool_v2::interface()
    {
        return &::zwp_tablet_tool_v2_interface;
    }

    void zwp_tablet_tool_v2::set_cursor(uint32_t serial, struct ::wl_surface *surface, int32_t hotspot_x, int32_t hotspot_y)
    {
        zwp_tablet_tool_v2_set_cursor(
            m_zwp_tablet_tool_v2,
            serial,
            surface,
            hotspot_x,
            hotspot_y);
    }

    void zwp_tablet_tool_v2::destroy()
    {
        zwp_tablet_tool_v2_destroy(
            m_zwp_tablet_tool_v2);
        m_zwp_tablet_tool_v2 = nullptr;
    }

    void zwp_tablet_tool_v2::zwp_tablet_tool_v2_type(uint32_t )
    {
    }

    void zwp_tablet_tool_v2::handle_type(
        void *data,
        struct ::zwp_tablet_tool_v2 *object,
        uint32_t tool_type)
    {
        Q_UNUSED(object);
        static_cast<zwp_tablet_tool_v2 *>(data)->zwp_tablet_tool_v2_type(
            tool_type);
    }

    void zwp_tablet_tool_v2::zwp_tablet_tool_v2_hardware_serial(uint32_t , uint32_t )
    {
    }

    void zwp_tablet_tool_v2::handle_hardware_serial(
        void *data,
        struct ::zwp_tablet_tool_v2 *object,
        uint32_t hardware_serial_hi,
        uint32_t hardware_serial_lo)
    {
        Q_UNUSED(object);
        static_cast<zwp_tablet_tool_v2 *>(data)->zwp_tablet_tool_v2_hardware_serial(
            hardware_serial_hi,
            hardware_serial_lo);
    }

    void zwp_tablet_tool_v2::zwp_tablet_tool_v2_hardware_id_wacom(uint32_t , uint32_t )
    {
    }

    void zwp_tablet_tool_v2::handle_hardware_id_wacom(
        void *data,
        struct ::zwp_tablet_tool_v2 *object,
        uint32_t hardware_id_hi,
        uint32_t hardware_id_lo)
    {
        Q_UNUSED(object);
        static_cast<zwp_tablet_tool_v2 *>(data)->zwp_tablet_tool_v2_hardware_id_wacom(
            hardware_id_hi,
            hardware_id_lo);
    }

    void zwp_tablet_tool_v2::zwp_tablet_tool_v2_capability(uint32_t )
    {
    }

    void zwp_tablet_tool_v2::handle_capability(
        void *data,
        struct ::zwp_tablet_tool_v2 *object,
        uint32_t capability)
    {
        Q_UNUSED(object);
        static_cast<zwp_tablet_tool_v2 *>(data)->zwp_tablet_tool_v2_capability(
            capability);
    }

    void zwp_tablet_tool_v2::zwp_tablet_tool_v2_done()
    {
    }

    void zwp_tablet_tool_v2::handle_done(
        void *data,
        struct ::zwp_tablet_tool_v2 *object)
    {
        Q_UNUSED(object);
        static_cast<zwp_tablet_tool_v2 *>(data)->zwp_tablet_tool_v2_done();
    }

    void zwp_tablet_tool_v2::zwp_tablet_tool_v2_removed()
    {
    }

    void zwp_tablet_tool_v2::handle_removed(
        void *data,
        struct ::zwp_tablet_tool_v2 *object)
    {
        Q_UNUSED(object);
        static_cast<zwp_tablet_tool_v2 *>(data)->zwp_tablet_tool_v2_removed();
    }

    void zwp_tablet_tool_v2::zwp_tablet_tool_v2_proximity_in(uint32_t , struct ::zwp_tablet_v2 *, struct ::wl_surface *)
    {
    }

    void zwp_tablet_tool_v2::handle_proximity_in(
        void *data,
        struct ::zwp_tablet_tool_v2 *object,
        uint32_t serial,
        struct ::zwp_tablet_v2 *tablet,
        struct ::wl_surface *surface)
    {
        Q_UNUSED(object);
        static_cast<zwp_tablet_tool_v2 *>(data)->zwp_tablet_tool_v2_proximity_in(
            serial,
            tablet,
            surface);
    }

    void zwp_tablet_tool_v2::zwp_tablet_tool_v2_proximity_out()
    {
    }

    void zwp_tablet_tool_v2::handle_proximity_out(
        void *data,
        struct ::zwp_tablet_tool_v2 *object)
    {
        Q_UNUSED(object);
        static_cast<zwp_tablet_tool_v2 *>(data)->zwp_tablet_tool_v2_proximity_out();
    }

    void zwp_tablet_tool_v2::zwp_tablet_tool_v2_down(uint32_t )
    {
    }

    void zwp_tablet_tool_v2::handle_down(
        void *data,
        struct ::zwp_tablet_tool_v2 *object,
        uint32_t serial)
    {
        Q_UNUSED(object);
        static_cast<zwp_tablet_tool_v2 *>(data)->zwp_tablet_tool_v2_down(
            serial);
    }

    void zwp_tablet_tool_v2::zwp_tablet_tool_v2_up()
    {
    }

    void zwp_tablet_tool_v2::handle_up(
        void *data,
        struct ::zwp_tablet_tool_v2 *object)
    {
        Q_UNUSED(object);
        static_cast<zwp_tablet_tool_v2 *>(data)->zwp_tablet_tool_v2_up();
    }

    void zwp_tablet_tool_v2::zwp_tablet_tool_v2_motion(wl_fixed_t , wl_fixed_t )
    {
    }

    void zwp_tablet_tool_v2::handle_motion(
        void *data,
        struct ::zwp_tablet_tool_v2 *object,
        wl_fixed_t x,
        wl_fixed_t y)
    {
        Q_UNUSED(object);
        static_cast<zwp_tablet_tool_v2 *>(data)->zwp_tablet_tool_v2_motion(
            x,
            y);
    }

    void zwp_tablet_tool_v2::zwp_tablet_tool_v2_pressure(uint32_t )
    {
    }

    void zwp_tablet_tool_v2::handle_pressure(
        void *data,
        struct ::zwp_tablet_tool_v2 *object,
        uint32_t pressure)
    {
        Q_UNUSED(object);
        static_cast<zwp_tablet_tool_v2 *>(data)->zwp_tablet_tool_v2_pressure(
            pressure);
    }

    void zwp_tablet_tool_v2::zwp_tablet_tool_v2_distance(uint32_t )
    {
    }

    void zwp_tablet_tool_v2::handle_distance(
        void *data,
        struct ::zwp_tablet_tool_v2 *object,
        uint32_t distance)
    {
        Q_UNUSED(object);
        static_cast<zwp_tablet_tool_v2 *>(data)->zwp_tablet_tool_v2_distance(
            distance);
    }

    void zwp_tablet_tool_v2::zwp_tablet_tool_v2_tilt(wl_fixed_t , wl_fixed_t )
    {
    }

    void zwp_tablet_tool_v2::handle_tilt(
        void *data,
        struct ::zwp_tablet_tool_v2 *object,
        wl_fixed_t tilt_x,
        wl_fixed_t tilt_y)
    {
        Q_UNUSED(object);
        static_cast<zwp_tablet_tool_v2 *>(data)->zwp_tablet_tool_v2_tilt(
            tilt_x,
            tilt_y);
    }

    void zwp_tablet_tool_v2::zwp_tablet_tool_v2_rotation(wl_fixed_t )
    {
    }

    void zwp_tablet_tool_v2::handle_rotation(
        void *data,
        struct ::zwp_tablet_tool_v2 *object,
        wl_fixed_t degrees)
    {
        Q_UNUSED(object);
        static_cast<zwp_tablet_tool_v2 *>(data)->zwp_tablet_tool_v2_rotation(
            degrees);
    }

    void zwp_tablet_tool_v2::zwp_tablet_tool_v2_slider(int32_t )
    {
    }

    void zwp_tablet_tool_v2::handle_slider(
        void *data,
        struct ::zwp_tablet_tool_v2 *object,
        int32_t position)
    {
        Q_UNUSED(object);
        static_cast<zwp_tablet_tool_v2 *>(data)->zwp_tablet_tool_v2_slider(
            position);
    }

    void zwp_tablet_tool_v2::zwp_tablet_tool_v2_wheel(wl_fixed_t , int32_t )
    {
    }

    void zwp_tablet_tool_v2::handle_wheel(
        void *data,
        struct ::zwp_tablet_tool_v2 *object,
        wl_fixed_t degrees,
        int32_t clicks)
    {
        Q_UNUSED(object);
        static_cast<zwp_tablet_tool_v2 *>(data)->zwp_tablet_tool_v2_wheel(
            degrees,
            clicks);
    }

    void zwp_tablet_tool_v2::zwp_tablet_tool_v2_button(uint32_t , uint32_t , uint32_t )
    {
    }

    void zwp_tablet_tool_v2::handle_button(
        void *data,
        struct ::zwp_tablet_tool_v2 *object,
        uint32_t serial,
        uint32_t button,
        uint32_t state)
    {
        Q_UNUSED(object);
        static_cast<zwp_tablet_tool_v2 *>(data)->zwp_tablet_tool_v2_button(
            serial,
            button,
            state);
    }

    void zwp_tablet_tool_v2::zwp_tablet_tool_v2_frame(uint32_t )
    {
    }

    void zwp_tablet_tool_v2::handle_frame(
        void *data,
        struct ::zwp_tablet_tool_v2 *object,
        uint32_t time)
    {
        Q_UNUSED(object);
        static_cast<zwp_tablet_tool_v2 *>(data)->zwp_tablet_tool_v2_frame(
            time);
    }

    const struct zwp_tablet_tool_v2_listener zwp_tablet_tool_v2::m_zwp_tablet_tool_v2_listener = {
        zwp_tablet_tool_v2::handle_type,
        zwp_tablet_tool_v2::handle_hardware_serial,
        zwp_tablet_tool_v2::handle_hardware_id_wacom,
        zwp_tablet_tool_v2::handle_capability,
        zwp_tablet_tool_v2::handle_done,
        zwp_tablet_tool_v2::handle_removed,
        zwp_tablet_tool_v2::handle_proximity_in,
        zwp_tablet_tool_v2::handle_proximity_out,
        zwp_tablet_tool_v2::handle_down,
        zwp_tablet_tool_v2::handle_up,
        zwp_tablet_tool_v2::handle_motion,
        zwp_tablet_tool_v2::handle_pressure,
        zwp_tablet_tool_v2::handle_distance,
        zwp_tablet_tool_v2::handle_tilt,
        zwp_tablet_tool_v2::handle_rotation,
        zwp_tablet_tool_v2::handle_slider,
        zwp_tablet_tool_v2::handle_wheel,
        zwp_tablet_tool_v2::handle_button,
        zwp_tablet_tool_v2::handle_frame,
    };

    void zwp_tablet_tool_v2::init_listener()
    {
        zwp_tablet_tool_v2_add_listener(m_zwp_tablet_tool_v2, &m_zwp_tablet_tool_v2_listener, this);
    }

    zwp_tablet_v2::zwp_tablet_v2(struct ::wl_registry *registry, int id, int version)
    {
        init(registry, id, version);
    }

    zwp_tablet_v2::zwp_tablet_v2(struct ::zwp_tablet_v2 *obj)
        : m_zwp_tablet_v2(obj)
    {
        init_listener();
    }

    zwp_tablet_v2::zwp_tablet_v2()
        : m_zwp_tablet_v2(nullptr)
    {
    }

    zwp_tablet_v2::~zwp_tablet_v2()
    {
    }

    void zwp_tablet_v2::init(struct ::wl_registry *registry, int id, int version)
    {
        m_zwp_tablet_v2 = static_cast<struct ::zwp_tablet_v2 *>(wlRegistryBind(registry, id, &zwp_tablet_v2_interface, version));
        init_listener();
    }

    void zwp_tablet_v2::init(struct ::zwp_tablet_v2 *obj)
    {
        m_zwp_tablet_v2 = obj;
        init_listener();
    }

    zwp_tablet_v2 *zwp_tablet_v2::fromObject(struct ::zwp_tablet_v2 *object)
    {
        if (wl_proxy_get_listener((struct ::wl_proxy *)object) != (void *)&m_zwp_tablet_v2_listener)
            return nullptr;
        return static_cast<zwp_tablet_v2 *>(zwp_tablet_v2_get_user_data(object));
    }

    bool zwp_tablet_v2::isInitialized() const
    {
        return m_zwp_tablet_v2 != nullptr;
    }

    const struct wl_interface *zwp_tablet_v2::interface()
    {
        return &::zwp_tablet_v2_interface;
    }

    void zwp_tablet_v2::destroy()
    {
        zwp_tablet_v2_destroy(
            m_zwp_tablet_v2);
        m_zwp_tablet_v2 = nullptr;
    }

    void zwp_tablet_v2::zwp_tablet_v2_name(const QString &)
    {
    }

    void zwp_tablet_v2::handle_name(
        void *data,
        struct ::zwp_tablet_v2 *object,
        const char *name)
    {
        Q_UNUSED(object);
        static_cast<zwp_tablet_v2 *>(data)->zwp_tablet_v2_name(
            QString::fromUtf8(name));
    }

    void zwp_tablet_v2::zwp_tablet_v2_id(uint32_t , uint32_t )
    {
    }

    void zwp_tablet_v2::handle_id(
        void *data,
        struct ::zwp_tablet_v2 *object,
        uint32_t vid,
        uint32_t pid)
    {
        Q_UNUSED(object);
        static_cast<zwp_tablet_v2 *>(data)->zwp_tablet_v2_id(
            vid,
            pid);
    }

    void zwp_tablet_v2::zwp_tablet_v2_path(const QString &)
    {
    }

    void zwp_tablet_v2::handle_path(
        void *data,
        struct ::zwp_tablet_v2 *object,
        const char *path)
    {
        Q_UNUSED(object);
        static_cast<zwp_tablet_v2 *>(data)->zwp_tablet_v2_path(
            QString::fromUtf8(path));
    }

    void zwp_tablet_v2::zwp_tablet_v2_done()
    {
    }

    void zwp_tablet_v2::handle_done(
        void *data,
        struct ::zwp_tablet_v2 *object)
    {
        Q_UNUSED(object);
        static_cast<zwp_tablet_v2 *>(data)->zwp_tablet_v2_done();
    }

    void zwp_tablet_v2::zwp_tablet_v2_removed()
    {
    }

    void zwp_tablet_v2::handle_removed(
        void *data,
        struct ::zwp_tablet_v2 *object)
    {
        Q_UNUSED(object);
        static_cast<zwp_tablet_v2 *>(data)->zwp_tablet_v2_removed();
    }

    const struct zwp_tablet_v2_listener zwp_tablet_v2::m_zwp_tablet_v2_listener = {
        zwp_tablet_v2::handle_name,
        zwp_tablet_v2::handle_id,
        zwp_tablet_v2::handle_path,
        zwp_tablet_v2::handle_done,
        zwp_tablet_v2::handle_removed,
    };

    void zwp_tablet_v2::init_listener()
    {
        zwp_tablet_v2_add_listener(m_zwp_tablet_v2, &m_zwp_tablet_v2_listener, this);
    }

    zwp_tablet_pad_ring_v2::zwp_tablet_pad_ring_v2(struct ::wl_registry *registry, int id, int version)
    {
        init(registry, id, version);
    }

    zwp_tablet_pad_ring_v2::zwp_tablet_pad_ring_v2(struct ::zwp_tablet_pad_ring_v2 *obj)
        : m_zwp_tablet_pad_ring_v2(obj)
    {
        init_listener();
    }

    zwp_tablet_pad_ring_v2::zwp_tablet_pad_ring_v2()
        : m_zwp_tablet_pad_ring_v2(nullptr)
    {
    }

    zwp_tablet_pad_ring_v2::~zwp_tablet_pad_ring_v2()
    {
    }

    void zwp_tablet_pad_ring_v2::init(struct ::wl_registry *registry, int id, int version)
    {
        m_zwp_tablet_pad_ring_v2 = static_cast<struct ::zwp_tablet_pad_ring_v2 *>(wlRegistryBind(registry, id, &zwp_tablet_pad_ring_v2_interface, version));
        init_listener();
    }

    void zwp_tablet_pad_ring_v2::init(struct ::zwp_tablet_pad_ring_v2 *obj)
    {
        m_zwp_tablet_pad_ring_v2 = obj;
        init_listener();
    }

    zwp_tablet_pad_ring_v2 *zwp_tablet_pad_ring_v2::fromObject(struct ::zwp_tablet_pad_ring_v2 *object)
    {
        if (wl_proxy_get_listener((struct ::wl_proxy *)object) != (void *)&m_zwp_tablet_pad_ring_v2_listener)
            return nullptr;
        return static_cast<zwp_tablet_pad_ring_v2 *>(zwp_tablet_pad_ring_v2_get_user_data(object));
    }

    bool zwp_tablet_pad_ring_v2::isInitialized() const
    {
        return m_zwp_tablet_pad_ring_v2 != nullptr;
    }

    const struct wl_interface *zwp_tablet_pad_ring_v2::interface()
    {
        return &::zwp_tablet_pad_ring_v2_interface;
    }

    void zwp_tablet_pad_ring_v2::set_feedback(const QString &description, uint32_t serial)
    {
        zwp_tablet_pad_ring_v2_set_feedback(
            m_zwp_tablet_pad_ring_v2,
            description.toUtf8().constData(),
            serial);
    }

    void zwp_tablet_pad_ring_v2::destroy()
    {
        zwp_tablet_pad_ring_v2_destroy(
            m_zwp_tablet_pad_ring_v2);
        m_zwp_tablet_pad_ring_v2 = nullptr;
    }

    void zwp_tablet_pad_ring_v2::zwp_tablet_pad_ring_v2_source(uint32_t )
    {
    }

    void zwp_tablet_pad_ring_v2::handle_source(
        void *data,
        struct ::zwp_tablet_pad_ring_v2 *object,
        uint32_t source)
    {
        Q_UNUSED(object);
        static_cast<zwp_tablet_pad_ring_v2 *>(data)->zwp_tablet_pad_ring_v2_source(
            source);
    }

    void zwp_tablet_pad_ring_v2::zwp_tablet_pad_ring_v2_angle(wl_fixed_t )
    {
    }

    void zwp_tablet_pad_ring_v2::handle_angle(
        void *data,
        struct ::zwp_tablet_pad_ring_v2 *object,
        wl_fixed_t degrees)
    {
        Q_UNUSED(object);
        static_cast<zwp_tablet_pad_ring_v2 *>(data)->zwp_tablet_pad_ring_v2_angle(
            degrees);
    }

    void zwp_tablet_pad_ring_v2::zwp_tablet_pad_ring_v2_stop()
    {
    }

    void zwp_tablet_pad_ring_v2::handle_stop(
        void *data,
        struct ::zwp_tablet_pad_ring_v2 *object)
    {
        Q_UNUSED(object);
        static_cast<zwp_tablet_pad_ring_v2 *>(data)->zwp_tablet_pad_ring_v2_stop();
    }

    void zwp_tablet_pad_ring_v2::zwp_tablet_pad_ring_v2_frame(uint32_t )
    {
    }

    void zwp_tablet_pad_ring_v2::handle_frame(
        void *data,
        struct ::zwp_tablet_pad_ring_v2 *object,
        uint32_t time)
    {
        Q_UNUSED(object);
        static_cast<zwp_tablet_pad_ring_v2 *>(data)->zwp_tablet_pad_ring_v2_frame(
            time);
    }

    const struct zwp_tablet_pad_ring_v2_listener zwp_tablet_pad_ring_v2::m_zwp_tablet_pad_ring_v2_listener = {
        zwp_tablet_pad_ring_v2::handle_source,
        zwp_tablet_pad_ring_v2::handle_angle,
        zwp_tablet_pad_ring_v2::handle_stop,
        zwp_tablet_pad_ring_v2::handle_frame,
    };

    void zwp_tablet_pad_ring_v2::init_listener()
    {
        zwp_tablet_pad_ring_v2_add_listener(m_zwp_tablet_pad_ring_v2, &m_zwp_tablet_pad_ring_v2_listener, this);
    }

    zwp_tablet_pad_strip_v2::zwp_tablet_pad_strip_v2(struct ::wl_registry *registry, int id, int version)
    {
        init(registry, id, version);
    }

    zwp_tablet_pad_strip_v2::zwp_tablet_pad_strip_v2(struct ::zwp_tablet_pad_strip_v2 *obj)
        : m_zwp_tablet_pad_strip_v2(obj)
    {
        init_listener();
    }

    zwp_tablet_pad_strip_v2::zwp_tablet_pad_strip_v2()
        : m_zwp_tablet_pad_strip_v2(nullptr)
    {
    }

    zwp_tablet_pad_strip_v2::~zwp_tablet_pad_strip_v2()
    {
    }

    void zwp_tablet_pad_strip_v2::init(struct ::wl_registry *registry, int id, int version)
    {
        m_zwp_tablet_pad_strip_v2 = static_cast<struct ::zwp_tablet_pad_strip_v2 *>(wlRegistryBind(registry, id, &zwp_tablet_pad_strip_v2_interface, version));
        init_listener();
    }

    void zwp_tablet_pad_strip_v2::init(struct ::zwp_tablet_pad_strip_v2 *obj)
    {
        m_zwp_tablet_pad_strip_v2 = obj;
        init_listener();
    }

    zwp_tablet_pad_strip_v2 *zwp_tablet_pad_strip_v2::fromObject(struct ::zwp_tablet_pad_strip_v2 *object)
    {
        if (wl_proxy_get_listener((struct ::wl_proxy *)object) != (void *)&m_zwp_tablet_pad_strip_v2_listener)
            return nullptr;
        return static_cast<zwp_tablet_pad_strip_v2 *>(zwp_tablet_pad_strip_v2_get_user_data(object));
    }

    bool zwp_tablet_pad_strip_v2::isInitialized() const
    {
        return m_zwp_tablet_pad_strip_v2 != nullptr;
    }

    const struct wl_interface *zwp_tablet_pad_strip_v2::interface()
    {
        return &::zwp_tablet_pad_strip_v2_interface;
    }

    void zwp_tablet_pad_strip_v2::set_feedback(const QString &description, uint32_t serial)
    {
        zwp_tablet_pad_strip_v2_set_feedback(
            m_zwp_tablet_pad_strip_v2,
            description.toUtf8().constData(),
            serial);
    }

    void zwp_tablet_pad_strip_v2::destroy()
    {
        zwp_tablet_pad_strip_v2_destroy(
            m_zwp_tablet_pad_strip_v2);
        m_zwp_tablet_pad_strip_v2 = nullptr;
    }

    void zwp_tablet_pad_strip_v2::zwp_tablet_pad_strip_v2_source(uint32_t )
    {
    }

    void zwp_tablet_pad_strip_v2::handle_source(
        void *data,
        struct ::zwp_tablet_pad_strip_v2 *object,
        uint32_t source)
    {
        Q_UNUSED(object);
        static_cast<zwp_tablet_pad_strip_v2 *>(data)->zwp_tablet_pad_strip_v2_source(
            source);
    }

    void zwp_tablet_pad_strip_v2::zwp_tablet_pad_strip_v2_position(uint32_t )
    {
    }

    void zwp_tablet_pad_strip_v2::handle_position(
        void *data,
        struct ::zwp_tablet_pad_strip_v2 *object,
        uint32_t position)
    {
        Q_UNUSED(object);
        static_cast<zwp_tablet_pad_strip_v2 *>(data)->zwp_tablet_pad_strip_v2_position(
            position);
    }

    void zwp_tablet_pad_strip_v2::zwp_tablet_pad_strip_v2_stop()
    {
    }

    void zwp_tablet_pad_strip_v2::handle_stop(
        void *data,
        struct ::zwp_tablet_pad_strip_v2 *object)
    {
        Q_UNUSED(object);
        static_cast<zwp_tablet_pad_strip_v2 *>(data)->zwp_tablet_pad_strip_v2_stop();
    }

    void zwp_tablet_pad_strip_v2::zwp_tablet_pad_strip_v2_frame(uint32_t )
    {
    }

    void zwp_tablet_pad_strip_v2::handle_frame(
        void *data,
        struct ::zwp_tablet_pad_strip_v2 *object,
        uint32_t time)
    {
        Q_UNUSED(object);
        static_cast<zwp_tablet_pad_strip_v2 *>(data)->zwp_tablet_pad_strip_v2_frame(
            time);
    }

    const struct zwp_tablet_pad_strip_v2_listener zwp_tablet_pad_strip_v2::m_zwp_tablet_pad_strip_v2_listener = {
        zwp_tablet_pad_strip_v2::handle_source,
        zwp_tablet_pad_strip_v2::handle_position,
        zwp_tablet_pad_strip_v2::handle_stop,
        zwp_tablet_pad_strip_v2::handle_frame,
    };

    void zwp_tablet_pad_strip_v2::init_listener()
    {
        zwp_tablet_pad_strip_v2_add_listener(m_zwp_tablet_pad_strip_v2, &m_zwp_tablet_pad_strip_v2_listener, this);
    }

    zwp_tablet_pad_group_v2::zwp_tablet_pad_group_v2(struct ::wl_registry *registry, int id, int version)
    {
        init(registry, id, version);
    }

    zwp_tablet_pad_group_v2::zwp_tablet_pad_group_v2(struct ::zwp_tablet_pad_group_v2 *obj)
        : m_zwp_tablet_pad_group_v2(obj)
    {
        init_listener();
    }

    zwp_tablet_pad_group_v2::zwp_tablet_pad_group_v2()
        : m_zwp_tablet_pad_group_v2(nullptr)
    {
    }

    zwp_tablet_pad_group_v2::~zwp_tablet_pad_group_v2()
    {
    }

    void zwp_tablet_pad_group_v2::init(struct ::wl_registry *registry, int id, int version)
    {
        m_zwp_tablet_pad_group_v2 = static_cast<struct ::zwp_tablet_pad_group_v2 *>(wlRegistryBind(registry, id, &zwp_tablet_pad_group_v2_interface, version));
        init_listener();
    }

    void zwp_tablet_pad_group_v2::init(struct ::zwp_tablet_pad_group_v2 *obj)
    {
        m_zwp_tablet_pad_group_v2 = obj;
        init_listener();
    }

    zwp_tablet_pad_group_v2 *zwp_tablet_pad_group_v2::fromObject(struct ::zwp_tablet_pad_group_v2 *object)
    {
        if (wl_proxy_get_listener((struct ::wl_proxy *)object) != (void *)&m_zwp_tablet_pad_group_v2_listener)
            return nullptr;
        return static_cast<zwp_tablet_pad_group_v2 *>(zwp_tablet_pad_group_v2_get_user_data(object));
    }

    bool zwp_tablet_pad_group_v2::isInitialized() const
    {
        return m_zwp_tablet_pad_group_v2 != nullptr;
    }

    const struct wl_interface *zwp_tablet_pad_group_v2::interface()
    {
        return &::zwp_tablet_pad_group_v2_interface;
    }

    void zwp_tablet_pad_group_v2::destroy()
    {
        zwp_tablet_pad_group_v2_destroy(
            m_zwp_tablet_pad_group_v2);
        m_zwp_tablet_pad_group_v2 = nullptr;
    }

    void zwp_tablet_pad_group_v2::zwp_tablet_pad_group_v2_buttons(wl_array *)
    {
    }

    void zwp_tablet_pad_group_v2::handle_buttons(
        void *data,
        struct ::zwp_tablet_pad_group_v2 *object,
        wl_array *buttons)
    {
        Q_UNUSED(object);
        static_cast<zwp_tablet_pad_group_v2 *>(data)->zwp_tablet_pad_group_v2_buttons(
            buttons);
    }

    void zwp_tablet_pad_group_v2::zwp_tablet_pad_group_v2_ring(struct ::zwp_tablet_pad_ring_v2 *)
    {
    }

    void zwp_tablet_pad_group_v2::handle_ring(
        void *data,
        struct ::zwp_tablet_pad_group_v2 *object,
        struct ::zwp_tablet_pad_ring_v2 *ring)
    {
        Q_UNUSED(object);
        static_cast<zwp_tablet_pad_group_v2 *>(data)->zwp_tablet_pad_group_v2_ring(
            ring);
    }

    void zwp_tablet_pad_group_v2::zwp_tablet_pad_group_v2_strip(struct ::zwp_tablet_pad_strip_v2 *)
    {
    }

    void zwp_tablet_pad_group_v2::handle_strip(
        void *data,
        struct ::zwp_tablet_pad_group_v2 *object,
        struct ::zwp_tablet_pad_strip_v2 *strip)
    {
        Q_UNUSED(object);
        static_cast<zwp_tablet_pad_group_v2 *>(data)->zwp_tablet_pad_group_v2_strip(
            strip);
    }

    void zwp_tablet_pad_group_v2::zwp_tablet_pad_group_v2_modes(uint32_t )
    {
    }

    void zwp_tablet_pad_group_v2::handle_modes(
        void *data,
        struct ::zwp_tablet_pad_group_v2 *object,
        uint32_t modes)
    {
        Q_UNUSED(object);
        static_cast<zwp_tablet_pad_group_v2 *>(data)->zwp_tablet_pad_group_v2_modes(
            modes);
    }

    void zwp_tablet_pad_group_v2::zwp_tablet_pad_group_v2_done()
    {
    }

    void zwp_tablet_pad_group_v2::handle_done(
        void *data,
        struct ::zwp_tablet_pad_group_v2 *object)
    {
        Q_UNUSED(object);
        static_cast<zwp_tablet_pad_group_v2 *>(data)->zwp_tablet_pad_group_v2_done();
    }

    void zwp_tablet_pad_group_v2::zwp_tablet_pad_group_v2_mode_switch(uint32_t , uint32_t , uint32_t )
    {
    }

    void zwp_tablet_pad_group_v2::handle_mode_switch(
        void *data,
        struct ::zwp_tablet_pad_group_v2 *object,
        uint32_t time,
        uint32_t serial,
        uint32_t mode)
    {
        Q_UNUSED(object);
        static_cast<zwp_tablet_pad_group_v2 *>(data)->zwp_tablet_pad_group_v2_mode_switch(
            time,
            serial,
            mode);
    }

    const struct zwp_tablet_pad_group_v2_listener zwp_tablet_pad_group_v2::m_zwp_tablet_pad_group_v2_listener = {
        zwp_tablet_pad_group_v2::handle_buttons,
        zwp_tablet_pad_group_v2::handle_ring,
        zwp_tablet_pad_group_v2::handle_strip,
        zwp_tablet_pad_group_v2::handle_modes,
        zwp_tablet_pad_group_v2::handle_done,
        zwp_tablet_pad_group_v2::handle_mode_switch,
    };

    void zwp_tablet_pad_group_v2::init_listener()
    {
        zwp_tablet_pad_group_v2_add_listener(m_zwp_tablet_pad_group_v2, &m_zwp_tablet_pad_group_v2_listener, this);
    }

    zwp_tablet_pad_v2::zwp_tablet_pad_v2(struct ::wl_registry *registry, int id, int version)
    {
        init(registry, id, version);
    }

    zwp_tablet_pad_v2::zwp_tablet_pad_v2(struct ::zwp_tablet_pad_v2 *obj)
        : m_zwp_tablet_pad_v2(obj)
    {
        init_listener();
    }

    zwp_tablet_pad_v2::zwp_tablet_pad_v2()
        : m_zwp_tablet_pad_v2(nullptr)
    {
    }

    zwp_tablet_pad_v2::~zwp_tablet_pad_v2()
    {
    }

    void zwp_tablet_pad_v2::init(struct ::wl_registry *registry, int id, int version)
    {
        m_zwp_tablet_pad_v2 = static_cast<struct ::zwp_tablet_pad_v2 *>(wlRegistryBind(registry, id, &zwp_tablet_pad_v2_interface, version));
        init_listener();
    }

    void zwp_tablet_pad_v2::init(struct ::zwp_tablet_pad_v2 *obj)
    {
        m_zwp_tablet_pad_v2 = obj;
        init_listener();
    }

    zwp_tablet_pad_v2 *zwp_tablet_pad_v2::fromObject(struct ::zwp_tablet_pad_v2 *object)
    {
        if (wl_proxy_get_listener((struct ::wl_proxy *)object) != (void *)&m_zwp_tablet_pad_v2_listener)
            return nullptr;
        return static_cast<zwp_tablet_pad_v2 *>(zwp_tablet_pad_v2_get_user_data(object));
    }

    bool zwp_tablet_pad_v2::isInitialized() const
    {
        return m_zwp_tablet_pad_v2 != nullptr;
    }

    const struct wl_interface *zwp_tablet_pad_v2::interface()
    {
        return &::zwp_tablet_pad_v2_interface;
    }

    void zwp_tablet_pad_v2::set_feedback(uint32_t button, const QString &description, uint32_t serial)
    {
        zwp_tablet_pad_v2_set_feedback(
            m_zwp_tablet_pad_v2,
            button,
            description.toUtf8().constData(),
            serial);
    }

    void zwp_tablet_pad_v2::destroy()
    {
        zwp_tablet_pad_v2_destroy(
            m_zwp_tablet_pad_v2);
        m_zwp_tablet_pad_v2 = nullptr;
    }

    void zwp_tablet_pad_v2::zwp_tablet_pad_v2_group(struct ::zwp_tablet_pad_group_v2 *)
    {
    }

    void zwp_tablet_pad_v2::handle_group(
        void *data,
        struct ::zwp_tablet_pad_v2 *object,
        struct ::zwp_tablet_pad_group_v2 *pad_group)
    {
        Q_UNUSED(object);
        static_cast<zwp_tablet_pad_v2 *>(data)->zwp_tablet_pad_v2_group(
            pad_group);
    }

    void zwp_tablet_pad_v2::zwp_tablet_pad_v2_path(const QString &)
    {
    }

    void zwp_tablet_pad_v2::handle_path(
        void *data,
        struct ::zwp_tablet_pad_v2 *object,
        const char *path)
    {
        Q_UNUSED(object);
        static_cast<zwp_tablet_pad_v2 *>(data)->zwp_tablet_pad_v2_path(
            QString::fromUtf8(path));
    }

    void zwp_tablet_pad_v2::zwp_tablet_pad_v2_buttons(uint32_t )
    {
    }

    void zwp_tablet_pad_v2::handle_buttons(
        void *data,
        struct ::zwp_tablet_pad_v2 *object,
        uint32_t buttons)
    {
        Q_UNUSED(object);
        static_cast<zwp_tablet_pad_v2 *>(data)->zwp_tablet_pad_v2_buttons(
            buttons);
    }

    void zwp_tablet_pad_v2::zwp_tablet_pad_v2_done()
    {
    }

    void zwp_tablet_pad_v2::handle_done(
        void *data,
        struct ::zwp_tablet_pad_v2 *object)
    {
        Q_UNUSED(object);
        static_cast<zwp_tablet_pad_v2 *>(data)->zwp_tablet_pad_v2_done();
    }

    void zwp_tablet_pad_v2::zwp_tablet_pad_v2_button(uint32_t , uint32_t , uint32_t )
    {
    }

    void zwp_tablet_pad_v2::handle_button(
        void *data,
        struct ::zwp_tablet_pad_v2 *object,
        uint32_t time,
        uint32_t button,
        uint32_t state)
    {
        Q_UNUSED(object);
        static_cast<zwp_tablet_pad_v2 *>(data)->zwp_tablet_pad_v2_button(
            time,
            button,
            state);
    }

    void zwp_tablet_pad_v2::zwp_tablet_pad_v2_enter(uint32_t , struct ::zwp_tablet_v2 *, struct ::wl_surface *)
    {
    }

    void zwp_tablet_pad_v2::handle_enter(
        void *data,
        struct ::zwp_tablet_pad_v2 *object,
        uint32_t serial,
        struct ::zwp_tablet_v2 *tablet,
        struct ::wl_surface *surface)
    {
        Q_UNUSED(object);
        static_cast<zwp_tablet_pad_v2 *>(data)->zwp_tablet_pad_v2_enter(
            serial,
            tablet,
            surface);
    }

    void zwp_tablet_pad_v2::zwp_tablet_pad_v2_leave(uint32_t , struct ::wl_surface *)
    {
    }

    void zwp_tablet_pad_v2::handle_leave(
        void *data,
        struct ::zwp_tablet_pad_v2 *object,
        uint32_t serial,
        struct ::wl_surface *surface)
    {
        Q_UNUSED(object);
        static_cast<zwp_tablet_pad_v2 *>(data)->zwp_tablet_pad_v2_leave(
            serial,
            surface);
    }

    void zwp_tablet_pad_v2::zwp_tablet_pad_v2_removed()
    {
    }

    void zwp_tablet_pad_v2::handle_removed(
        void *data,
        struct ::zwp_tablet_pad_v2 *object)
    {
        Q_UNUSED(object);
        static_cast<zwp_tablet_pad_v2 *>(data)->zwp_tablet_pad_v2_removed();
    }

    const struct zwp_tablet_pad_v2_listener zwp_tablet_pad_v2::m_zwp_tablet_pad_v2_listener = {
        zwp_tablet_pad_v2::handle_group,
        zwp_tablet_pad_v2::handle_path,
        zwp_tablet_pad_v2::handle_buttons,
        zwp_tablet_pad_v2::handle_done,
        zwp_tablet_pad_v2::handle_button,
        zwp_tablet_pad_v2::handle_enter,
        zwp_tablet_pad_v2::handle_leave,
        zwp_tablet_pad_v2::handle_removed,
    };

    void zwp_tablet_pad_v2::init_listener()
    {
        zwp_tablet_pad_v2_add_listener(m_zwp_tablet_pad_v2, &m_zwp_tablet_pad_v2_listener, this);
    }
}

QT_WARNING_POP
QT_END_NAMESPACE
