diff options
Diffstat (limited to 'src/plugins/platforms/qnx/qqnxscreen.h')
-rw-r--r-- | src/plugins/platforms/qnx/qqnxscreen.h | 57 |
1 files changed, 31 insertions, 26 deletions
diff --git a/src/plugins/platforms/qnx/qqnxscreen.h b/src/plugins/platforms/qnx/qqnxscreen.h index 5749a66f5d..272cdd6261 100644 --- a/src/plugins/platforms/qnx/qqnxscreen.h +++ b/src/plugins/platforms/qnx/qqnxscreen.h @@ -46,7 +46,7 @@ #include "qqnxrootwindow.h" -#include <QtCore/QByteArray> +#include <QtCore/QObject> #include <QtCore/QScopedPointer> #include <screen/screen.h> @@ -55,65 +55,70 @@ QT_BEGIN_NAMESPACE class QQnxWindow; -class QQnxScreen : public QPlatformScreen +class QQnxScreen : public QObject, public QPlatformScreen { + Q_OBJECT public: - static QList<QPlatformScreen *> screens() { return ms_screens; } - static void createDisplays(screen_context_t context); - static void destroyDisplays(); - static QQnxScreen *primaryDisplay() { return static_cast<QQnxScreen*>(ms_screens.at(0)); } - static int defaultDepth(); - - virtual QRect geometry() const { return m_currentGeometry; } - virtual QRect availableGeometry() const; - virtual int depth() const { return defaultDepth(); } - virtual QImage::Format format() const { return (depth() == 32) ? QImage::Format_RGB32 : QImage::Format_RGB16; } - virtual QSizeF physicalSize() const { return m_currentPhysicalSize; } + QQnxScreen(screen_context_t context, screen_display_t display, bool primaryScreen); + ~QQnxScreen(); + + QRect geometry() const { return m_currentGeometry; } + QRect availableGeometry() const; + int depth() const; + QImage::Format format() const { return (depth() == 32) ? QImage::Format_RGB32 : QImage::Format_RGB16; } + QSizeF physicalSize() const { return m_currentPhysicalSize; } bool isPrimaryScreen() const { return m_primaryScreen; } int rotation() const { return m_currentRotation; } - void setRotation(int rotation); int nativeFormat() const { return (depth() == 32) ? SCREEN_FORMAT_RGBA8888 : SCREEN_FORMAT_RGB565; } screen_display_t nativeDisplay() const { return m_display; } screen_context_t nativeContext() const { return m_screenContext; } const char *windowGroupName() const { return m_rootWindow->groupName().constData(); } + QQnxWindow *findWindow(screen_window_t windowHandle); + /* Window hierarchy management */ - static void addWindow(QQnxWindow *child); - static void removeWindow(QQnxWindow *child); - static void raiseWindow(QQnxWindow *window); - static void lowerWindow(QQnxWindow *window); - static void updateHierarchy(); + void addWindow(QQnxWindow *child); + void removeWindow(QQnxWindow *child); + void raiseWindow(QQnxWindow *window); + void lowerWindow(QQnxWindow *window); + void updateHierarchy(); void onWindowPost(QQnxWindow *window); QSharedPointer<QQnxRootWindow> rootWindow() const { return m_rootWindow; } -private: - QQnxScreen(screen_context_t context, screen_display_t display, bool primaryScreen); - virtual ~QQnxScreen(); +public Q_SLOTS: + void setRotation(int rotation); + void newWindowCreated(void *window); + void windowClosed(void *window); - static bool orthogonal(int rotation1, int rotation2); +private Q_SLOTS: + void keyboardHeightChanged(int height); + +private: + void addOverlayWindow(screen_window_t window); + void removeOverlayWindow(screen_window_t window); screen_context_t m_screenContext; screen_display_t m_display; QSharedPointer<QQnxRootWindow> m_rootWindow; bool m_primaryScreen; bool m_posted; - bool m_usingOpenGL; int m_initialRotation; int m_currentRotation; + int m_keyboardHeight; QSize m_initialPhysicalSize; QSize m_currentPhysicalSize; QRect m_initialGeometry; QRect m_currentGeometry; QPlatformOpenGLContext *m_platformContext; - static QList<QPlatformScreen *> ms_screens; - static QList<QQnxWindow *> ms_childWindows; + QList<QQnxWindow *> m_childWindows; + QList<screen_window_t> m_overlays; }; QT_END_NAMESPACE |