// This file was generated by qtwaylandscanner
// source file is plasma-window-management.xml

#ifndef QT_WAYLAND_PLASMA_WINDOW_MANAGEMENT
#define QT_WAYLAND_PLASMA_WINDOW_MANAGEMENT

#include "wayland-plasma-window-management-client-protocol.h"
#include <QByteArray>
#include <QString>

struct wl_registry;

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

namespace QtWayland {
    class  org_kde_plasma_window_management
    {
    public:
        org_kde_plasma_window_management(struct ::wl_registry *registry, uint32_t id, int version);
        org_kde_plasma_window_management(struct ::org_kde_plasma_window_management *object);
        org_kde_plasma_window_management();

        virtual ~org_kde_plasma_window_management();

        void init(struct ::wl_registry *registry, uint32_t id, int version);
        void init(struct ::org_kde_plasma_window_management *object);

        struct ::org_kde_plasma_window_management *object() { return m_org_kde_plasma_window_management; }
        const struct ::org_kde_plasma_window_management *object() const { return m_org_kde_plasma_window_management; }
        static org_kde_plasma_window_management *fromObject(struct ::org_kde_plasma_window_management *object);

        bool isInitialized() const;

        uint32_t version() const;
        static const struct ::wl_interface *interface();

        enum state {
            state_active = 0x1,
            state_minimized = 0x2,
            state_maximized = 0x4,
            state_fullscreen = 0x8,
            state_keep_above = 0x10,
            state_keep_below = 0x20,
            state_on_all_desktops = 0x40,
            state_demands_attention = 0x80,
            state_closeable = 0x100,
            state_minimizable = 0x200,
            state_maximizable = 0x400,
            state_fullscreenable = 0x800,
            state_skiptaskbar = 0x1000,
            state_shadeable = 0x2000,
            state_shaded = 0x4000,
            state_movable = 0x8000,
            state_resizable = 0x10000,
            state_virtual_desktop_changeable = 0x20000,
            state_skipswitcher = 0x40000,
            state_no_border = 0x80000,
            state_can_set_no_border = 0x100000,
            state_exclude_from_capture = 0x200000,
        };

        enum show_desktop {
            show_desktop_disabled = 0,
            show_desktop_enabled = 1,
        };

        void show_desktop(uint32_t state);
        struct ::org_kde_plasma_window *get_window(uint32_t internal_window_id);
        struct ::org_kde_plasma_window *get_window_by_uuid(const QString &internal_window_uuid);
        struct ::org_kde_plasma_stacking_order *get_stacking_order();

    protected:
        virtual void org_kde_plasma_window_management_show_desktop_changed(uint32_t state);
        virtual void org_kde_plasma_window_management_window(uint32_t id);
        virtual void org_kde_plasma_window_management_stacking_order_changed(wl_array *ids);
        virtual void org_kde_plasma_window_management_stacking_order_uuid_changed(const QString &uuids);
        virtual void org_kde_plasma_window_management_window_with_uuid(uint32_t id, const QString &uuid);
        virtual void org_kde_plasma_window_management_stacking_order_changed_2();

    private:
        void init_listener();
        static const struct org_kde_plasma_window_management_listener m_org_kde_plasma_window_management_listener;
        static void handle_show_desktop_changed(
            void *data,
            struct ::org_kde_plasma_window_management *object,
            uint32_t state);
        static void handle_window(
            void *data,
            struct ::org_kde_plasma_window_management *object,
            uint32_t id);
        static void handle_stacking_order_changed(
            void *data,
            struct ::org_kde_plasma_window_management *object,
            wl_array *ids);
        static void handle_stacking_order_uuid_changed(
            void *data,
            struct ::org_kde_plasma_window_management *object,
            const char *uuids);
        static void handle_window_with_uuid(
            void *data,
            struct ::org_kde_plasma_window_management *object,
            uint32_t id,
            const char *uuid);
        static void handle_stacking_order_changed_2(
            void *data,
            struct ::org_kde_plasma_window_management *object);
        struct ::org_kde_plasma_window_management *m_org_kde_plasma_window_management;
    };

    class  org_kde_plasma_window
    {
    public:
        org_kde_plasma_window(struct ::wl_registry *registry, uint32_t id, int version);
        org_kde_plasma_window(struct ::org_kde_plasma_window *object);
        org_kde_plasma_window();

        virtual ~org_kde_plasma_window();

        void init(struct ::wl_registry *registry, uint32_t id, int version);
        void init(struct ::org_kde_plasma_window *object);

        struct ::org_kde_plasma_window *object() { return m_org_kde_plasma_window; }
        const struct ::org_kde_plasma_window *object() const { return m_org_kde_plasma_window; }
        static org_kde_plasma_window *fromObject(struct ::org_kde_plasma_window *object);

        bool isInitialized() const;

        uint32_t version() const;
        static const struct ::wl_interface *interface();

        void set_state(uint32_t flags, uint32_t state);
        void set_virtual_desktop(uint32_t number);
        void set_minimized_geometry(struct ::wl_surface *panel, uint32_t x, uint32_t y, uint32_t width, uint32_t height);
        void unset_minimized_geometry(struct ::wl_surface *panel);
        void close();
        void request_move();
        void request_resize();
        void destroy();
        void get_icon(int32_t fd);
        void request_enter_virtual_desktop(const QString &id);
        void request_enter_new_virtual_desktop();
        void request_leave_virtual_desktop(const QString &id);
        void request_enter_activity(const QString &id);
        void request_leave_activity(const QString &id);
        void send_to_output(struct ::wl_output *output);

    protected:
        virtual void org_kde_plasma_window_title_changed(const QString &title);
        virtual void org_kde_plasma_window_app_id_changed(const QString &app_id);
        virtual void org_kde_plasma_window_state_changed(uint32_t flags);
        virtual void org_kde_plasma_window_virtual_desktop_changed(int32_t number);
        virtual void org_kde_plasma_window_themed_icon_name_changed(const QString &name);
        virtual void org_kde_plasma_window_unmapped();
        virtual void org_kde_plasma_window_initial_state();
        virtual void org_kde_plasma_window_parent_window(struct ::org_kde_plasma_window *parent);
        virtual void org_kde_plasma_window_geometry(int32_t x, int32_t y, uint32_t width, uint32_t height);
        virtual void org_kde_plasma_window_icon_changed();
        virtual void org_kde_plasma_window_pid_changed(uint32_t pid);
        virtual void org_kde_plasma_window_virtual_desktop_entered(const QString &id);
        virtual void org_kde_plasma_window_virtual_desktop_left(const QString &is);
        virtual void org_kde_plasma_window_application_menu(const QString &service_name, const QString &object_path);
        virtual void org_kde_plasma_window_activity_entered(const QString &id);
        virtual void org_kde_plasma_window_activity_left(const QString &id);
        virtual void org_kde_plasma_window_resource_name_changed(const QString &resource_name);
        virtual void org_kde_plasma_window_client_geometry(int32_t x, int32_t y, uint32_t width, uint32_t height);

    private:
        void init_listener();
        static const struct org_kde_plasma_window_listener m_org_kde_plasma_window_listener;
        static void handle_title_changed(
            void *data,
            struct ::org_kde_plasma_window *object,
            const char *title);
        static void handle_app_id_changed(
            void *data,
            struct ::org_kde_plasma_window *object,
            const char *app_id);
        static void handle_state_changed(
            void *data,
            struct ::org_kde_plasma_window *object,
            uint32_t flags);
        static void handle_virtual_desktop_changed(
            void *data,
            struct ::org_kde_plasma_window *object,
            int32_t number);
        static void handle_themed_icon_name_changed(
            void *data,
            struct ::org_kde_plasma_window *object,
            const char *name);
        static void handle_unmapped(
            void *data,
            struct ::org_kde_plasma_window *object);
        static void handle_initial_state(
            void *data,
            struct ::org_kde_plasma_window *object);
        static void handle_parent_window(
            void *data,
            struct ::org_kde_plasma_window *object,
            struct ::org_kde_plasma_window *parent);
        static void handle_geometry(
            void *data,
            struct ::org_kde_plasma_window *object,
            int32_t x,
            int32_t y,
            uint32_t width,
            uint32_t height);
        static void handle_icon_changed(
            void *data,
            struct ::org_kde_plasma_window *object);
        static void handle_pid_changed(
            void *data,
            struct ::org_kde_plasma_window *object,
            uint32_t pid);
        static void handle_virtual_desktop_entered(
            void *data,
            struct ::org_kde_plasma_window *object,
            const char *id);
        static void handle_virtual_desktop_left(
            void *data,
            struct ::org_kde_plasma_window *object,
            const char *is);
        static void handle_application_menu(
            void *data,
            struct ::org_kde_plasma_window *object,
            const char *service_name,
            const char *object_path);
        static void handle_activity_entered(
            void *data,
            struct ::org_kde_plasma_window *object,
            const char *id);
        static void handle_activity_left(
            void *data,
            struct ::org_kde_plasma_window *object,
            const char *id);
        static void handle_resource_name_changed(
            void *data,
            struct ::org_kde_plasma_window *object,
            const char *resource_name);
        static void handle_client_geometry(
            void *data,
            struct ::org_kde_plasma_window *object,
            int32_t x,
            int32_t y,
            uint32_t width,
            uint32_t height);
        struct ::org_kde_plasma_window *m_org_kde_plasma_window;
    };

    class  org_kde_plasma_activation_feedback
    {
    public:
        org_kde_plasma_activation_feedback(struct ::wl_registry *registry, uint32_t id, int version);
        org_kde_plasma_activation_feedback(struct ::org_kde_plasma_activation_feedback *object);
        org_kde_plasma_activation_feedback();

        virtual ~org_kde_plasma_activation_feedback();

        void init(struct ::wl_registry *registry, uint32_t id, int version);
        void init(struct ::org_kde_plasma_activation_feedback *object);

        struct ::org_kde_plasma_activation_feedback *object() { return m_org_kde_plasma_activation_feedback; }
        const struct ::org_kde_plasma_activation_feedback *object() const { return m_org_kde_plasma_activation_feedback; }
        static org_kde_plasma_activation_feedback *fromObject(struct ::org_kde_plasma_activation_feedback *object);

        bool isInitialized() const;

        uint32_t version() const;
        static const struct ::wl_interface *interface();

        void destroy();

    protected:
        virtual void org_kde_plasma_activation_feedback_activation(struct ::org_kde_plasma_activation *id);

    private:
        void init_listener();
        static const struct org_kde_plasma_activation_feedback_listener m_org_kde_plasma_activation_feedback_listener;
        static void handle_activation(
            void *data,
            struct ::org_kde_plasma_activation_feedback *object,
            struct ::org_kde_plasma_activation *id);
        struct ::org_kde_plasma_activation_feedback *m_org_kde_plasma_activation_feedback;
    };

    class  org_kde_plasma_activation
    {
    public:
        org_kde_plasma_activation(struct ::wl_registry *registry, uint32_t id, int version);
        org_kde_plasma_activation(struct ::org_kde_plasma_activation *object);
        org_kde_plasma_activation();

        virtual ~org_kde_plasma_activation();

        void init(struct ::wl_registry *registry, uint32_t id, int version);
        void init(struct ::org_kde_plasma_activation *object);

        struct ::org_kde_plasma_activation *object() { return m_org_kde_plasma_activation; }
        const struct ::org_kde_plasma_activation *object() const { return m_org_kde_plasma_activation; }
        static org_kde_plasma_activation *fromObject(struct ::org_kde_plasma_activation *object);

        bool isInitialized() const;

        uint32_t version() const;
        static const struct ::wl_interface *interface();

        void destroy();

    protected:
        virtual void org_kde_plasma_activation_app_id(const QString &app_id);
        virtual void org_kde_plasma_activation_finished();

    private:
        void init_listener();
        static const struct org_kde_plasma_activation_listener m_org_kde_plasma_activation_listener;
        static void handle_app_id(
            void *data,
            struct ::org_kde_plasma_activation *object,
            const char *app_id);
        static void handle_finished(
            void *data,
            struct ::org_kde_plasma_activation *object);
        struct ::org_kde_plasma_activation *m_org_kde_plasma_activation;
    };

    class  org_kde_plasma_stacking_order
    {
    public:
        org_kde_plasma_stacking_order(struct ::wl_registry *registry, uint32_t id, int version);
        org_kde_plasma_stacking_order(struct ::org_kde_plasma_stacking_order *object);
        org_kde_plasma_stacking_order();

        virtual ~org_kde_plasma_stacking_order();

        void init(struct ::wl_registry *registry, uint32_t id, int version);
        void init(struct ::org_kde_plasma_stacking_order *object);

        struct ::org_kde_plasma_stacking_order *object() { return m_org_kde_plasma_stacking_order; }
        const struct ::org_kde_plasma_stacking_order *object() const { return m_org_kde_plasma_stacking_order; }
        static org_kde_plasma_stacking_order *fromObject(struct ::org_kde_plasma_stacking_order *object);

        bool isInitialized() const;

        uint32_t version() const;
        static const struct ::wl_interface *interface();

    protected:
        virtual void org_kde_plasma_stacking_order_window(const QString &uuid);
        virtual void org_kde_plasma_stacking_order_done();

    private:
        void init_listener();
        static const struct org_kde_plasma_stacking_order_listener m_org_kde_plasma_stacking_order_listener;
        static void handle_window(
            void *data,
            struct ::org_kde_plasma_stacking_order *object,
            const char *uuid);
        static void handle_done(
            void *data,
            struct ::org_kde_plasma_stacking_order *object);
        struct ::org_kde_plasma_stacking_order *m_org_kde_plasma_stacking_order;
    };
}

QT_WARNING_POP
QT_END_NAMESPACE

#endif
