diff options
author | 2018-08-06 18:59:39 +0900 | |
---|---|---|
committer | 2018-08-06 18:59:39 +0900 | |
commit | e6f70342f07038dae816049e55d6cf968ea94b72 (patch) | |
tree | e62d45a93fd59d0892b4a1919c43202f8dd689a3 | |
parent | a3893b1fa159af55c29bf70d6100b75093baac34 (diff) |
Don't use invisible/inactive handler
* More simple
* Get attribute in handler argument with bool
Change-Id: I1f028a3692404d57675c1d356486ecca8cd6cfce
Signed-off-by: Kazumasa Mitsunari <knimitz@witz-inc.co.jp>
-rw-r--r-- | src/libwindowmanager.cpp | 65 | ||||
-rw-r--r-- | src/libwindowmanager.h | 8 |
2 files changed, 15 insertions, 58 deletions
diff --git a/src/libwindowmanager.cpp b/src/libwindowmanager.cpp index 44887e7..7f7895b 100644 --- a/src/libwindowmanager.cpp +++ b/src/libwindowmanager.cpp @@ -72,9 +72,7 @@ class LibWindowmanager::Impl { void set_event_handler(enum EventType et, handler_fun func); void setVisibleHandler(visible_handler f); - void setInvisibleHandler(invisible_handler f); void setActiveHandler(active_handler f); - void setInactiveHandler(inactive_handler f); void setSyncDrawHandler(sync_draw_handler f); void setFlushDrawHandler(flush_draw_handler f); void setScreenUpdatedHandler(screen_updated_handler f); @@ -98,9 +96,7 @@ public: private: int runEventLoop(); visible_handler _on_visible = nullptr; - invisible_handler _on_invisible = nullptr; active_handler _on_active = nullptr; - inactive_handler _on_inactive = nullptr; sync_draw_handler _on_sync_draw = nullptr; flush_draw_handler _on_flush_draw = nullptr; screen_updated_handler _on_screen_updated = nullptr; @@ -611,18 +607,6 @@ void LibWindowmanager::Impl::setActiveHandler(active_handler f) { this->_on_active = f; } -void LibWindowmanager::Impl::setInactiveHandler(inactive_handler f) { - struct json_object* j = json_object_new_object(); - json_object_object_add(j, "event", json_object_new_int(Event_Inactive)); - - int ret = afb_wsj1_call_j(this->wsj1, wmAPI, "wm_subscribe", j, _on_reply_static, this); - if (0 > ret) { - HMI_ERROR("libwm", "Failed to subscribe event"); - return; - } - this->_on_inactive = f; -} - void LibWindowmanager::Impl::setVisibleHandler(visible_handler f) { struct json_object* j = json_object_new_object(); json_object_object_add(j, "event", json_object_new_int(Event_Visible)); @@ -635,18 +619,6 @@ void LibWindowmanager::Impl::setVisibleHandler(visible_handler f) { this->_on_visible = f; } -void LibWindowmanager::Impl::setInvisibleHandler(invisible_handler f) { - struct json_object* j = json_object_new_object(); - json_object_object_add(j, "event", json_object_new_int(Event_Invisible)); - - int ret = afb_wsj1_call_j(this->wsj1, wmAPI, "wm_subscribe", j, _on_reply_static, this); - if (0 > ret) { - HMI_ERROR("libwm", "Failed to subscribe event"); - return; - } - this->_on_invisible = f; -} - void LibWindowmanager::Impl::setSyncDrawHandler(sync_draw_handler f) { struct json_object* j = json_object_new_object(); json_object_object_add(j, "event", json_object_new_int(Event_SyncDraw)); @@ -813,25 +785,23 @@ void LibWindowmanager::Impl::event(char const *et, json_object *object) { switch(oet.second) { case Event_Active : - if(_on_active && emit) { - return _on_active(role); - } - break; - case Event_Inactive : - if(_on_inactive && emit) { - return _on_inactive(role); + case Event_Inactive : { + bool active = ((oet.second == Event_Active) ? true : false); + if(!emit) break; + if(_on_active) { + return _on_active(role, active); } break; + } case Event_Visible : - if(_on_visible && emit) { - return _on_visible(role); - } - break; - case Event_Invisible : - if(_on_invisible && emit) { - return _on_invisible(role); + case Event_Invisible : { + bool visible = ((oet.second == Event_Visible) ? true : false); + if(!emit) break; + if(_on_visible) { + return _on_visible(role, visible); } break; + } case Event_SyncDraw : if(_on_sync_draw && emit) { json_object_object_get_ex(object, kKeyDrawingArea, &j_val); @@ -1076,22 +1046,13 @@ void LibWindowmanager::set_event_handler(enum EventType et, handler_fun f) { return this->d->set_event_handler(et, std::move(f)); } -void LibWindowmanager::setVisibleHandler(invisible_handler f) { +void LibWindowmanager::setVisibleHandler(visible_handler f) { return this->d->setVisibleHandler(f); } - -void LibWindowmanager::setInvisibleHandler(visible_handler f) { - return this->d->setInvisibleHandler(f); -} - void LibWindowmanager::setActiveHandler(active_handler f) { return this->d->setActiveHandler(f); } -void LibWindowmanager::setInactiveHandler(inactive_handler f) { - return this->d->setInactiveHandler(f); -} - void LibWindowmanager::setSyncDrawHandler(sync_draw_handler f) { return this->d->setSyncDrawHandler(f); } diff --git a/src/libwindowmanager.h b/src/libwindowmanager.h index 97279b3..552bb2c 100644 --- a/src/libwindowmanager.h +++ b/src/libwindowmanager.h @@ -60,10 +60,8 @@ public: LibWindowmanager &operator=(const LibWindowmanager &) = delete; using handler_fun = std::function<void(json_object *)>; - using visible_handler = std::function<void(const char*)>; - using invisible_handler = std::function<void(const char*)>; - using active_handler = std::function<void(const char*)>; - using inactive_handler = std::function<void(const char*)>; + using visible_handler = std::function<void(const char*, bool visible)>; + using active_handler = std::function<void(const char*, bool active)>; using sync_draw_handler = std::function<void(const char*, const char*, const Rect&)>; using flush_draw_handler= std::function<void(const char*)>; using screen_updated_handler = std::function<void(const std::vector<std::string>&)>; @@ -112,9 +110,7 @@ public: int getAreaInfo(const char* role, Rect *out_rect); void setVisibleHandler (visible_handler f); - void setInvisibleHandler (invisible_handler f); void setActiveHandler (active_handler f); - void setInactiveHandler (inactive_handler f); void setSyncDrawHandler (sync_draw_handler f); void setFlushDrawHandler (flush_draw_handler f); void setScreenUpdatedHandler(screen_updated_handler f); |