60 lines
1.6 KiB
C++
Executable File
60 lines
1.6 KiB
C++
Executable File
#pragma once
|
|
|
|
#include "lts_multi_monitor_export.h"
|
|
|
|
#include <QWidget>
|
|
#include <QRect>
|
|
|
|
class QSplitter;
|
|
class QHBoxLayout;
|
|
|
|
namespace LtsUtils { class Promise; }
|
|
|
|
namespace LtsMultiMonitor
|
|
{
|
|
class LtsScreenContainer;
|
|
|
|
// controller class, manages the underlying screen widget
|
|
// hides from System Menu + Parent for QDialogs
|
|
class LTSMULTIMONITOR_EXPORT LtsScreenBase : public QObject
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
enum WidgetType
|
|
{
|
|
MainWidget,
|
|
SecondaryWidget,
|
|
None,
|
|
};
|
|
|
|
LtsScreenBase(QRect screenGeo, int screenId, bool debugMargins, const QString &serial);
|
|
|
|
const QRect &screenRect() const { return m_screenRect; }
|
|
int screenId() const { return m_screenId; }
|
|
const QString serialNumber() const { return m_serial; }
|
|
QWidget *screenDialog() const { return m_screenDialog; }
|
|
|
|
virtual int screenType() const = 0;
|
|
virtual int containerIdOfWidget(QWidget *widget) const noexcept(false) = 0;
|
|
virtual LtsScreenContainer *putWidget(QWidget *widget, int screenPart = -1 /* unspecified */) noexcept(false) = 0;
|
|
virtual LtsScreenContainer *containerOfWidget(QWidget *widget) noexcept(false) = 0;
|
|
virtual bool isEmpty() const = 0;
|
|
virtual bool isIrreplaceable() const = 0;
|
|
virtual void check() {}
|
|
virtual bool hasWidget(QWidget *widget) const = 0; // NOTE: ignores active widget - checks for main & secondary
|
|
virtual void switchToTemp(WidgetType /*widgetType*/) {}
|
|
virtual void finalizeSwitch() {}
|
|
virtual void revertSwitch() {}
|
|
|
|
protected:
|
|
QWidget *m_screenDialog;
|
|
|
|
private:
|
|
int m_screenId;
|
|
QString m_serial;
|
|
QRect m_screenRect;
|
|
};
|
|
|
|
} // namespace LtsMultiMonitor
|