summaryrefslogtreecommitdiffstats
path: root/src/gui/kernel/qplatformcursor.h
blob: e220047a84daa497753c57b89100e3d4f612b45c (plain)
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
// Copyright (C) 2016 The Qt Company Ltd.// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only#ifndef QPLATFORMCURSOR_H#define QPLATFORMCURSOR_H//// W A R N I N G// -------------//// This file is part of the QPA API and is not meant to be used// in applications. Usage of this API may make your code// source and binary incompatible with future versions of Qt.//#include <QtGui/qtguiglobal.h>#include <QtCore/QList>#include <QtGui/QImage>#include <QtGui/QMouseEvent>#include <QtCore/QObject>#include <qpa/qplatformscreen.h>#include <QtGui/QCursor> QT_BEGIN_NAMESPACE // Cursor graphics managementclass Q_GUI_EXPORT QPlatformCursorImage {public:QPlatformCursorImage(const uchar *data,const uchar *mask,int width,int height,int hotX,int hotY){set(data, mask, width, height, hotX, hotY); } QImage *image() {return&cursorImage; } QPoint hotspot()const{return hot; }voidset(const uchar *data,const uchar *mask,int width,int height,int hotX,int hotY);voidset(const QImage &image,int hx,int hy);voidset(Qt::CursorShape);private:static voidcreateSystemCursor(int id); QImage cursorImage; QPoint hot;};class Q_GUI_EXPORT QPlatformCursor :public QObject {public:Q_DISABLE_COPY_MOVE(QPlatformCursor)enum Capability { OverrideCursor =0x1};Q_DECLARE_FLAGS(Capabilities, Capability)QPlatformCursor();// input methodsvirtualvoidpointerEvent(const QMouseEvent & event) {Q_UNUSED(event); }#ifndef QT_NO_CURSORvirtualvoidchangeCursor(QCursor * windowCursor, QWindow * window) =0;virtualvoidsetOverrideCursor(const QCursor &);virtualvoidclearOverrideCursor();#endif// QT_NO_CURSORvirtual QPoint pos()const;virtualvoidsetPos(const QPoint &pos);virtual QSize size()const;static Capabilities capabilities() {return m_capabilities; }static voidsetCapabilities(Capabilities c) { m_capabilities = c; }static voidsetCapability(Capability c) { m_capabilities.setFlag(c); }private:friendvoidqt_qpa_set_cursor(QWidget * w,bool force);friend class QApplicationPrivate;static Capabilities m_capabilities;};Q_DECLARE_OPERATORS_FOR_FLAGS(QPlatformCursor::Capabilities) QT_END_NAMESPACE #endif// QPLATFORMCURSOR_H
close