70 lines
1.4 KiB
C++
70 lines
1.4 KiB
C++
#include "statuswindow.h"
|
|
|
|
StatusWindow::StatusWindow(QQuickWindow *parent)
|
|
: QQuickWindow(parent)
|
|
, m_isFullScreen(false)
|
|
{
|
|
removeTitleBar();
|
|
|
|
connect(this, &QQuickWindow::windowStateChanged, [&](Qt::WindowState windowState) {
|
|
if (windowState == Qt::WindowNoState) {
|
|
removeTitleBar();
|
|
m_isFullScreen = false;
|
|
emit isFullScreenChanged();
|
|
} else if (windowState == Qt::WindowFullScreen) {
|
|
m_isFullScreen = true;
|
|
emit isFullScreenChanged();
|
|
showTitleBar();
|
|
}
|
|
});
|
|
}
|
|
|
|
void StatusWindow::updatePosition()
|
|
{
|
|
auto point = QPoint(screen()->geometry().center().x() - geometry().width() / 2,
|
|
screen()->geometry().center().y() - geometry().height() / 2);
|
|
if (point != this->position()) {
|
|
this->setPosition(point);
|
|
}
|
|
}
|
|
|
|
void StatusWindow::toggleFullScreen()
|
|
{
|
|
if (m_isFullScreen) {
|
|
showNormal();
|
|
} else {
|
|
showFullScreen();
|
|
}
|
|
}
|
|
|
|
bool StatusWindow::isFullScreen() const
|
|
{
|
|
return m_isFullScreen;
|
|
}
|
|
|
|
void StatusWindow::removeTitleBar()
|
|
{
|
|
#ifdef Q_OS_WIN
|
|
removeTitleBarWin();
|
|
#elif defined Q_OS_MACOS
|
|
removeTitleBarMac();
|
|
#endif
|
|
}
|
|
|
|
void StatusWindow::showTitleBar()
|
|
{
|
|
#ifdef Q_OS_WIN
|
|
showTitleBarWin();
|
|
#elif defined Q_OS_MACOS
|
|
showTitleBarMac();
|
|
#endif
|
|
}
|
|
|
|
#ifdef Q_OS_WIN
|
|
void StatusWindow::removeTitleBarWin()
|
|
{}
|
|
|
|
void StatusWindow::showTitleBarWin()
|
|
{}
|
|
#endif
|