Files
qt6-migration-pipeline/Lts/Common/LtsMultiMonitor/lts_screen_container.h
T

69 lines
1.4 KiB
C++
Executable File

#pragma once
#include "lts_screen_base.h"
#include <lts_multi_monitor_export.h>
#include <QWidget>
#include <QRect>
class QHBoxLayout;
namespace LtsMultiMonitor
{
class LTSMULTIMONITOR_EXPORT LtsScreenContainer : public QWidget
{
Q_OBJECT
public:
LtsScreenContainer(QRect screenGeo);
bool isIrreplaceable() const;
bool isEmpty() const;
bool hasMainWidget();
bool hasSecondaryWidget();
void setWidget(QWidget *widget);
bool hasWidget(QWidget *widget) const;
QWidget *widget() noexcept(false);
QWidget *stealWidget() noexcept(false);
void switchToTemp(LtsScreenBase::WidgetType widgetType);
void finalizeSwitch();
void revertSwitch();
bool mainAndSecondaryOccupied() const;
QIcon mainWindowIcon() const;
QIcon secondaryWindowIcon() const;
LtsScreenBase::WidgetType activeWidgetType() const;
bool isInactiveWidgetOccupied() const;
signals:
void check();
void signalSetCornerIcons();
private:
QHBoxLayout *m_layout { nullptr };
QWidget *m_mainWidget { nullptr };
QWidget *m_secondaryWidget { nullptr };
QWidget **m_activeWidget { nullptr };
QWidget **m_oldActiveWidget { nullptr };
bool m_nullSwitchActive { false };
QRect m_screenGeo;
QString geoStr() const;
bool tryPutDummyUnmanaged(QWidget *widget);
void vanish();
void reappear();
QWidget *activeWidget() const;
QWidget **activeWidgetPtr();
public slots:
void toggle();
private slots:
void slotChildDestroyed();
};
}