}
// Set event handlers for each event
- wm->set_event_handler(LibWindowmanager::Event_Active, [](char const *label) {
+ wm->set_event_handler(LibWindowmanager::Event_Active, [wm](json_object *object) {
+ const char *label = json_object_get_string(
+ json_object_object_get(object, wm->kKeyDrawingName));
fprintf(stderr, "Surface %s got activated!\n", label);
});
- wm->set_event_handler(LibWindowmanager::Event_Inactive, [](char const *label) {
+ wm->set_event_handler(LibWindowmanager::Event_Inactive, [wm](json_object *object) {
+ const char *label = json_object_get_string(
+ json_object_object_get(object, wm->kKeyDrawingName));
fprintf(stderr, "Surface %s got deactivated!\n", label);
});
- wm->set_event_handler(LibWindowmanager::Event_Visible, [](char const *label) {
+ wm->set_event_handler(LibWindowmanager::Event_Visible, [wm](json_object *object) {
+ const char *label = json_object_get_string(
+ json_object_object_get(object, wm->kKeyDrawingName));
fprintf(stderr, "Surface %s got visible!\n", label);
});
- wm->set_event_handler(LibWindowmanager::Event_Invisible, [](char const *label) {
+ wm->set_event_handler(LibWindowmanager::Event_Invisible, [wm](json_object *object) {
+ const char *label = json_object_get_string(
+ json_object_object_get(object, wm->kKeyDrawingName));
fprintf(stderr, "Surface %s got invisible!\n", label);
});
- wm->set_event_handler(LibWindowmanager::Event_SyncDraw, [wm](char const *label) {
- fprintf(stderr, "Surface %s got syncDraw!\n", label);
+ wm->set_event_handler(LibWindowmanager::Event_SyncDraw, [wm](json_object *object) {
+ const char *label = json_object_get_string(
+ json_object_object_get(object, wm->kKeyDrawingName));
+ const char *area = json_object_get_string(
+ json_object_object_get(object, wm->kKeyDrawingArea));
+ fprintf(stderr, "Surface %s got syncDraw! area: %s.\n", label, area);
// Application should call LibWindowmanager::endDraw() in SyncDraw handler
- wm->endDraw(label);
+ wm->endDraw(app_name.c_str());
});
- wm->set_event_handler(LibWindowmanager::Event_FlushDraw, [](char const *label) {
+ wm->set_event_handler(LibWindowmanager::Event_FlushDraw, [wm](json_object *object) {
+ const char *label = json_object_get_string(
+ json_object_object_get(object, wm->kKeyDrawingName));
fprintf(stderr, "Surface %s got flushDraw!\n", label);
});
hs->init(port, token.c_str());
// Set event handler
- hs->set_event_handler(LibHomeScreen::Event_TapShortcut, [wm](const char* appname) {
- if(myname == appname) {
- qDebug("Surface %s got tapShortcut\n", appname);
- // Application should call LibWindowmanager::endDraw() in TapShortcut handler
- wm->activateSurface(myname.c_str());
- }
+ hs->set_event_handler(LibHomeScreen::Event_ShowWindow, [hs, wm](json_object *object) {
+ qDebug("Surface %s got showWindow\n", myname.c_str());
+ struct json_object *param_obj = json_object_object_get(object, hs->_keyParameter);
+ const char *area = json_object_get_string(
+ json_object_object_get(param_obj, hs->_keyArea));
+ // Application should call LibWindowmanager::activateWindow() in showWindow handler
+ if(area == nullptr)
+ wm->activateWindow(myname.c_str(), hs->_areaNormal);
+ else
+ wm->activateWindow(myname.c_str(), area);
});
- // Run event loop for HomeScreen
- hs->runEventloop();
-
-
/*
* Set SoundManager
*/
smw->subscribe(QString("removedMainConnection"));
smw->subscribe(QString("asyncSetSourceState"));
smw->subscribe(QString("asyncConnect"));
- smw->run_eventloop();
// Set context property for SoundManager
context->setContextProperty("smw", smw);