Unity 8
CursorImageInfo.h
1 /*
2  * Copyright (C) 2016 Canonical, Ltd.
3  *
4  * This program is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation; version 3.
7  *
8  * This program is distributed in the hope that it will be useful,
9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11  * GNU General Public License for more details.
12  *
13  * You should have received a copy of the GNU General Public License
14  * along with this program. If not, see <http://www.gnu.org/licenses/>.
15  */
16 
17 #ifndef CURSOR_IMAGE_INFO_H
18 #define CURSOR_IMAGE_INFO_H
19 
20 #include "CursorImageProvider.h"
21 
22 #include <QObject>
23 #include <QString>
24 
25 class CursorImageInfo : public QObject
26 {
27  Q_OBJECT
28 
29  Q_PROPERTY(QString themeName READ themeName WRITE setThemeName NOTIFY themeNameChanged)
30  Q_PROPERTY(QString cursorName READ cursorName WRITE setCursorName NOTIFY cursorNameChanged)
31 
32  Q_PROPERTY(QPoint hotspot READ hotspot NOTIFY hotspotChanged)
33  Q_PROPERTY(qreal frameWidth READ frameWidth NOTIFY frameWidthChanged)
34  Q_PROPERTY(qreal frameHeight READ frameHeight NOTIFY frameHeightChanged)
35  Q_PROPERTY(int frameCount READ frameCount NOTIFY frameCountChanged)
36  Q_PROPERTY(int frameDuration READ frameDuration NOTIFY frameDurationChanged)
37 
38 public:
39  CursorImageInfo(QObject *parent = nullptr);
40 
41  QString themeName() const { return m_themeName; }
42  void setThemeName(const QString &);
43 
44  QString cursorName() const { return m_cursorName; }
45  void setCursorName(const QString &);
46 
47  QPoint hotspot() const;
48  qreal frameWidth() const;
49  qreal frameHeight() const;
50  int frameCount() const;
51  int frameDuration() const;
52 
53 Q_SIGNALS:
54  void themeNameChanged();
55  void cursorNameChanged();
56  void hotspotChanged();
57  void frameWidthChanged();
58  void frameHeightChanged();
59  void frameCountChanged();
60  void frameDurationChanged();
61 
62 private Q_SLOTS:
63  void update();
64 
65 private:
66  QString m_themeName;
67  QString m_cursorName;
68 
69  CursorImage *m_cursorImage{nullptr};
70 };
71 
72 #endif // CURSOR_IMAGE_INFO_H