#define HOMESCREENHANDLER_H
#include <QObject>
-#include <QQuickWindow>
#include <qlibhomescreen.h>
-#include <qlibwindowmanager.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, QLibWindowmanager *qwm, QString myname);
+ 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, bool is_full);
- Q_INVOKABLE QString getCurrentApplication();
- Q_INVOKABLE void killRunningApplications();
+ Q_INVOKABLE void tapShortcut(QString application_name);
+ Q_INVOKABLE void changeLayout(int pattern);
Q_INVOKABLE void reboot();
- void setCurrentApplication(QString application_name);
- int getPidOfApplication(QString application_name);
void onRep(struct json_object* reply_contents);
void onEv(const string& event, struct json_object* event_contents);
static void* myThis;
static void onRep_static(struct json_object* reply_contents);
static void onEv_static(const string& event, struct json_object* event_contents);
- void setQuickWindow(QQuickWindow *qw);
signals:
- void showNotification(QString application_id, QString icon_path, QString text);
- void showInformation(QString info);
- void shortcutChanged(QString shortcut_id, QString shortcut_name, QString position);
- void showWindow();
- void hideWindow();
+ void notification(QString id, QString icon, QString text);
+ void information(QString text);
-public slots:
- void updateShortcut(QString id, struct json_object* object);
+private Q_SLOTS:
+ void disconnect_frame_swapped(void);
private:
QLibHomeScreen *mp_qhs;
- QLibWindowmanager *mp_qwm;
- QString m_myname;
- QString current_application;
+ LibWindowmanager *mp_wm;
+ std::string m_role;
+ QMetaObject::Connection loading;
};
#endif // HOMESCREENHANDLER_H