17 #ifndef CURSORIMAGEPROVIDER_H 18 #define CURSORIMAGEPROVIDER_H 20 #include <QQuickImageProvider> 21 #include <QScopedPointer> 31 virtual ~CursorImage() {}
44 int frameDuration{40};
47 class XCursorImage :
public CursorImage {
49 XCursorImage(
const QString &theme,
const QString &file);
50 virtual ~XCursorImage();
53 class BuiltInCursorImage :
public CursorImage {
58 class BlankCursorImage :
public CursorImage {
63 class CustomCursorImage :
public CursorImage {
65 CustomCursorImage(
const QCursor &cursor);
68 class CursorImageProvider :
public QQuickImageProvider
71 CursorImageProvider();
72 virtual ~CursorImageProvider();
74 static CursorImageProvider *instance() {
return m_instance; }
77 QImage requestImage(
const QString &cursorName, QSize *size,
const QSize &requestedSize)
override;
79 CursorImage *fetchCursor(
const QString &themeName,
const QString &cursorName);
81 void setCustomCursor(
const QCursor &customCursor);
84 CursorImage *fetchCursor(
const QString &cursorThemeAndName);
85 CursorImage *fetchCursorHelper(
const QString &themeName,
const QString &cursorName);
89 QMap<QString, QMap<QString, CursorImage*> > m_cursors;
91 QScopedPointer<CursorImage> m_builtInCursorImage;
92 BlankCursorImage m_blankCursorImage;
93 QScopedPointer<CursorImage> m_customCursorImage;
95 QMap<QString, QStringList> m_fallbackNames;
97 static CursorImageProvider *m_instance;
100 #endif // CURSORIMAGEPROVIDER_H