File indexing completed on 2024-05-12 05:33:51
0001 /* 0002 * SPDX-FileCopyrightText: 2014-2015 Sebastian Kügler <sebas@kde.org> 0003 * SPDX-FileCopyrightText: 2021 Méven Car <meven.car@enioka.com> 0004 * 0005 * SPDX-License-Identifier: LGPL-2.1-or-later 0006 */ 0007 #pragma once 0008 0009 #include "qwayland-kde-output-management-v2.h" 0010 #include "qwayland-kde-output-order-v1.h" 0011 0012 #include <QObject> 0013 #include <QSize> 0014 0015 namespace KScreen 0016 { 0017 class WaylandConfig; 0018 class WaylandOutputDevice; 0019 0020 class WaylandOutputConfiguration : public QObject, public QtWayland::kde_output_configuration_v2 0021 { 0022 Q_OBJECT 0023 public: 0024 WaylandOutputConfiguration(struct ::kde_output_configuration_v2 *object); 0025 0026 Q_SIGNALS: 0027 void applied(); 0028 void failed(); 0029 0030 protected: 0031 void kde_output_configuration_v2_applied() override; 0032 void kde_output_configuration_v2_failed() override; 0033 }; 0034 0035 class WaylandOutputManagement : public QObject, public QtWayland::kde_output_management_v2 0036 { 0037 Q_OBJECT 0038 public: 0039 WaylandOutputManagement(struct ::wl_registry *registry, int id, int version); 0040 0041 WaylandOutputConfiguration *createConfiguration(); 0042 }; 0043 0044 class WaylandOutputOrder : public QObject, public QtWayland::kde_output_order_v1 0045 { 0046 Q_OBJECT 0047 public: 0048 WaylandOutputOrder(struct ::wl_registry *registry, int id, int version); 0049 ~WaylandOutputOrder(); 0050 0051 QList<QString> order() const; 0052 0053 Q_SIGNALS: 0054 void outputOrderChanged(const QList<QString> &outputs); 0055 0056 private: 0057 void kde_output_order_v1_output(const QString &output_name) override; 0058 void kde_output_order_v1_done() override; 0059 0060 QList<QString> m_outputOrder; 0061 QList<QString> m_pendingOutputOrder; 0062 }; 0063 }