4#ifndef QPLATFORMCURSOR_H
5#define QPLATFORMCURSOR_H
16#include <QtGui/qtguiglobal.h>
17#include <QtCore/QList>
18#include <QtGui/QImage>
19#include <QtGui/QMouseEvent>
20#include <QtCore/QObject>
21#include <qpa/qplatformscreen.h>
22#include <QtGui/QCursor>
30 QPlatformCursorImage(
const uchar *data,
const uchar *mask,
int width,
int height,
int hotX,
int hotY)
31 { set(data, mask, width, height, hotX, hotY); }
32 QImage * image() {
return &cursorImage; }
33 QPoint hotspot()
const {
return hot; }
34 void set(
const uchar *data,
const uchar *mask,
int width,
int height,
int hotX,
int hotY);
35 void set(
const QImage &image,
int hx,
int hy);
36 void set(Qt::CursorShape);
38 static void createSystemCursor(
int id);
45 Q_DISABLE_COPY_MOVE(QPlatformCursor)
50 Q_DECLARE_FLAGS(Capabilities, Capability)
55 virtual void pointerEvent(
const QMouseEvent & event) { Q_UNUSED(event); }
57 virtual void changeCursor(QCursor * windowCursor, QWindow * window) = 0;
58 virtual void setOverrideCursor(
const QCursor &);
59 virtual void clearOverrideCursor();
61 virtual QPoint pos()
const;
62 virtual void setPos(
const QPoint &pos);
63 virtual QSize size()
const;
65 static Capabilities capabilities() {
return m_capabilities; }
66 static void setCapabilities(Capabilities c) { m_capabilities = c; }
67 static void setCapability(Capability c) { m_capabilities.setFlag(c); }
70 friend void qt_qpa_set_cursor(QWidget * w,
bool force);
71 friend class QApplicationPrivate;
73 static Capabilities m_capabilities;
76Q_DECLARE_OPERATORS_FOR_FLAGS(QPlatformCursor::Capabilities)