summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/windows/qwindowsscreen.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/platforms/windows/qwindowsscreen.h')
-rw-r--r--src/plugins/platforms/windows/qwindowsscreen.h43
1 files changed, 24 insertions, 19 deletions
diff --git a/src/plugins/platforms/windows/qwindowsscreen.h b/src/plugins/platforms/windows/qwindowsscreen.h
index 930814a17d..44638bcbe0 100644
--- a/src/plugins/platforms/windows/qwindowsscreen.h
+++ b/src/plugins/platforms/windows/qwindowsscreen.h
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
** This file is part of the plugins of the Qt Toolkit.
@@ -43,11 +43,13 @@
#define QWINDOWSSCREEN_H
#include "qwindowscursor.h"
+#include "qwindowsscaling.h"
#ifdef Q_OS_WINCE
# include "qplatformfunctions_wince.h"
#endif
#include <QtCore/QList>
+#include <QtCore/QVector>
#include <QtCore/QPair>
#include <QtCore/QSharedPointer>
#include <qpa/qplatformscreen.h>
@@ -88,24 +90,24 @@ public:
static QWindowsScreen *screenOf(const QWindow *w = 0);
- virtual QRect geometry() const { return m_data.geometry; }
- virtual QRect availableGeometry() const { return m_data.availableGeometry; }
- virtual int depth() const { return m_data.depth; }
- virtual QImage::Format format() const { return m_data.format; }
- virtual QSizeF physicalSize() const { return m_data.physicalSizeMM; }
- virtual QDpi logicalDpi() const { return m_data.dpi; }
- virtual qreal refreshRate() const { return m_data.refreshRateHz; }
- virtual QString name() const { return m_data.name; }
- virtual Qt::ScreenOrientation primaryOrientation() { return m_data.orientation; }
- virtual QList<QPlatformScreen *> virtualSiblings() const;
- virtual QWindow *topLevelAt(const QPoint &point) const
- { return QWindowsScreen::findTopLevelAt(point, CWP_SKIPINVISIBLE); }
-
- static QWindow *findTopLevelAt(const QPoint &point, unsigned flags);
- static QWindow *windowAt(const QPoint &point, unsigned flags = CWP_SKIPINVISIBLE);
- static QWindow *windowUnderMouse(unsigned flags = CWP_SKIPINVISIBLE);
-
- virtual QPixmap grabWindow(WId window, int x, int y, int width, int height) const;
+ QRect geometryDp() const { return m_data.geometry; }
+ QRect geometry() const Q_DECL_OVERRIDE { return QWindowsScaling::mapFromNative(geometryDp()); }
+ QRect availableGeometryDp() const { return m_data.availableGeometry; }
+ QRect availableGeometry() const Q_DECL_OVERRIDE { return QWindowsScaling::mapFromNative(availableGeometryDp()); }
+ int depth() const Q_DECL_OVERRIDE { return m_data.depth; }
+ QImage::Format format() const Q_DECL_OVERRIDE { return m_data.format; }
+ QSizeF physicalSize() const Q_DECL_OVERRIDE { return m_data.physicalSizeMM; }
+ QDpi logicalDpi() const Q_DECL_OVERRIDE
+ { return QDpi(m_data.dpi.first / QWindowsScaling::factor(), m_data.dpi.second / QWindowsScaling::factor()); }
+ qreal devicePixelRatio() const Q_DECL_OVERRIDE { return QWindowsScaling::factor(); }
+ qreal refreshRate() const Q_DECL_OVERRIDE { return m_data.refreshRateHz; }
+ QString name() const Q_DECL_OVERRIDE { return m_data.name; }
+ Qt::ScreenOrientation orientation() const Q_DECL_OVERRIDE { return m_data.orientation; }
+ QList<QPlatformScreen *> virtualSiblings() const Q_DECL_OVERRIDE;
+ QWindow *topLevelAt(const QPoint &point) const Q_DECL_OVERRIDE;
+ static QWindow *windowAt(const QPoint &point, unsigned flags);
+
+ QPixmap grabWindow(WId window, int qX, int qY, int qWidth, int qHeight) const Q_DECL_OVERRIDE;
inline void handleChanges(const QWindowsScreenData &newData);
@@ -117,6 +119,7 @@ public:
#endif // !QT_NO_CURSOR
const QWindowsScreenData &data() const { return m_data; }
+ static int maxMonitorHorizResolution();
private:
QWindowsScreenData m_data;
@@ -143,6 +146,8 @@ public:
const WindowsScreenList &screens() const { return m_screens; }
private:
+ void removeScreen(int index);
+
WindowsScreenList m_screens;
int m_lastDepth;
WORD m_lastHorizontalResolution;