Exemplo n.º 1
0
static void _drag_stop_cb(void *data, Evas_Object *scroller, void *event_info)
{
	Evas_Coord x, y, w, h;
	int previous_x;

	_D("Invoked");

	elm_scroller_region_get(scroller, &x, &y, &w, &h);
	previous_x = (int) evas_object_data_get(scroller, "previous_x");
	if (x == previous_x) {
		_D("Hold scroller (previous) %d (current) %d", previous_x, x);
	}

	/* page_scroller_focus & index_bring_in in _drag_stop_cb & _anim_stop_cb */
	do {
		if (x % w) return;

		int cur_idx = page_scroller_get_current_page_no(scroller);
		int idx = 0;
		if (w) idx = x / w;

		if (cur_idx == idx) return;

		page_scroller_bring_in(scroller, idx);
		page_scroller_focus(scroller);
	} while (0);
}
Exemplo n.º 2
0
static void _drag_start_cb(void *data, Evas_Object *scroller, void *event_info)
{
	int previous_x;

	_D("Invoked");

	elm_scroller_region_get(scroller, &previous_x, NULL, NULL, NULL);
	evas_object_data_set(scroller, "previous_x", (void *) previous_x);
	evas_object_data_set(scroller, "drag_start", (void *) 1);
}
Exemplo n.º 3
0
static void _anim_stop_cb(void *data, Evas_Object *scroller, void *event_info)
{
	_D("stop the scroller(%p) animation", scroller);

	/* page_scroller_focus & index_bring_in in _drag_stop_cb & _anim_stop_cb */
	do {
		Evas_Coord x, y, w, h;
		elm_scroller_region_get(scroller, &x, &y, &w, &h);

		if (x % w) return;

		int cur_idx = page_scroller_get_current_page_no(scroller);
		int idx = 0;
		if (w) idx = x / w;
		if (cur_idx == idx) return;

		page_scroller_bring_in(scroller, idx);
		page_scroller_focus(scroller);
	} while (0);

}
const Eflxx::Rect Scroller::getRegion () const
{
  Evas_Coord x, y, w, h;
  elm_scroller_region_get (o, &x, &y, &w, &h);
  return Eflxx::Rect (x, y, w, h);
}