string GestureDetector::get_button_name(unsigned btn) const
{
- if(btn==GESTURE_SWIPE_DOWN)
- return "Swipe down";
- else if(btn==GESTURE_SWIPE_UP)
- return "Swipe up";
- else if(btn==GESTURE_SWIPE_LEFT)
- return "Swipe left";
- else if(btn==GESTURE_SWIPE_RIGHT)
- return "Swipe right";
+ if(btn==GESTURE_DRAG)
+ return "Drag";
else if(btn==GESTURE_PINCH)
return "Pinch";
else
}
else
{
- // Allow a maximum deviation of about 26° to recognize a swipe gesture.
- if(abs(p.x)>2*abs(p.y))
- current_gesture = (p.x>0 ? GESTURE_SWIPE_RIGHT : GESTURE_SWIPE_LEFT);
- else if(abs(p.y)>2*abs(p.x))
- current_gesture = (p.y>0 ? GESTURE_SWIPE_UP : GESTURE_SWIPE_DOWN);
- else
- invalid_gesture = true;
-
- if(current_gesture!=GESTURE_NONE)
- {
- active_points = 1;
- set_axis_value(0, p.down_x, true);
- set_axis_value(1, p.down_y, true);
- }
+ current_gesture = GESTURE_DRAG;
+ active_points = 1;
+ set_axis_value(0, p.down_x, true);
+ set_axis_value(1, p.down_y, true);
}
update_progress();
{
TouchPoint &p = points[0];
- if(current_gesture==GESTURE_SWIPE_DOWN)
- set_axis_value(2, -p.y, true);
- else if(current_gesture==GESTURE_SWIPE_UP)
- set_axis_value(2, p.y, true);
- else if(current_gesture==GESTURE_SWIPE_LEFT)
- set_axis_value(2, -p.x, true);
- else if(current_gesture==GESTURE_SWIPE_RIGHT)
+ if(current_gesture==GESTURE_DRAG)
+ {
set_axis_value(2, p.x, true);
+ set_axis_value(3, p.y, true);
+ }
else if(current_gesture==GESTURE_PINCH)
{
TouchPoint &p2 = points[1];
float dx = ddx+p.x-p2.x;
float dy = ddy+p.y-p2.y;
set_axis_value(2, sqrt(dx*dx+dy*dy)/sqrt(ddx*ddx+ddy*ddy)-1, true);
+ set_axis_value(3, 0, true);
}
}