#include "ui/events/gesture_detection/gesture_provider.h"
#include <stddef.h>
#include <cmath>
#include "base/memory/raw_ptr.h"
#include "base/time/time.h"
#include "base/trace_event/trace_event.h"
#include "ui/base/ui_base_features.h"
#include "ui/events/event_constants.h"
#include "ui/events/gesture_detection/gesture_configuration.h"
#include "ui/events/gesture_detection/gesture_event_data.h"
#include "ui/events/gesture_detection/gesture_listeners.h"
#include "ui/events/gesture_detection/scale_gesture_listeners.h"
#include "ui/events/types/event_type.h"
#include "ui/events/velocity_tracker/motion_event.h"
#include "ui/events/velocity_tracker/motion_event_generic.h"
#include "ui/gfx/geometry/point_f.h"
#include "ui/gfx/geometry/vector2d_f.h"
namespace ui {
namespace {
const float kDoubleTapDragZoomSpeed = …;
const char* GetMotionEventActionName(MotionEvent::Action action) { … }
gfx::RectF ClampBoundingBox(const gfx::RectF& bounds,
float min_length,
float max_length) { … }
float EffectiveSlopDistance(const MotionEvent& event,
const GestureProvider::Config& config) { … }
}
bool GestureProviderClient::RequiresDoubleTapGestureEvents() const { … }
GestureProvider::Config::Config()
: … { … }
GestureProvider::Config::Config(const Config& other) = default;
GestureProvider::Config::~Config() { … }
class GestureProvider::GestureListenerImpl : public ScaleGestureListener,
public GestureListener,
public DoubleTapListener { … };
GestureProvider::GestureProvider(const Config& config,
GestureProviderClient* client)
: … { … }
GestureProvider::~GestureProvider() { … }
bool GestureProvider::OnTouchEvent(const MotionEvent& event) { … }
void GestureProvider::ResetDetection() { … }
void GestureProvider::SetMultiTouchZoomSupportEnabled(bool enabled) { … }
void GestureProvider::SetDoubleTapSupportForPlatformEnabled(bool enabled) { … }
void GestureProvider::SetDoubleTapSupportForPageEnabled(bool enabled) { … }
bool GestureProvider::IsScrollInProgress() const { … }
bool GestureProvider::IsPinchInProgress() const { … }
bool GestureProvider::IsDoubleTapInProgress() const { … }
void GestureProvider::SendSynthesizedEndEvents() { … }
bool GestureProvider::CanHandle(const MotionEvent& event) const { … }
void GestureProvider::OnTouchEventHandlingBegin(const MotionEvent& event) { … }
void GestureProvider::OnTouchEventHandlingEnd(const MotionEvent& event) { … }
void GestureProvider::UpdateDoubleTapDetectionSupport() { … }
}