static void _cb_evas_key_down(void * data, Evas * evas, Evas_Object * obj, void * event_info);
static void _cb_evas_key_up(void * data, Evas * evas, Evas_Object * obj, void * event_info);
+static void _cb_evas_mouse_in(void *data, Evas *evas, Evas_Object *obj, void *event_info);
+static void _cb_evas_mouse_out(void *data, Evas *evas, Evas_Object *obj, void *event_info);
+
/* callbacks - smart */
static void _cb_evas_smart_cb_effect_started(void *data, Evas_Object * obj, void *event_info);
static void _cb_evas_smart_cb_effect_done(void *data, Evas_Object * obj, void *event_info);
ev.key.evas_state = EINA_FALSE;
}
+ else if (ev_type == E_TC_EVENT_TYPE_INPUT_EVAS_MOUSE_IN)
+ {
+ ev.elm_win = win->elm_win;
+ ev.native_win = win->native_win;
+ evas_object_event_callback_add(this->ev.elm_win, EVAS_CALLBACK_MOUSE_IN, _cb_evas_mouse_in, this);
+ }
+ else if (ev_type == E_TC_EVENT_TYPE_INPUT_EVAS_MOUSE_OUT)
+ {
+ ev.elm_win = win->elm_win;
+ ev.native_win = win->native_win;
+ evas_object_event_callback_add(this->ev.elm_win, EVAS_CALLBACK_MOUSE_OUT, _cb_evas_mouse_out, this);
+ }
// pre-waiting events
if ((ev_type == E_TC_EVENT_TYPE_INPUT_ECORE_KEY) ||
evas_object_event_callback_del(runner->ev.elm_win, EVAS_CALLBACK_KEY_UP, _cb_evas_key_up);
}
+static void
+_cb_evas_mouse_in(void *data, Evas * evas, Evas_Object * obj, void * event_info)
+{
+ etRunner *runner = (etRunner *)data;
+
+ if (runner->ev.elm_win == obj)
+ {
+ runner->insertEventQueue(runner->ev.native_win, E_TC_EVENT_TYPE_INPUT_EVAS_MOUSE_IN);
+ }
+
+ evas_object_event_callback_del(runner->ev.elm_win, EVAS_CALLBACK_MOUSE_IN, _cb_evas_mouse_in);
+}
+
+static void
+_cb_evas_mouse_out(void *data, Evas * evas, Evas_Object * obj, void * event_info)
+{
+ etRunner *runner = (etRunner *)data;
+
+ if (runner->ev.elm_win == obj)
+ {
+ runner->insertEventQueue(runner->ev.native_win, E_TC_EVENT_TYPE_INPUT_EVAS_MOUSE_OUT);
+ }
+
+ evas_object_event_callback_del(runner->ev.elm_win, EVAS_CALLBACK_MOUSE_OUT, _cb_evas_mouse_out);
+}
+
/* callbacks - smart object */
static void
_cb_evas_smart_cb_effect_started(void *data, Evas_Object * obj, void *event_info)
E_TC_EVENT_TYPE_INPUT_ECORE_MOUSE,
E_TC_EVENT_TYPE_INPUT_ECORE_MOUSE_RELATIVE_MOVE,
E_TC_EVENT_TYPE_INPUT_EVAS_KEY,
+ E_TC_EVENT_TYPE_INPUT_EVAS_MOUSE_IN,
+ E_TC_EVENT_TYPE_INPUT_EVAS_MOUSE_OUT,
E_TC_EVENT_TYPE_EFFECT_EVAS_CB,
E_TC_EVENT_TYPE_EFFECT,
E_TC_EVENT_TYPE_GESTURE_TAP,
ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
}
+TEST_F(etTestInput, mouse_in_and_out)
+{
+ int ret = EFL_UTIL_ERROR_NONE;
+
+ etWin *tw_big = initNormalWin("TCWin_TouchEvent_Big", 0, 0, 500, 500);
+ ASSERT_TRUE(tw_big != NULL) << "failed to initiation Big window";
+ showTCWin(tw_big);
+ ASSERT_VIS_ON(tw_big);
+
+ etWin *tw_small = initNormalWin("TCWin_TouchEvent_Small", 0, 0, 100, 100);
+ ASSERT_TRUE(tw_small != NULL) << "failed to initiation Small window";
+ showTCWin(tw_small);
+ ASSERT_VIS_ON(tw_small);
+
+ InputGenHandler inputgen_h = std::make_shared<etInputGenHandler>(EFL_UTIL_INPUT_DEVTYPE_TOUCHSCREEN, true);
+ etRunner::get().work(1.0); // wait for touch device enabled
+
+ ret = inputgen_h->generateTouchDown(0, 200, 200);
+ ASSERT_TRUE(ret);
+
+ ASSERT_EVENT(tw_big, E_TC_EVENT_TYPE_INPUT_EVAS_MOUSE_IN);
+
+ ret = inputgen_h->generateTouchUp(0, 200, 200);
+ ASSERT_TRUE(ret);
+
+ ret = inputgen_h->generateTouchDown(0, 50, 50);
+ ASSERT_TRUE(ret);
+
+ ret = inputgen_h->generateTouchUp(0, 50, 50);
+ ASSERT_TRUE(ret);
+
+ ASSERT_EVENT(tw_big, E_TC_EVENT_TYPE_INPUT_EVAS_MOUSE_OUT);
+
+ etRunner::get().ev.elm_win = NULL;
+
+ ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
+}
+
TEST_F(etTestInput, display_inputs_get)
{
Ecore_Wl2_Display *display = NULL;