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 CursorImageProvider :
public QQuickImageProvider
53 CursorImageProvider();
54 virtual ~CursorImageProvider();
56 static CursorImageProvider *instance() {
return m_instance; }
59 QImage requestImage(
const QString &cursorName, QSize *size,
const QSize &requestedSize)
override;
61 QPoint hotspot(
const QString &themeName,
const QString &cursorName);
64 CursorImage *fetchCursor(
const QString &cursorThemeAndName);
65 CursorImage *fetchCursor(
const QString &themeName,
const QString &cursorName);
66 CursorImage *fetchCursorHelper(
const QString &themeName,
const QString &cursorName);
69 QMap<QString, QMap<QString, CursorImage*> > m_cursors;
71 QScopedPointer<CursorImage> m_builtInCursorImage;
73 static CursorImageProvider *m_instance;
76 #endif // CURSORIMAGEPROVIDER_H