diff options
Diffstat (limited to 'sample')
-rw-r--r-- | sample/simple-egl/src/simple-egl.cpp | 14 | ||||
-rw-r--r-- | sample/template/main.cpp | 27 |
2 files changed, 24 insertions, 17 deletions
diff --git a/sample/simple-egl/src/simple-egl.cpp b/sample/simple-egl/src/simple-egl.cpp index 4271a66..aa6ea19 100644 --- a/sample/simple-egl/src/simple-egl.cpp +++ b/sample/simple-egl/src/simple-egl.cpp @@ -569,9 +569,17 @@ init_hs(LibHomeScreen* hs){ return -1; } - hs->set_event_handler(LibHomeScreen::Event_TapShortcut, [](json_object *object){ - HMI_DEBUG("simple-egl","try to activesurface %s ", app_name.c_str()); - wm->activateWindow(main_role); + hs->set_event_handler(LibHomeScreen::Event_ShowWindow, [hs](json_object *object){ + HMI_DEBUG("simple-egl","try to activeWindow %s ", app_name.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(main_role, hs->_areaNormal); + else + wm->activateWindow(main_role, area); }); return 0; diff --git a/sample/template/main.cpp b/sample/template/main.cpp index fef270b..848d2c5 100644 --- a/sample/template/main.cpp +++ b/sample/template/main.cpp @@ -90,9 +90,7 @@ int main(int argc, char *argv[]) } // Application should call requestSurface at first - json_object *obj = json_object_new_object(); - json_object_object_add(obj, wm->kKeyDrawingName, json_object_new_string(app_name.c_str())); - if (wm->requestSurface(obj) != 0) { + if (wm->requestSurface(myname.c_str()) != 0) { exit(EXIT_FAILURE); } @@ -122,11 +120,9 @@ int main(int argc, char *argv[]) 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!\n", label); + fprintf(stderr, "Surface %s got syncDraw! area: %s.\n", label, area); // Application should call LibWindowmanager::endDraw() in SyncDraw handler - json_object *obj = json_object_new_object(); - json_object_object_add(obj, wm->kKeyDrawingName, json_object_new_string(app_name.c_str())); - wm->endDraw(obj); + wm->endDraw(app_name.c_str()); }); wm->set_event_handler(LibWindowmanager::Event_FlushDraw, [wm](json_object *object) { const char *label = json_object_get_string( @@ -145,13 +141,16 @@ int main(int argc, char *argv[]) hs->init(port, token.c_str()); // Set event handler - hs->set_event_handler(LibHomeScreen::Event_TapShortcut, [wm](json_object *object) { - qDebug("Surface %s got tapShortcut\n", myname.c_str()); - // Application should call LibWindowmanager::endDraw() in TapShortcut handler - json_object *obj = json_object_new_object(); - json_object_object_add(obj, wm->kKeyDrawingName, json_object_new_string(myname.c_str())); - json_object_object_add(obj, wm->kKeyDrawingArea, json_object_new_string("normal.full")); - wm->activateSurface(obj); + 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); }); /* |