Initial upload
[quick-widgets] / quickwidget.hpp
diff --git a/quickwidget.hpp b/quickwidget.hpp
new file mode 100644 (file)
index 0000000..f0a6bd2
--- /dev/null
@@ -0,0 +1,63 @@
+#ifndef QUICKWIDGET_HPP\r
+#define QUICKWIDGET_HPP\r
+\r
+#include <QtCore>\r
+#include <QtGui>\r
+#include <q-extras/qemaemo5dynamicwidgethelper.h>\r
+\r
+class QDeclarativeView;\r
+class QuickWidgetWrapper;\r
+\r
+\r
+class QuickWidget : public QeMaemo5DynamicHomescreenWidget\r
+{\r
+    Q_OBJECT\r
+\r
+private:\r
+    void initView(const QString& fileName, const QSize& size=QSize());\r
+    QSize size_;\r
+    QDeclarativeView* view_;\r
+    QuickWidgetWrapper* wrapper_;\r
+\r
+protected:\r
+//    void showSettingsDialog();\r
+    bool restoreWidgetState();\r
+    void errorWidget();\r
+    bool x11Event(XEvent *event);\r
+\r
+public:\r
+    static QuickWidget *createAndShowNew(const QString& fileName, const QSize& size=QSize());\r
+\r
+    explicit QuickWidget(QWidget *parent = 0);\r
+    Q_INVOKABLE bool onHomescreen() { return isVisibleOnCurrentHomescreen(); }\r
+    ~QuickWidget();\r
+\r
+};\r
+\r
+class QuickWidgetWrapper : public QObject\r
+{\r
+    Q_OBJECT\r
+\r
+public:\r
+    QuickWidgetWrapper(QuickWidget *owner) : m_owner(owner) {;}\r
+    Q_PROPERTY(bool isActiveWindow READ onHomeScreen NOTIFY onHomeScreenChanged);\r
+\r
+    bool onHomeScreen() const { return homeScreen; }\r
+\r
+    void setOnHomeScreen(bool active)\r
+    {\r
+        if (active == homeScreen)\r
+            return;\r
+        homeScreen = active;\r
+        emit onHomeScreenChanged();\r
+    }\r
+\r
+Q_SIGNALS:\r
+    void onHomeScreenChanged();\r
+\r
+private:\r
+    QuickWidget *m_owner;\r
+    bool homeScreen;\r
+};\r
+\r
+#endif // QuickWidget_HPP\r