#pragma once #include "lts_screen_base.h" #include #include #include class QSplitter; class QHBoxLayout; namespace LtsMultiMonitor { class LtsMagicCorner; class LTSMULTIMONITOR_EXPORT LtsScreenNormal : public LtsScreenBase { Q_OBJECT public: LtsScreenNormal(QRect screenGeo, int screenId, bool debugMargins, const QString &serial); ~LtsScreenNormal(); int screenType() const override { return 0; } int containerIdOfWidget(QWidget *widget) const noexcept(false) override; LtsScreenContainer *child() const { return m_childContainer; } LtsScreenContainer *putWidget(QWidget *widget, int) noexcept(false) override; LtsScreenContainer *containerOfWidget(QWidget *widget) noexcept(false) override; void hideMagicCorner(bool hide); bool isEmpty() const override; bool isIrreplaceable() const override; void putWidgetUnmanaged(QWidget *widget); bool hasWidget(QWidget *widget) const override; void switchToTemp(WidgetType widgetType) override; void finalizeSwitch() override; void revertSwitch() override; void check() override; private: LtsScreenContainer *m_childContainer { nullptr }; LtsMagicCorner *m_corner; void swapLeftRight(); bool tryPutDummyUnmanaged(QWidget *widget); signals: void signalMakeAllSwole(); void signalMakeSwole(); private slots: void slotOverlayDestroyed(); void setCornerIcons(); }; }