// Copyright (C) 2024 David Redondo // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only #ifndef MOCKCOMPOSITOR_XDG_DIALOG_H #define MOCKCOMPOSITOR_XDG_DIALOG_H #include "corecompositor.h" #include namespace MockCompositor { class XdgToplevel; class XdgWmDialog; class XdgDialog : public QtWaylandServer::xdg_dialog_v1 { public: explicit XdgDialog(XdgWmDialog *wm, XdgToplevel *toplevel, wl_client *client, int id, int version); XdgToplevel *toplevel; bool modal; protected: void xdg_dialog_v1_set_modal(Resource *resource) override; void xdg_dialog_v1_unset_modal(Resource *resource) override; void xdg_dialog_v1_destroy(Resource *resource) override; void xdg_dialog_v1_destroy_resource(Resource *resource) override; private: XdgWmDialog *m_wm; }; class XdgWmDialog : public Global, public QtWaylandServer::xdg_wm_dialog_v1 { Q_OBJECT public: explicit XdgWmDialog(CoreCompositor *compositor, int version = 1); ~XdgWmDialog() = default; QList m_dialogs; protected: void xdg_wm_dialog_v1_destroy(Resource *resource) override; void xdg_wm_dialog_v1_get_xdg_dialog(Resource *resource, uint32_t id, struct ::wl_resource *toplevel) override; }; } // namespace MockCompositor #endif