17 #ifndef CURSORIMAGEPROVIDER_H 18 #define CURSORIMAGEPROVIDER_H 20 #include <QQuickImageProvider> 21 #include <QScopedPointer> 31 virtual ~CursorImage() {}
37 class XCursorImage :
public CursorImage {
39 XCursorImage(
const QString &theme,
const QString &file);
40 virtual ~XCursorImage();
42 XcursorImages *xcursorImages;
45 class BuiltInCursorImage :
public CursorImage {
50 class BlankCursorImage :
public CursorImage {
55 class CustomCursorImage :
public CursorImage {
57 CustomCursorImage(
const QCursor &cursor);
60 class CursorImageProvider :
public QQuickImageProvider
63 CursorImageProvider();
64 virtual ~CursorImageProvider();
66 static CursorImageProvider *instance() {
return m_instance; }
69 QImage requestImage(
const QString &cursorName, QSize *size,
const QSize &requestedSize)
override;
71 QPoint hotspot(
const QString &themeName,
const QString &cursorName);
73 void setCustomCursor(
const QCursor &customCursor);
76 CursorImage *fetchCursor(
const QString &cursorThemeAndName);
77 CursorImage *fetchCursor(
const QString &themeName,
const QString &cursorName);
78 CursorImage *fetchCursorHelper(
const QString &themeName,
const QString &cursorName);
81 QMap<QString, QMap<QString, CursorImage*> > m_cursors;
83 QScopedPointer<CursorImage> m_builtInCursorImage;
84 BlankCursorImage m_blankCursorImage;
85 QScopedPointer<CursorImage> m_customCursorImage;
87 QMap<QString, QStringList> m_fallbackNames;
89 static CursorImageProvider *m_instance;
92 #endif // CURSORIMAGEPROVIDER_H