add register/update shortcut
[src/libqthomescreen.git] / src / qlibhomescreen.h
index bf43963..11970e2 100644 (file)
@@ -18,6 +18,7 @@
 #define QLIBHOMESCREEN_H
 
 #include <QObject>
+#include <QQuickWindow>
 #include <libhomescreen.hpp>
 #include <functional>
 #include <QVariant>
@@ -34,21 +35,51 @@ public:
 
     enum QEventType {
        Event_TapShortcut = LibHomeScreen::Event_TapShortcut,
-       Event_OnScreenReply = LibHomeScreen::Event_OnScreenReply
+       Event_ShowWindow = LibHomeScreen::Event_ShowWindow,
+       Event_OnScreenMessage = LibHomeScreen::Event_OnScreenMessage,
+       Event_OnScreenReply = LibHomeScreen::Event_OnScreenReply,
+       Event_HideWindow = LibHomeScreen::Event_HideWindow,
+       Event_ReplyShowWindow = LibHomeScreen::Event_ReplyShowWindow,
+       Event_ShowNotification = LibHomeScreen::Event_ShowNotification,
+       Event_ShowInformation = LibHomeScreen::Event_ShowInformation,
+       Event_AppListChanged = LibHomeScreen::Event_AppListChanged,
+       Event_RegisterShortcut = LibHomeScreen::Event_RegisterShortcut,
+       Event_UpdateShortcut = LibHomeScreen::Event_UpdateShortcut
     };
     using handler_fun = std::function<void(json_object *object)>;
 
     void init(int port, const QString &token);
     void set_event_handler(enum QEventType et, handler_fun f);
+    void showWindow(QString application_id, json_object* area);
+    void replyShowWindow(QString application_id, json_object* reply);
+    Q_INVOKABLE void showInformation(QString info);
+    Q_INVOKABLE void showNotification(QString icon, QString text);
+
     Q_INVOKABLE int onScreenMessage(const QString &message);
     Q_INVOKABLE int subscribe(const QString &eventName);
     Q_INVOKABLE int unsubscribe(const QString &eventName);
     Q_INVOKABLE void tapShortcut(QString application_id);
+    Q_INVOKABLE void showWindow(QString application_id, QString area);
+    Q_INVOKABLE void hideWindow(QString application_id);
+    Q_INVOKABLE void replyShowWindow(QString application_id, QString reply);
+    Q_INVOKABLE void getRunnables(void);
+    Q_INVOKABLE void registerShortcut(QString shortcut_id, QString shortcut_name, QString position);
+    Q_INVOKABLE void updateShortcut(QString shortcut_id, QString shortcut_name);
+    void registerCallback(
+        void (*event_cb)(const std::string& event, struct json_object* event_contents),
+        void (*reply_cb)(struct json_object* reply_contents),
+        void (*hangup_cb)(void) = nullptr);
+    void setQuickWindow(QQuickWindow *qw);
 
 signals:
 
+public slots:
+    void slotPublishSubscription(void);
+
 private:
     LibHomeScreen *mp_hs;
+    QQuickWindow *mp_window;
+    QMetaObject::Connection m_loading;
 };
 
 #endif // QLIBHOMESCREEN_H