Windows platform headers: Add isTabletMode()
Add a bool function querying Windows 10 tablet mode. Task-number: QTBUG-56831 Change-Id: Ief728a7d80a11ba79f7859033ff4be6ef79bbd4e Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
This commit is contained in:
parent
a0bc9d0027
commit
45f80a52c2
@ -90,6 +90,15 @@ public:
|
||||
if (func)
|
||||
func(behavior);
|
||||
}
|
||||
|
||||
typedef bool (*IsTabletModeType)();
|
||||
static const QByteArray isTabletModeIdentifier() { return QByteArrayLiteral("WindowsIsTabletMode"); }
|
||||
|
||||
static bool isTabletMode()
|
||||
{
|
||||
IsTabletModeType func = reinterpret_cast<IsTabletModeType>(QGuiApplication::platformFunction(isTabletModeIdentifier()));
|
||||
return func && func();
|
||||
}
|
||||
};
|
||||
|
||||
Q_DECLARE_OPERATORS_FOR_FLAGS(QWindowsWindowFunctions::TouchWindowTouchTypes)
|
||||
|
@ -144,3 +144,35 @@
|
||||
\sa QWidget::activateWindow(), QWindow::requestActivate()
|
||||
\since 5.7
|
||||
*/
|
||||
|
||||
/*!
|
||||
\typedef QWindowsWindowFunctions::IsTabletModeType
|
||||
|
||||
This is the typedef for the function returned by QGuiApplication::platformFunction()
|
||||
when passed isTabletModeIdentifier().
|
||||
|
||||
\since 5.9
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn QByteArray QWindowsWindowFunctions::isTabletModeIdentifier()
|
||||
|
||||
Returns a bytearray that can be used to query
|
||||
QGuiApplication::platformFunction() to retrieve the IsTabletModeType
|
||||
function.
|
||||
|
||||
\since 5.9
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn bool QWindowsWindowFunctions::isTabletMode()
|
||||
|
||||
This is a convenience function that can be used directly instead of resolving
|
||||
the function pointer. The function can be used to query whether Windows 10
|
||||
operates in \e{Tablet Mode}. In this mode, Windows forces all application
|
||||
main windows to open in maximized state. Applications should then avoid
|
||||
resizing windows or restoring geometries to non-maximized states.
|
||||
|
||||
\sa QWidget::showMaximized(), QWidget::saveGeometry(), QWidget::restoreGeometry()
|
||||
\since 5.9
|
||||
*/
|
||||
|
@ -38,6 +38,7 @@
|
||||
****************************************************************************/
|
||||
|
||||
#include "qwindowsnativeinterface.h"
|
||||
#include "qwindowsclipboard.h"
|
||||
#include "qwindowswindow.h"
|
||||
#include "qwindowscontext.h"
|
||||
#include "qwindowscursor.h"
|
||||
@ -45,6 +46,7 @@
|
||||
#include "qwindowsopengltester.h"
|
||||
#include "qwindowsintegration.h"
|
||||
#include "qwindowsmime.h"
|
||||
#include "qwin10helpers.h"
|
||||
|
||||
#include <QtGui/QWindow>
|
||||
#include <QtGui/QOpenGLContext>
|
||||
@ -253,14 +255,23 @@ QFont QWindowsNativeInterface::logFontToQFont(const void *logFont, int verticalD
|
||||
return QWindowsFontDatabase::LOGFONT_to_QFont(*reinterpret_cast<const LOGFONT *>(logFont), verticalDpi);
|
||||
}
|
||||
|
||||
bool QWindowsNativeInterface::isTabletMode()
|
||||
{
|
||||
#if QT_CONFIG(clipboard)
|
||||
if (const QWindowsClipboard *clipboard = QWindowsClipboard::instance())
|
||||
return qt_windowsIsTabletMode(clipboard->clipboardViewer());
|
||||
#endif
|
||||
return false;
|
||||
}
|
||||
|
||||
QFunctionPointer QWindowsNativeInterface::platformFunction(const QByteArray &function) const
|
||||
{
|
||||
if (function == QWindowsWindowFunctions::setTouchWindowTouchTypeIdentifier())
|
||||
return QFunctionPointer(QWindowsWindow::setTouchWindowTouchTypeStatic);
|
||||
else if (function == QWindowsWindowFunctions::setHasBorderInFullScreenIdentifier())
|
||||
return QFunctionPointer(QWindowsWindow::setHasBorderInFullScreenStatic);
|
||||
else if (function == QWindowsWindowFunctions::setWindowActivationBehaviorIdentifier())
|
||||
return QFunctionPointer(QWindowsNativeInterface::setWindowActivationBehavior);
|
||||
else if (function == QWindowsWindowFunctions::isTabletModeIdentifier())
|
||||
return QFunctionPointer(QWindowsNativeInterface::isTabletMode);
|
||||
return Q_NULLPTR;
|
||||
}
|
||||
|
||||
|
@ -102,6 +102,8 @@ public:
|
||||
static void setWindowActivationBehavior(QWindowsWindowFunctions::WindowActivationBehavior b)
|
||||
{ QWindowsNativeInterface::m_windowActivationBehavior = b; }
|
||||
|
||||
static bool isTabletMode();
|
||||
|
||||
QFunctionPointer platformFunction(const QByteArray &function) const override;
|
||||
|
||||
private:
|
||||
|
Loading…
Reference in New Issue
Block a user