Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(433)

Unified Diff: ui/android/view_android.h

Issue 2896993002: Route OnDragEvent through ViewAndroid tree (Closed)
Patch Set: rebase Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: ui/android/view_android.h
diff --git a/ui/android/view_android.h b/ui/android/view_android.h
index 1b219e8f840f813d8ad9d585e1b6caaccae2c4c5..de4be143ac51903cccb230bcc2e8fde87f4d9fde 100644
--- a/ui/android/view_android.h
+++ b/ui/android/view_android.h
@@ -18,6 +18,7 @@ class Layer;
}
namespace ui {
+class DragEventAndroid;
class EventForwarder;
class MotionEventAndroid;
class ViewClient;
@@ -63,13 +64,20 @@ class UI_ANDROID_EXPORT ViewAndroid {
};
// Layout parameters used to set the view's position and size.
- // Position is in parent's coordinate space.
+ // Position is in parent's coordinate space, and all the values
+ // are in CSS pixel.
struct LayoutParams {
static LayoutParams MatchParent() { return {true, 0, 0, 0, 0}; }
static LayoutParams Normal(int x, int y, int width, int height) {
return {false, x, y, width, height};
};
+ bool HitBy(const gfx::Point& point) {
boliu 2017/05/24 22:54:02 this should not be part of the public interface p
Jinsuk Kim 2017/05/25 03:18:19 Reverted (inlined it back).
+ if (match_parent)
+ return true;
+ return gfx::Rect(x, y, width, height).Contains(point);
+ }
+
bool match_parent; // Bounds matches that of the parent if true.
int x;
int y;
@@ -151,6 +159,8 @@ class UI_ANDROID_EXPORT ViewAndroid {
float GetDipScale();
+ bool HitBy(const gfx::Point& point);
boliu 2017/05/24 22:54:02 ditto does this need to be public?
Jinsuk Kim 2017/05/25 03:18:18 Mistake. changed to private.
+
protected:
ViewAndroid* parent_;
@@ -158,25 +168,29 @@ class UI_ANDROID_EXPORT ViewAndroid {
friend class EventForwarder;
friend class ViewAndroidBoundsTest;
- using ViewClientCallback =
- const base::Callback<bool(ViewClient*, const MotionEventAndroid&)>;
-
+ bool OnDragEvent(const DragEventAndroid& event);
bool OnTouchEvent(const MotionEventAndroid& event, bool for_touch_handle);
bool OnMouseEvent(const MotionEventAndroid& event);
bool OnMouseWheelEvent(const MotionEventAndroid& event);
void RemoveChild(ViewAndroid* child);
- bool HitTest(ViewClientCallback send_to_client,
- const MotionEventAndroid& event);
+ template <typename E, typename T>
+ bool HitTest(T send_to_client, const E& event, const gfx::Point& point);
+ static bool SendDragEventToClient(ViewClient* client,
+ const DragEventAndroid& event,
+ const gfx::Point& point);
static bool SendTouchEventToClient(bool for_touch_handle,
ViewClient* client,
- const MotionEventAndroid& event);
+ const MotionEventAndroid& event,
+ const gfx::Point& point);
static bool SendMouseEventToClient(ViewClient* client,
- const MotionEventAndroid& event);
+ const MotionEventAndroid& event,
+ const gfx::Point& point);
static bool SendMouseWheelEventToClient(ViewClient* client,
- const MotionEventAndroid& event);
+ const MotionEventAndroid& event,
+ const gfx::Point& point);
bool has_event_forwarder() const { return !!event_forwarder_; }

Powered by Google App Engine
This is Rietveld 408576698