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

Side by Side Diff: content/browser/renderer_host/input/gestures/zoom_manager.h

Issue 128613003: [Tracking Patch] Unified gesture detection (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 11 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 unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #ifndef CONTENT_BROWSER_RENDERER_HOST_INPUT_GESTURES_ZOOM_MANAGER_H_
6 #define CONTENT_BROWSER_RENDERER_HOST_INPUT_GESTURES_ZOOM_MANAGER_H_
7
8 #include "base/memory/scoped_ptr.h"
9 #include "content/browser/renderer_host/input/gestures/scale_gesture_detector.h"
10
11 namespace content {
12
13 // Port of ZoomManager.java from Chromium
14 // * Changes to this class should be cosmetic only, easing fork maintenance.
tdresser 2014/01/08 19:18:21 Will we still need the java version of ZoomManager
15 // Responsible for maintaining zoom state and processing scale-related gestures.
16 class ZoomManager : public ScaleGestureDetector::OnScaleGestureListener {
17 public:
18 ZoomManager(ScaleGestureDetector::Config config,
19 ScaleGestureDetector::OnScaleGestureListener* listener);
20 virtual ~ZoomManager();
21
22 // Passes the touch event to ScaleGestureDetector so that its internal
23 // state won't go wrong, but instructs the listener to ignore the result
24 // of processing, if any.
25 void PassTouchEventThrough(const MotionEvent& event);
26
27 // Passes the touch event to ScaleGestureDetector so that its internal state
28 // won't go wrong. ScaleGestureDetector needs two pointers in a MotionEvent
29 // to recognize a zoom gesture.
30 bool ProcessTouchEvent(const MotionEvent& event);
31
32 void UpdateMultiTouchSupport(bool supports_multi_touch_zoom);
33
34 bool IsScaleGestureDetectionInProgress() const;
35
36 private:
37 // OnScaleGestureListener
38 virtual bool OnScaleBegin(const ScaleGestureDetector& detector) OVERRIDE;
39 virtual void OnScaleEnd(const ScaleGestureDetector& detector) OVERRIDE;
40 virtual bool OnScale(const ScaleGestureDetector& detector) OVERRIDE;
41
42 bool IgnoreDetectorEvents() const;
43
44 scoped_ptr<ScaleGestureDetector> multi_touch_detector_;
45
46 ScaleGestureDetector::OnScaleGestureListener* const listener_;
47
48 // Completely silence scaling events. Used in WebView when zoom support
49 // is turned off.
50 bool permanently_ignore_detector_events_;
51
52 // Bypass events through the detector to maintain its state. Used when
53 // renderes already handles the touch event.
54 bool temporarily_ignore_detector_events_;
55
56 // Whether any pinch zoom event has been sent to native.
57 bool pinch_event_sent_;
58
59 DISALLOW_COPY_AND_ASSIGN(ZoomManager);
60 };
61
62 } // namespace content
63
64 #endif // CONTENT_BROWSER_RENDERER_HOST_INPUT_GESTURES_ZOOM_MANAGER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698