summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/qnx/qqnxscreen.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/platforms/qnx/qqnxscreen.h')
-rw-r--r--src/plugins/platforms/qnx/qqnxscreen.h57
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