123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- /*
- * Copyright (c) Contributors to the Open 3D Engine Project.
- * For complete copyright and license terms please see the LICENSE at the root of this distribution.
- *
- * SPDX-License-Identifier: Apache-2.0 OR MIT
- *
- */
- #ifndef WINDOWSCREEN_H
- #define WINDOWSCREEN_H
- #if !defined(Q_MOC_RUN)
- #include <QObject>
- #include <QString>
- #include <QWindow>
- #endif
- /** The WindowScreenInfo struct stores the x, y, width, height and
- * other window state info.
- */
- struct WindowScreenInfo
- {
- int m_positionX = 0;
- int m_positionY = 0;
- int m_width = 0;
- int m_height = 0;
- QWindow::Visibility m_windowState = QWindow::Windowed;
- };
- /** The WindowScreen class is responsible for storing information about the
- * application window.
- */
- class WindowScreen
- : public QObject
- {
- Q_OBJECT
- Q_PROPERTY(int positionX READ positionX WRITE setPositionX NOTIFY positionXChanged)
- Q_PROPERTY(int positionY READ positionY WRITE setPositionY NOTIFY positionYChanged)
- Q_PROPERTY(int width READ width WRITE setWidth NOTIFY widthChanged)
- Q_PROPERTY(int height READ height WRITE setHeight NOTIFY heightChanged)
- Q_PROPERTY(QWindow::Visibility windowState READ windowState WRITE setWindowState NOTIFY windowStateChanged)
- Q_PROPERTY(QString windowName READ windowName WRITE setWindowName)
- public:
- /// standard Qt constructor
- explicit WindowScreen(QObject* parent = 0);
- virtual ~WindowScreen();
- ///Loads settings
- Q_INVOKABLE void loadSettings(int width, int heigth, int minimumWidth, int minimumHeight);
- ///save settings
- Q_INVOKABLE void saveSettings();
- int positionX() const;
- void setPositionX(int positionX);
- int positionY() const;
- void setPositionY(int positionY);
- int width() const;
- void setWidth(int width);
- int height() const;
- void setHeight(int height);
- bool isMaximize() const;
- void setIsMaximize(bool isMaximize);
- QString windowName() const;
- void setWindowName(QString windowName);
- QWindow::Visibility windowState() const;
- void setWindowState(QWindow::Visibility state);
- Q_SIGNALS:
- void positionXChanged();
- void positionYChanged();
- void widthChanged();
- void heightChanged();
- void windowStateChanged();
- private:
- ///Check to see whether settings are valid or not
- bool CheckSettings(int minimumWidth, int minimumHeight);
- ///Centers the window in primary screen
- void CenterWindowInPrimaryScreen(int minimumWidth, int minimumHeight);
- WindowScreenInfo m_windowCurrentInfo;
- WindowScreenInfo m_windowPreviousInfo;
- QString m_windowName = QString();
- };
- #endif // WINDOWSCREEN_H
|