#include "base/android/scoped_java_ref.h"
#include "base/memory/scoped_ptr.h"
#include "base/time/time.h"
+#include "content/common/content_export.h"
#include "ui/events/gesture_detection/motion_event.h"
#include "ui/gfx/geometry/point_f.h"
// Implementation of ui::MotionEvent wrapping a native Android MotionEvent.
// All *input* coordinates are in device pixels (as with Android MotionEvent),
// while all *output* coordinates are in DIPs (as with WebTouchEvent).
-class MotionEventAndroid : public ui::MotionEvent {
+class CONTENT_EXPORT MotionEventAndroid : public ui::MotionEvent {
public:
// Forcing the caller to provide all cached values upon construction
// eliminates the need to perform a JNI call to retrieve values individually.
jint pointer_id_1,
jfloat touch_major_0_pixels,
jfloat touch_major_1_pixels,
+ jfloat touch_minor_0_pixels,
+ jfloat touch_minor_1_pixels,
+ jfloat orientation_0_rad,
+ jfloat orientation_1_rad,
jfloat raw_pos_x_pixels,
- jfloat raw_pos_y_pixels);
+ jfloat raw_pos_y_pixels,
+ jint android_tool_type_0,
+ jint android_tool_type_1,
+ jint android_button_state,
+ jint meta_state);
virtual ~MotionEventAndroid();
// ui::MotionEvent methods.
virtual float GetRawX(size_t pointer_index) const OVERRIDE;
virtual float GetRawY(size_t pointer_index) const OVERRIDE;
virtual float GetTouchMajor(size_t pointer_index) const OVERRIDE;
+ virtual float GetTouchMinor(size_t pointer_index) const OVERRIDE;
+ virtual float GetOrientation(size_t pointer_index) const OVERRIDE;
virtual float GetPressure(size_t pointer_index) const OVERRIDE;
virtual base::TimeTicks GetEventTime() const OVERRIDE;
virtual size_t GetHistorySize() const OVERRIDE;
size_t historical_index) const OVERRIDE;
virtual float GetHistoricalY(size_t pointer_index,
size_t historical_index) const OVERRIDE;
+ virtual ToolType GetToolType(size_t pointer_index) const OVERRIDE;
+ virtual int GetButtonState() const OVERRIDE;
+ virtual int GetFlags() const OVERRIDE;
virtual scoped_ptr<MotionEvent> Clone() const OVERRIDE;
virtual scoped_ptr<MotionEvent> Cancel() const OVERRIDE;
// Additional Android MotionEvent methods.
- float GetTouchMinor() const { return GetTouchMinor(0); }
- float GetTouchMinor(size_t pointer_index) const;
- float GetOrientation() const;
base::TimeTicks GetDownTime() const;
static bool RegisterMotionEventAndroid(JNIEnv* env);
gfx::PointF cached_positions_[MAX_POINTERS_TO_CACHE];
int cached_pointer_ids_[MAX_POINTERS_TO_CACHE];
float cached_touch_majors_[MAX_POINTERS_TO_CACHE];
+ float cached_touch_minors_[MAX_POINTERS_TO_CACHE];
+ float cached_orientations_[MAX_POINTERS_TO_CACHE];
gfx::Vector2dF cached_raw_position_offset_;
+ ToolType cached_tool_types_[MAX_POINTERS_TO_CACHE];
+ int cached_button_state_;
+ int cached_flags_;
// Used to convert pixel coordinates from the Java-backed MotionEvent to
// DIP coordinates cached/returned by the MotionEventAndroid.