modify homescreen seq
[apps/homescreen.git] / homescreen / src / homescreenhandler.h
index c18d7a0..df3dfc7 100644 (file)
 #define HOMESCREENHANDLER_H
 
 #include <QObject>
-#include <libhomescreen.hpp>
+#include <qlibhomescreen.h>
+#include <libwindowmanager.h>
 #include <string>
 
 using namespace std;
 
+class QQmlApplicationEngine;
+
 class HomescreenHandler : public QObject
 {
     Q_OBJECT
 public:
+    enum CHANGE_LAYOUT_PATTERN {
+        P_LEFT_METER_RIGHT_MAP = 0,
+        P_LEFT_MAP_RIGHT_METER
+    };
+    Q_ENUMS(CHANGE_LAYOUT_PATTERN)
     explicit HomescreenHandler(QObject *parent = 0);
     ~HomescreenHandler();
 
-    void init(int port, const char* token);
+    void init(const char* role, int port, const char* token);
+    void attach(QQmlApplicationEngine* engine);
+    void setWMHandler(WMHandler &handler);
 
     Q_INVOKABLE void tapShortcut(QString application_name);
+    Q_INVOKABLE void changeLayout(int pattern);
 
     void onRep(struct json_object* reply_contents);
     void onEv(const string& event, struct json_object* event_contents);
@@ -40,8 +51,19 @@ public:
     static void* myThis;
     static void onRep_static(struct json_object* reply_contents);
     static void onEv_static(const string& event, struct json_object* event_contents);
+
+signals:
+    void notification(QString id, QString icon, QString text);
+    void information(QString text);
+
+private Q_SLOTS:
+    void disconnect_frame_swapped(void);
+
 private:
-    LibHomeScreen *mp_hs;
+    QLibHomeScreen *mp_qhs;
+    LibWindowmanager *mp_wm;
+    std::string m_role;
+    QMetaObject::Connection loading;
 };
 
 #endif // HOMESCREENHANDLER_H