summaryrefslogtreecommitdiffstats
path: root/ui
diff options
context:
space:
mode:
Diffstat (limited to 'ui')
-rw-r--r--ui/aura/gestures/gesture_recognizer_unittest.cc31
-rw-r--r--ui/aura/test/aura_test_base.cc1
-rw-r--r--ui/base/gestures/gesture_configuration.h1
-rw-r--r--ui/base/gestures/gesture_sequence.cc24
-rw-r--r--ui/base/gestures/gesture_types.cc11
-rw-r--r--ui/base/gestures/gesture_types.h22
6 files changed, 35 insertions, 55 deletions
diff --git a/ui/aura/gestures/gesture_recognizer_unittest.cc b/ui/aura/gestures/gesture_recognizer_unittest.cc
index 3f52c1a..db1bd15 100644
--- a/ui/aura/gestures/gesture_recognizer_unittest.cc
+++ b/ui/aura/gestures/gesture_recognizer_unittest.cc
@@ -51,9 +51,7 @@ class GestureEventConsumeDelegate : public TestWindowDelegate {
scroll_x_(0),
scroll_y_(0),
velocity_x_(0),
- velocity_y_(0),
- radius_x_(0),
- radius_y_(0) {
+ velocity_y_(0) {
}
virtual ~GestureEventConsumeDelegate() {}
@@ -81,8 +79,6 @@ class GestureEventConsumeDelegate : public TestWindowDelegate {
scroll_y_ = 0;
velocity_x_ = 0;
velocity_y_ = 0;
- radius_x_ = 0;
- radius_y_ = 0;
}
bool tap() const { return tap_; }
@@ -113,14 +109,12 @@ class GestureEventConsumeDelegate : public TestWindowDelegate {
int touch_id() const { return touch_id_; }
float velocity_x() const { return velocity_x_; }
float velocity_y() const { return velocity_y_; }
- float radius_x() const { return radius_x_; }
- float radius_y() const { return radius_y_; }
+ const gfx::Rect& bounding_box() const { return bounding_box_; }
virtual ui::GestureStatus OnGestureEvent(GestureEvent* gesture) OVERRIDE {
+ bounding_box_ = gesture->details().bounding_box();
switch (gesture->type()) {
case ui::ET_GESTURE_TAP:
- radius_x_ = gesture->details().radius_x();
- radius_y_ = gesture->details().radius_y();
tap_location_ = gesture->location();
tap_ = true;
break;
@@ -200,9 +194,8 @@ class GestureEventConsumeDelegate : public TestWindowDelegate {
float scroll_y_;
float velocity_x_;
float velocity_y_;
- int radius_x_;
- int radius_y_;
int touch_id_;
+ gfx::Rect bounding_box_;
DISALLOW_COPY_AND_ASSIGN(GestureEventConsumeDelegate);
};
@@ -489,8 +482,8 @@ TEST_F(GestureRecognizerTest, GestureEventTapRegion) {
EXPECT_FALSE(delegate->scroll_end());
gfx::Point actual_point(delegate->tap_location());
- EXPECT_EQ(12, delegate->radius_x());
- EXPECT_EQ(12, delegate->radius_y());
+ EXPECT_EQ(24, delegate->bounding_box().width());
+ EXPECT_EQ(24, delegate->bounding_box().height());
EXPECT_EQ(100, actual_point.x());
EXPECT_EQ(200, actual_point.y());
}
@@ -530,8 +523,8 @@ TEST_F(GestureRecognizerTest, GestureEventTapRegion) {
EXPECT_FALSE(delegate->scroll_end());
gfx::Point actual_point(delegate->tap_location());
- EXPECT_EQ(23, delegate->radius_x());
- EXPECT_EQ(20, delegate->radius_y());
+ EXPECT_EQ(46, delegate->bounding_box().width());
+ EXPECT_EQ(40, delegate->bounding_box().height());
EXPECT_EQ(373, actual_point.x());
EXPECT_EQ(290, actual_point.y());
}
@@ -587,8 +580,8 @@ TEST_F(GestureRecognizerTest, GestureEventTapRegion) {
EXPECT_FALSE(delegate->scroll_end());
gfx::Point actual_point(delegate->tap_location());
- EXPECT_EQ(14, delegate->radius_x());
- EXPECT_EQ(14, delegate->radius_y());
+ EXPECT_EQ(28, delegate->bounding_box().width());
+ EXPECT_EQ(28, delegate->bounding_box().height());
EXPECT_EQ(49, actual_point.x());
EXPECT_EQ(200, actual_point.y());
}
@@ -676,8 +669,8 @@ TEST_F(GestureRecognizerTest, GestureEventTapRegion) {
EXPECT_FALSE(delegate->scroll_end());
gfx::Point actual_point(delegate->tap_location());
- EXPECT_EQ(17, delegate->radius_x());
- EXPECT_EQ(18, delegate->radius_y());
+ EXPECT_EQ(35, delegate->bounding_box().width());
+ EXPECT_EQ(36, delegate->bounding_box().height());
EXPECT_EQ(396, actual_point.x());
EXPECT_EQ(149, actual_point.y());
}
diff --git a/ui/aura/test/aura_test_base.cc b/ui/aura/test/aura_test_base.cc
index 977e344..e9609ee 100644
--- a/ui/aura/test/aura_test_base.cc
+++ b/ui/aura/test/aura_test_base.cc
@@ -43,6 +43,7 @@ void AuraTestBase::SetUp() {
ui::GestureConfiguration::set_points_buffered_for_velocity(10);
ui::GestureConfiguration::set_rail_break_proportion(15);
ui::GestureConfiguration::set_rail_start_proportion(2);
+ ui::GestureConfiguration::set_default_radius(0);
helper_.reset(new AuraTestHelper(&message_loop_));
helper_->SetUp();
}
diff --git a/ui/base/gestures/gesture_configuration.h b/ui/base/gestures/gesture_configuration.h
index 206ce91..1b0caa4 100644
--- a/ui/base/gestures/gesture_configuration.h
+++ b/ui/base/gestures/gesture_configuration.h
@@ -21,6 +21,7 @@ class UI_EXPORT GestureConfiguration {
static int default_radius() {
return default_radius_;
}
+ static void set_default_radius(int radius) { default_radius_ = radius; }
static double long_press_time_in_seconds() {
return long_press_time_in_seconds_;
}
diff --git a/ui/base/gestures/gesture_sequence.cc b/ui/base/gestures/gesture_sequence.cc
index e8d5790..c582580 100644
--- a/ui/base/gestures/gesture_sequence.cc
+++ b/ui/base/gestures/gesture_sequence.cc
@@ -493,14 +493,15 @@ void GestureSequence::RecreateBoundingBox() {
for (int i = 0; i < kMaxGesturePoints; ++i) {
if (!points_[i].in_use())
continue;
- if (left > points_[i].x())
- left = points_[i].x();
- if (right < points_[i].x())
- right = points_[i].x();
- if (top > points_[i].y())
- top = points_[i].y();
- if (bottom < points_[i].y())
- bottom = points_[i].y();
+ gfx::Rect rect = points_[i].enclosing_rectangle();
+ if (left > rect.x())
+ left = rect.x();
+ if (right < rect.right())
+ right = rect.right();
+ if (top > rect.y())
+ top = rect.y();
+ if (bottom < rect.bottom())
+ bottom = rect.bottom();
}
bounding_box_last_center_ = bounding_box_.CenterPoint();
bounding_box_.SetRect(left, top, right - left, bottom - top);
@@ -559,6 +560,7 @@ GestureEvent* GestureSequence::CreateGestureEvent(
unsigned int touch_id_bitmask) {
GestureEventDetails gesture_details(details);
gesture_details.set_touch_points(point_count_);
+ gesture_details.set_bounding_box(bounding_box_);
return helper_->CreateGestureEvent(gesture_details, location, flags,
timestamp, touch_id_bitmask);
}
@@ -576,7 +578,7 @@ void GestureSequence::AppendTapDownGestureEvent(const GesturePoint& point,
void GestureSequence::AppendBeginGestureEvent(const GesturePoint& point,
Gestures* gestures) {
gestures->push_back(CreateGestureEvent(
- GestureEventDetails(ui::ET_GESTURE_BEGIN, point_count_, 0),
+ GestureEventDetails(ui::ET_GESTURE_BEGIN, 0, 0),
point.first_touch_position(),
flags_,
base::Time::FromDoubleT(point.last_touch_time()),
@@ -586,7 +588,7 @@ void GestureSequence::AppendBeginGestureEvent(const GesturePoint& point,
void GestureSequence::AppendEndGestureEvent(const GesturePoint& point,
Gestures* gestures) {
gestures->push_back(CreateGestureEvent(
- GestureEventDetails(ui::ET_GESTURE_END, point_count_, 0),
+ GestureEventDetails(ui::ET_GESTURE_END, 0, 0),
point.first_touch_position(),
flags_,
base::Time::FromDoubleT(point.last_touch_time()),
@@ -598,7 +600,7 @@ void GestureSequence::AppendClickGestureEvent(const GesturePoint& point,
gfx::Rect er = point.enclosing_rectangle();
gfx::Point center = er.CenterPoint();
gestures->push_back(CreateGestureEvent(
- GestureEventDetails(ui::ET_GESTURE_TAP, er.width() / 2, er.height() / 2),
+ GestureEventDetails(ui::ET_GESTURE_TAP, 0, 0),
center,
flags_,
base::Time::FromDoubleT(point.last_touch_time()),
diff --git a/ui/base/gestures/gesture_types.cc b/ui/base/gestures/gesture_types.cc
index 8c18e56..2d32980 100644
--- a/ui/base/gestures/gesture_types.cc
+++ b/ui/base/gestures/gesture_types.cc
@@ -22,22 +22,11 @@ GestureEventDetails::GestureEventDetails(ui::EventType type,
data.velocity.y = delta_y;
break;
- case ui::ET_GESTURE_TAP:
- data.radius.x = delta_x;
- data.radius.y = delta_y;
- break;
-
case ui::ET_GESTURE_LONG_PRESS:
data.touch_id = static_cast<int>(delta_x);
CHECK_EQ(0.f, delta_y) << "Unknown data in delta_y for long press.";
break;
- case ui::ET_GESTURE_BEGIN:
- case ui::ET_GESTURE_END:
- set_touch_points(static_cast<int>(delta_x));
- CHECK_EQ(0.f, delta_y) << "Unknown data in delta_y for begin/end";
- break;
-
case ui::ET_GESTURE_PINCH_UPDATE:
data.scale = delta_x;
CHECK_EQ(0.f, delta_y) << "Unknown data in delta_y for pinch";
diff --git a/ui/base/gestures/gesture_types.h b/ui/base/gestures/gesture_types.h
index 6dd39b6..56dad14 100644
--- a/ui/base/gestures/gesture_types.h
+++ b/ui/base/gestures/gesture_types.h
@@ -8,6 +8,7 @@
#include "base/logging.h"
#include "base/time.h"
#include "ui/base/events.h"
+#include "ui/gfx/rect.h"
namespace ui {
@@ -20,6 +21,9 @@ struct UI_EXPORT GestureEventDetails {
int touch_points() const { return touch_points_; }
void set_touch_points(int touch_points) { touch_points_ = touch_points; }
+ const gfx::Rect& bounding_box() const { return bounding_box_; }
+ void set_bounding_box(const gfx::Rect& box) { bounding_box_ = box; }
+
float scroll_x() const {
CHECK_EQ(ui::ET_GESTURE_SCROLL_UPDATE, type_);
return data.scroll.x;
@@ -38,15 +42,6 @@ struct UI_EXPORT GestureEventDetails {
return data.velocity.y;
}
- float radius_x() const {
- CHECK_EQ(ui::ET_GESTURE_TAP, type_);
- return data.radius.x;
- }
- float radius_y() const {
- CHECK_EQ(ui::ET_GESTURE_TAP, type_);
- return data.radius.y;
- }
-
int touch_id() const {
CHECK_EQ(ui::ET_GESTURE_LONG_PRESS, type_);
return data.touch_id;
@@ -97,11 +92,6 @@ struct UI_EXPORT GestureEventDetails {
float y;
} velocity;
- struct { // TAP radius.
- float x;
- float y;
- } radius;
-
int touch_id; // LONG_PRESS touch-id.
struct { // SWIPE direction.
@@ -118,6 +108,10 @@ struct UI_EXPORT GestureEventDetails {
} data;
int touch_points_; // Number of active touch points in the gesture.
+
+ // Bounding box is an axis-aligned rectangle that contains all the
+ // enclosing rectangles of the touch-points in the gesture.
+ gfx::Rect bounding_box_;
};
// An abstract type to represent touch-events. The gesture-recognizer uses this