etRunner::get().finishWork();
}
+static void
+_cb_geometry(void *data EINA_UNUSED,
+ struct wl_output *wl_output EINA_UNUSED,
+ int x, int y, int w, int h,
+ int subpixel EINA_UNUSED,
+ const char *make EINA_UNUSED,
+ const char *model EINA_UNUSED,
+ int transform EINA_UNUSED)
+{
+ etRunner::get().output.x = x;
+ etRunner::get().output.y = y;
+ etRunner::get().output.w = w;
+ etRunner::get().output.h = h;
+}
+
+static void
+_cb_mode(void *data EINA_UNUSED,
+ struct wl_output *wl_output EINA_UNUSED,
+ unsigned int flags,
+ int w, int h,
+ int refresh EINA_UNUSED)
+{
+ if (flags & WL_OUTPUT_MODE_CURRENT)
+ {
+ etRunner::get().output.w = w;
+ etRunner::get().output.h = h;
+ }
+
+ etRunner::get().finishWork();
+}
+
+static void
+_cb_done(void *data EINA_UNUSED,
+ struct wl_output *output EINA_UNUSED)
+{
+ ;
+}
+
+static void
+_cb_scale(void *data EINA_UNUSED,
+ struct wl_output *output EINA_UNUSED,
+ int scale EINA_UNUSED)
+{
+ ;
+}
+
/* callbacks - method */
static void _cb_method_win_info_get(void *data, const Eldbus_Message *msg, Eldbus_Pending *p);
static void _cb_method_win_info_list_get(void *data, const Eldbus_Message *msg, Eldbus_Pending *p);
/* callbacks - gesture */
static Eina_Bool _cb_gesture_tap(void *data, int type, void *event);
+static Eina_Bool _cb_gesture_edge_swipe(void *data, int type, void *event);
/* functions - gesture */
static void _gesture_tap_generate(etRunner *runner);
+static void _gesture_edge_swipe_generate(etRunner *runner);
/**********************
listeners
_cb_resource_id,
};
+static const struct wl_output_listener _e_test_output_listener =
+{
+ _cb_geometry,
+ _cb_mode,
+ _cb_done,
+ _cb_scale
+};
+
/**********************
class etRunner
**********************/
_gesture_tap_generate(this);
break;
+ case E_TC_EVENT_TYPE_GESTURE_EDGE_SWIPE:
+ eh = ecore_event_handler_add(EFL_UTIL_EVENT_GESTURE_EDGE_SWIPE, _cb_gesture_edge_swipe, this);
+ _gesture_edge_swipe_generate(this);
+ break;
+
default:
goto finish;
break;
&tizen_launch_effect_interface,
(global->version > 1)? 1 : global->version);
}
+ if (!strcmp(global->interface, "wl_output"))
+ {
+ wlOutput = (struct wl_output *)
+ wl_registry_bind(registry,
+ global->id,
+ &wl_output_interface,
+ (global->version > 2)? 2 : global->version);
+ wl_output_add_listener(wlOutput, &_e_test_output_listener, NULL);
+
+ work();
+
+ if (wlOutput)
+ {
+ wl_output_destroy(wlOutput);
+ wlOutput = NULL;
+ }
+ }
}
EINA_SAFETY_ON_NULL_GOTO(tzPolicy, err);
}
}
- runner->ev.gesture.tap.timer = NULL;
+ runner->ev.gesture.timer = NULL;
runner->ev.gesture.tap.pressed = !runner->ev.gesture.tap.pressed;
if (!runner->ev.gesture.tap.pressed)
if (runner->ev.gesture.tap.current_repeats > 0)
{
- runner->ev.gesture.tap.timer = ecore_timer_add(0.11,
- _cb_gesture_tap_delay_timer,
- runner);
+ runner->ev.gesture.timer = ecore_timer_add(0.11,
+ _cb_gesture_tap_delay_timer,
+ runner);
}
return ECORE_CALLBACK_CANCEL;
runner->ev.gesture.tap.current_repeats = runner->ev.gesture.tap.repeats;
runner->ev.gesture.tap.pressed = EINA_FALSE;
- runner->ev.gesture.tap.timer = ecore_timer_add(1.0,
- _cb_gesture_tap_delay_timer,
- runner);
+ runner->ev.gesture.timer = ecore_timer_add(1.0,
+ _cb_gesture_tap_delay_timer,
+ runner);
}
+
+static Eina_Bool
+_cb_gesture_edge_swipe(void *data, int type, void *event)
+{
+ etRunner *runner = (etRunner *)data;
+ efl_util_event_gesture_edge_swipe_s *ev =
+ (efl_util_event_gesture_edge_swipe_s *)event;
+
+ if ((ev->fingers == (unsigned int)runner->ev.gesture.edge_swipe.fingers) &&
+ (ev->edge == (unsigned int)runner->ev.gesture.edge_swipe.edge))
+ {
+ runner->ev.response = E_TC_EVENT_TYPE_GESTURE_EDGE_SWIPE;
+ if (runner->ev.gesture.timer)
+ {
+ runner->ev.gesture.edge_swipe.get_event = EINA_TRUE;
+ }
+ else
+ elm_exit();
+ }
+
+ return ECORE_CALLBACK_PASS_ON;
+}
+
+static Eina_Bool
+_cb_gesture_edge_swipe_delay_timer(void *data)
+{
+ etRunner *runner = (etRunner *)data;
+ int i, cnt, fingers, w, h;
+ efl_util_gesture_edge_e edge;
+
+ cnt = ++runner->ev.gesture.edge_swipe.touch_count;
+ fingers = runner->ev.gesture.edge_swipe.fingers;
+ edge = runner->ev.gesture.edge_swipe.edge;
+ w = runner->output.w - 1;
+ h = runner->output.h - 1;
+
+ if (cnt == 1)
+ {
+ for (i = 0; i < fingers; i++)
+ {
+ switch (edge)
+ {
+ case EFL_UTIL_GESTURE_EDGE_TOP:
+ runner->generateTouchDown(i, 100 * (i + 1), 1);
+ break;
+ case EFL_UTIL_GESTURE_EDGE_RIGHT:
+ runner->generateTouchDown(i, w - 1, 100 * (i + 1));
+ break;
+ case EFL_UTIL_GESTURE_EDGE_BOTTOM:
+ runner->generateTouchDown(i, 100 * (i + 1), h - 1);
+ break;
+ case EFL_UTIL_GESTURE_EDGE_LEFT:
+ runner->generateTouchDown(i, 1, 100 * (i + 1));
+ break;
+ default:
+ break;
+ }
+ }
+ }
+ else if (cnt < 5)
+ {
+ for (i = 0; i < fingers; i++)
+ {
+ switch (edge)
+ {
+ case EFL_UTIL_GESTURE_EDGE_TOP:
+ runner->generateTouchMove(i, 100 * (i + 1), 40 * cnt * cnt);
+ break;
+ case EFL_UTIL_GESTURE_EDGE_RIGHT:
+ runner->generateTouchMove(i, (w - 1) - (40 * cnt * cnt), 100 * (i + 1));
+ break;
+ case EFL_UTIL_GESTURE_EDGE_BOTTOM:
+ runner->generateTouchMove(i, 100 * (i + 1), (h - 1) - (40 * cnt * cnt));
+ break;
+ case EFL_UTIL_GESTURE_EDGE_LEFT:
+ runner->generateTouchMove(i, 40 * cnt * cnt, 100 * (i + 1));
+ break;
+ default:
+ break;
+ }
+ }
+ }
+ else
+ {
+ cnt--;
+ for (i = 0; i < fingers; i++)
+ {
+ switch (edge)
+ {
+ case EFL_UTIL_GESTURE_EDGE_TOP:
+ runner->generateTouchUp(i, 100 * (i + 1), 40 * cnt * cnt);
+ break;
+ case EFL_UTIL_GESTURE_EDGE_RIGHT:
+ runner->generateTouchUp(i, (w - 1) - (40 * cnt * cnt), 100 * (i + 1));
+ break;
+ case EFL_UTIL_GESTURE_EDGE_BOTTOM:
+ runner->generateTouchUp(i, 100 * (i + 1), (h - 1) - (40 * cnt * cnt));
+ break;
+ case EFL_UTIL_GESTURE_EDGE_LEFT:
+ runner->generateTouchUp(i, 40 * cnt * cnt, 100 * (i + 1));
+ break;
+ default:
+ break;
+ }
+ }
+
+ runner->ev.gesture.timer = NULL;
+ if (runner->ev.gesture.edge_swipe.get_event)
+ {
+ runner->ev.gesture.edge_swipe.get_event = EINA_FALSE;
+ elm_exit();
+ }
+ return ECORE_CALLBACK_CANCEL;
+ }
+
+ runner->ev.gesture.timer = NULL;
+ runner->ev.gesture.timer = ecore_timer_add(0.11,
+ _cb_gesture_edge_swipe_delay_timer,
+ runner);
+
+ return ECORE_CALLBACK_CANCEL;
+}
+
+static void
+_gesture_edge_swipe_generate(etRunner *runner)
+{
+ runner->ev.gesture.edge_swipe.touch_count = 0;
+ runner->ev.gesture.edge_swipe.get_event = EINA_FALSE;
+
+ runner->ev.gesture.timer = ecore_timer_add(1.0,
+ _cb_gesture_edge_swipe_delay_timer,
+ runner);
+}
+
etWin *tw_topposition = NULL;
etWin *tw_orexcl = NULL;
etWin *tw_excl = NULL;
+ etWin *tw_gesture = NULL;
};
TEST_F(etTestInput, keygrab_nowin_shared)
efl_util_gesture_tap_free(gesture_h, tap_d);
ASSERT_TRUE(ret == EFL_UTIL_ERROR_NONE) << "failed to free tap grab data: (ret: "
<< EFL_UTIL_RETURN_TO_STRING(ret) << ")";
+}
+
+static void
+_test_gesture_edge_swipe(int fingers, efl_util_gesture_edge_e edge)
+{
+ int ret = EFL_UTIL_ERROR_NONE;
+ efl_util_gesture_h gesture_h;
+ efl_util_gesture_data edge_swipe_d;
+
+ gesture_h = efl_util_gesture_initialize();
+ ASSERT_TRUE(gesture_h != NULL) << "failed to initialize gesture system";
+
+ edge_swipe_d = efl_util_gesture_edge_swipe_new(gesture_h, fingers, edge);
+ ASSERT_TRUE(edge_swipe_d != NULL) << "failed to generate edge swipe grab data";
+
+ ret = efl_util_gesture_grab(gesture_h, edge_swipe_d);
+ ASSERT_TRUE(ret == EFL_UTIL_ERROR_NONE) << "failed to grab edge swipe gesture: (ret: "
+ << EFL_UTIL_RETURN_TO_STRING(ret) << ")";
+
+ etRunner::get().ev.gesture.edge_swipe.fingers = fingers;
+ etRunner::get().ev.gesture.edge_swipe.edge = edge;
+
+ ret = etRunner::get().waitEvent(E_TC_EVENT_TYPE_GESTURE_EDGE_SWIPE);
+ ASSERT_TRUE(ret);
+
+ etRunner::get().ev.gesture.edge_swipe.fingers = 0;
+ etRunner::get().ev.gesture.edge_swipe.edge = EFL_UTIL_GESTURE_EDGE_NONE;;
+
+ ret = efl_util_gesture_ungrab(gesture_h, edge_swipe_d);
+ ASSERT_TRUE(ret == EFL_UTIL_ERROR_NONE) << "failed to grab edge swipe gesture: (ret: "
+ << EFL_UTIL_RETURN_TO_STRING(ret) << ")";
+
+ ret = efl_util_gesture_edge_swipe_free(gesture_h, edge_swipe_d);
+ ASSERT_TRUE(ret == EFL_UTIL_ERROR_NONE) << "failed to free tap grab data: (ret: "
+ << EFL_UTIL_RETURN_TO_STRING(ret) << ")";
+
+ ret = efl_util_gesture_deinitialize(gesture_h);
+ ASSERT_TRUE(ret == EFL_UTIL_ERROR_NONE) << "failed to deinitialize gesture system: (ret: "
+ << EFL_UTIL_RETURN_TO_STRING(ret) << ")";
+}
+
+TEST_F(etTestInput, gesture_edge_swipe11)
+{
+ _test_gesture_edge_swipe(1, EFL_UTIL_GESTURE_EDGE_TOP);
+}
+
+TEST_F(etTestInput, gesture_edge_swipe12)
+{
+ _test_gesture_edge_swipe(1, EFL_UTIL_GESTURE_EDGE_RIGHT);
+}
+
+TEST_F(etTestInput, gesture_edge_swipe13)
+{
+ _test_gesture_edge_swipe(1, EFL_UTIL_GESTURE_EDGE_BOTTOM);
+}
+
+TEST_F(etTestInput, gesture_edge_swipe14)
+{
+ _test_gesture_edge_swipe(1, EFL_UTIL_GESTURE_EDGE_LEFT);
+}
+
+TEST_F(etTestInput, gesture_edge_swipe21)
+{
+ _test_gesture_edge_swipe(2, EFL_UTIL_GESTURE_EDGE_TOP);
+}
+
+TEST_F(etTestInput, gesture_edge_swipe22)
+{
+ _test_gesture_edge_swipe(2, EFL_UTIL_GESTURE_EDGE_RIGHT);
+}
+
+TEST_F(etTestInput, gesture_edge_swipe23)
+{
+ _test_gesture_edge_swipe(2, EFL_UTIL_GESTURE_EDGE_BOTTOM);
+}
+
+TEST_F(etTestInput, gesture_edge_swipe24)
+{
+ _test_gesture_edge_swipe(2, EFL_UTIL_GESTURE_EDGE_LEFT);
}
\ No newline at end of file