a81fb4738716ca424e2d55f8332a7f4fdc882978
[quick-widgets] / quickwidget.hpp
1 #ifndef QUICKWIDGET_HPP
2 #define QUICKWIDGET_HPP
3
4 #include <QtCore>
5 #include <QtGui>
6 #include <q-extras/qemaemo5dynamicwidgethelper.h>
7
8 class QDeclarativeView;
9 class QuickWidgetWrapper;
10
11
12 class QuickWidget : public QeMaemo5DynamicHomescreenWidget
13 {
14     Q_OBJECT
15
16 private:
17     void initView(const QString& fileName, const QSize& size=QSize());
18     QSize size_;
19     QDeclarativeView* view_;
20     QuickWidgetWrapper* wrapper_;
21
22 protected:
23 //    void showSettingsDialog();
24     bool restoreWidgetState();
25     void errorWidget();
26     bool x11Event(XEvent *event);
27     void paintEvent(QPaintEvent *event);
28
29 public slots:
30   void resizer(QSize size);
31
32 public:
33     static QuickWidget *createAndShowNew(const QString& fileName, const QSize& size=QSize());
34
35     explicit QuickWidget(QWidget *parent = 0);
36     Q_INVOKABLE bool onHomescreen() { return isVisibleOnCurrentHomescreen(); }
37     ~QuickWidget();
38
39 };
40
41 class QuickWidgetWrapper : public QObject
42 {
43     Q_OBJECT
44
45 Q_SIGNALS:
46     void onHomeScreenChanged();
47
48 public:
49     QuickWidgetWrapper(QuickWidget *owner) : m_owner(owner) {;}
50     Q_PROPERTY(bool isActiveWindow READ onHomeScreen NOTIFY onHomeScreenChanged);
51
52     bool onHomeScreen() const { return homeScreen; }
53
54     void setOnHomeScreen(bool active)
55     {
56         if (active == homeScreen)
57             return;
58         homeScreen = active;
59         emit onHomeScreenChanged();
60     }
61
62
63 private:
64     QuickWidget *m_owner;
65     bool homeScreen;
66
67
68 };
69
70 #endif // QuickWidget_HPP