QWindowsCursor: Add API for determining the cursor state.
Detect the 'suppressed' state new in Windows 8. Change-Id: I0faa994aa7b91869cedba36b777b1784818efcce Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
This commit is contained in:
parent
245e630cfd
commit
97bc287782
@ -465,6 +465,22 @@ QPoint QWindowsCursor::mousePosition()
|
|||||||
return QPoint(p.x, p.y);
|
return QPoint(p.x, p.y);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QWindowsCursor::CursorState QWindowsCursor::cursorState()
|
||||||
|
{
|
||||||
|
#ifndef Q_OS_WINCE
|
||||||
|
enum { cursorShowing = 0x1, cursorSuppressed = 0x2 }; // Windows 8: CURSOR_SUPPRESSED
|
||||||
|
CURSORINFO cursorInfo;
|
||||||
|
cursorInfo.cbSize = sizeof(CURSORINFO);
|
||||||
|
if (GetCursorInfo(&cursorInfo)) {
|
||||||
|
if (cursorInfo.flags & CursorShowing)
|
||||||
|
return CursorShowing;
|
||||||
|
if (cursorInfo.flags & cursorSuppressed)
|
||||||
|
return CursorSuppressed;
|
||||||
|
}
|
||||||
|
#endif // !Q_OS_WINCE
|
||||||
|
return CursorHidden;
|
||||||
|
}
|
||||||
|
|
||||||
void QWindowsCursor::setPos(const QPoint &pos)
|
void QWindowsCursor::setPos(const QPoint &pos)
|
||||||
{
|
{
|
||||||
SetCursorPos(pos.x(), pos.y());
|
SetCursorPos(pos.x(), pos.y());
|
||||||
|
@ -93,6 +93,12 @@ private:
|
|||||||
class QWindowsCursor : public QPlatformCursor
|
class QWindowsCursor : public QPlatformCursor
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
enum CursorState {
|
||||||
|
CursorShowing,
|
||||||
|
CursorHidden,
|
||||||
|
CursorSuppressed // Cursor suppressed by touch interaction (Windows 8).
|
||||||
|
};
|
||||||
|
|
||||||
QWindowsCursor() {}
|
QWindowsCursor() {}
|
||||||
|
|
||||||
virtual void changeCursor(QCursor * widgetCursor, QWindow * widget);
|
virtual void changeCursor(QCursor * widgetCursor, QWindow * widget);
|
||||||
@ -102,6 +108,7 @@ public:
|
|||||||
static HCURSOR createPixmapCursor(const QPixmap &pixmap, int hotX, int hotY);
|
static HCURSOR createPixmapCursor(const QPixmap &pixmap, int hotX, int hotY);
|
||||||
static HCURSOR createSystemCursor(const QCursor &c);
|
static HCURSOR createSystemCursor(const QCursor &c);
|
||||||
static QPoint mousePosition();
|
static QPoint mousePosition();
|
||||||
|
static CursorState cursorState();
|
||||||
|
|
||||||
QWindowsWindowCursor standardWindowCursor(Qt::CursorShape s = Qt::ArrowCursor);
|
QWindowsWindowCursor standardWindowCursor(Qt::CursorShape s = Qt::ArrowCursor);
|
||||||
QWindowsWindowCursor pixmapWindowCursor(const QCursor &c);
|
QWindowsWindowCursor pixmapWindowCursor(const QCursor &c);
|
||||||
|
Loading…
Reference in New Issue
Block a user