summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKazumasa Mitsunari <knimitz@witz-inc.co.jp>2018-08-06 18:59:39 +0900
committerKazumasa Mitsunari <knimitz@witz-inc.co.jp>2018-08-06 18:59:39 +0900
commite6f70342f07038dae816049e55d6cf968ea94b72 (patch)
treee62d45a93fd59d0892b4a1919c43202f8dd689a3
parenta3893b1fa159af55c29bf70d6100b75093baac34 (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.cpp65
-rw-r--r--src/libwindowmanager.h8
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);