static void _cb_signal_focus_changed(void *data, const Eldbus_Message *msg);
static void _cb_signal_render_while_effect_run(void *data, const Eldbus_Message *msg);
static void _cb_signal_aux_hint_changed(void *data, const Eldbus_Message *msg);
+static void _cb_signal_iconic_state_changed(void *data, const Eldbus_Message *msg);
/* callbacks - ecore */
static Eina_Bool _cb_ecore_key_down(void *data, int type, void *event);
case E_TC_EVENT_TYPE_STACK_CHANGED:
ev_type = E_TC_EVENT_TYPE_STACK_CHANGED;
break;
+ case E_TC_EVENT_TYPE_ICONIC_STATE_ICONIFIED:
+ case E_TC_EVENT_TYPE_ICONIC_STATE_UNICONIFIED:
+ case E_TC_EVENT_TYPE_ICONIC_STATE_CHANGED:
+ ev_type = E_TC_EVENT_TYPE_ICONIC_STATE_CHANGED;
+ break;
default:
break;
}
EINA_SAFETY_ON_NULL_GOTO(sh, err);
ev.sh_list = eina_list_append(ev.sh_list, sh);
+ sh = eldbus_proxy_signal_handler_add(dbus.ds_proxy,
+ "IconicStateChanged",
+ _cb_signal_iconic_state_changed,
+ this);
+ EINA_SAFETY_ON_NULL_GOTO(sh, err);
+ ev.sh_list = eina_list_append(ev.sh_list, sh);
+
eh = ecore_event_handler_add(ECORE_EVENT_KEY_DOWN, _cb_ecore_key_down, this);
EINA_SAFETY_ON_NULL_GOTO(eh, err);
ev.eh_list = eina_list_append(ev.eh_list, eh);
}
}
+static void
+_cb_signal_iconic_state_changed(void *data,
+ const Eldbus_Message *msg)
+{
+ etRunner *runner = (etRunner *)data;
+ const char *name = NULL, *text = NULL;
+ Eina_Bool res = EINA_FALSE;
+ Ecore_Window win = 0;
+ std::shared_ptr<iconicStateEventItem> iconicEvent = NULL;
+ Eina_Bool iconic = EINA_FALSE;
+
+ res = eldbus_message_error_get(msg, &name, &text);
+ EINA_SAFETY_ON_TRUE_GOTO(res, finish);
+
+ res = eldbus_message_arguments_get(msg, "ub", &win, &iconic);
+ EINA_SAFETY_ON_FALSE_GOTO(res, finish);
+
+ iconicEvent = std::make_shared<iconicStateEventItem>(win, E_TC_EVENT_TYPE_ICONIC_STATE_CHANGED, iconic);
+ EINA_SAFETY_ON_NULL_GOTO(iconicEvent, finish);
+
+ runner->insertEventQueue(iconicEvent);
+
+finish:
+ if ((name) || (text))
+ {
+ ERR("errname:%s errmsg:%s\n", name, text);
+ }
+}
+
/* callbacks - timer */
static Eina_Bool
_cb_work_timeout(void *data)
E_TC_EVENT_TYPE_GESTURE_EDGE_SWIPE,
E_TC_EVENT_TYPE_GESTURE_EDGE_DRAG,
E_TC_EVENT_TYPE_AUX_HINT_CHANGED,
+ E_TC_EVENT_TYPE_ICONIC_STATE_ICONIFIED,
+ E_TC_EVENT_TYPE_ICONIC_STATE_UNICONIFIED,
+ E_TC_EVENT_TYPE_ICONIC_STATE_CHANGED,
E_TC_EVENT_TYPE_MAX
} E_TC_Event_Type;
} \
} while (0)
+#define ASSERT_ICONIFIED(TEST_WINDOW) \
+ do { \
+ ASSERT_NE(TEST_WINDOW, nullptr) << "Window is NULL"; \
+ ev_result_iconic = std::static_pointer_cast<iconicStateEventItem>(etRunner::get().waitEvent(TEST_WINDOW, E_TC_EVENT_TYPE_ICONIC_STATE_CHANGED)); \
+ ASSERT_NE(ev_result_iconic, nullptr) << "result is NULL"; \
+ ASSERT_FALSE(ev_result_iconic->isTimeout) << "waitEvent timeout (1.0 sec)"; \
+ ASSERT_TRUE(ev_result_iconic->result) << "waitEvent failed"; \
+ ASSERT_TRUE(ev_result_iconic->isIconified()) << "Window is uniconified"; \
+ } while (0)
+
+#define ASSERT_UNICONIFIED(TEST_WINDOW) \
+ do { \
+ ASSERT_NE(TEST_WINDOW, nullptr) << "Window is NULL"; \
+ ev_result_iconic = std::static_pointer_cast<iconicStateEventItem>(etRunner::get().waitEvent(TEST_WINDOW, E_TC_EVENT_TYPE_ICONIC_STATE_CHANGED)); \
+ ASSERT_NE(ev_result_iconic, nullptr) << "result is NULL"; \
+ ASSERT_FALSE(ev_result_iconic->isTimeout) << "waitEvent timeout (1.0 sec)"; \
+ ASSERT_TRUE(ev_result_iconic->result) << "waitEvent failed"; \
+ ASSERT_TRUE(ev_result_iconic->isUniconified()) << "Window is iconified"; \
+ } while (0)
+
+
#define CAPTURE_WIDTH 720
#define CAPTURE_HEIGHT 1280
#define PNG_DEPTH 8