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

Side by Side Diff: athena/wm/bezel_controller.h

Issue 451363002: Revert of Split Screen mode implementation (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@split_view
Patch Set: Created 6 years, 4 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
« no previous file with comments | « athena/athena.gyp ('k') | athena/wm/bezel_controller.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef ATHENA_WM_BEZEL_CONTROLLER_H_ 5 #ifndef ATHENA_WM_BEZEL_CONTROLLER_H_
6 #define ATHENA_WM_BEZEL_CONTROLLER_H_ 6 #define ATHENA_WM_BEZEL_CONTROLLER_H_
7 7
8 #include "ui/events/event_handler.h" 8 #include "ui/events/event_handler.h"
9 9
10 namespace aura { 10 namespace aura {
(...skipping 17 matching lines...) Expand all
28 enum Bezel { BEZEL_NONE, BEZEL_LEFT, BEZEL_RIGHT, BEZEL_TOP, BEZEL_BOTTOM }; 28 enum Bezel { BEZEL_NONE, BEZEL_LEFT, BEZEL_RIGHT, BEZEL_TOP, BEZEL_BOTTOM };
29 29
30 // Responsible for handling scroll gestures initiated from the bezel. 30 // Responsible for handling scroll gestures initiated from the bezel.
31 // Two touch points are need to perform the bezel scroll gesture from 31 // Two touch points are need to perform the bezel scroll gesture from
32 // the left and right bezel. 32 // the left and right bezel.
33 class ScrollDelegate { 33 class ScrollDelegate {
34 public: 34 public:
35 virtual ~ScrollDelegate() {} 35 virtual ~ScrollDelegate() {}
36 36
37 // Beginning of a bezel scroll gesture started from the |bezel|. 37 // Beginning of a bezel scroll gesture started from the |bezel|.
38 // |delta| is the difference between the x-coordinate of the current scroll
39 // position and the bezel. It will be zero or negative for the right bezel.
40 virtual void ScrollBegin(Bezel bezel, float delta) = 0; 38 virtual void ScrollBegin(Bezel bezel, float delta) = 0;
41 39
42 // End of the current bezel scroll 40 // End of the current bezel scroll
43 virtual void ScrollEnd() = 0; 41 virtual void ScrollEnd() = 0;
44 42
45 // Update of the scroll position for the currently active bezel scroll. 43 // Update of the scroll position for the currently active bezel scroll.
46 // |delta| has the same meaning as in ScrollBegin().
47 virtual void ScrollUpdate(float delta) = 0; 44 virtual void ScrollUpdate(float delta) = 0;
48 45
49 // Should return false if the delegate isn't going to react to the scroll 46 // Should return false if the delegate isn't going to react to the scroll
50 // events. 47 // events.
51 virtual bool CanScroll() = 0; 48 virtual bool CanScroll() = 0;
52 }; 49 };
53 50
54 explicit BezelController(aura::Window* container); 51 explicit BezelController(aura::Window* container);
55 virtual ~BezelController() {} 52 virtual ~BezelController() {}
56 53
57 // Set the delegate to handle the gestures from left and right bezels. 54 // Set the delegate to handle the gestures from left and right bezels.
58 // Two touch points are need to perform the bezel scroll gesture from 55 // Two touch points are need to perform the bezel scroll gesture from
59 // the left and right bezel. 56 // the left and right bezel.
60 void set_left_right_delegate(ScrollDelegate* delegate) { 57 void set_left_right_delegate(ScrollDelegate* delegate) {
61 left_right_delegate_ = delegate; 58 left_right_delegate_ = delegate;
62 } 59 }
63 60
64 private: 61 private:
65 enum State { 62 enum State {
66 NONE, 63 NONE,
67 IGNORE_CURRENT_SCROLL, 64 IGNORE_CURRENT_SCROLL,
68 BEZEL_GESTURE_STARTED, 65 BEZEL_GESTURE_STARTED,
69 BEZEL_SCROLLING_ONE_FINGER, 66 BEZEL_SCROLLING_ONE_FINGER,
70 BEZEL_SCROLLING_TWO_FINGERS, 67 BEZEL_SCROLLING_TWO_FINGERS,
71 }; 68 };
72 69
73 void SetState(State state); 70 // Calculates the distance from |position| to the |bezel|.
74 // |scroll_delta| only needs to be passed when |state| is one of the 71 float GetDistance(const gfx::PointF& position, Bezel bezel);
75 // BEZEL_SROLLING states. 72
76 void SetState(State state, float scroll_delta); 73 // |scroll_position| only needs to be passed in the scrolling state
74 void SetState(State state, const gfx::PointF& scroll_position);
77 75
78 // Returns the bezel corresponding to the |location| or BEZEL_NONE if the 76 // Returns the bezel corresponding to the |location| or BEZEL_NONE if the
79 // location is outside of the bezel area. 77 // location is outside of the bezel area.
80 Bezel GetBezel(const gfx::PointF& location); 78 Bezel GetBezel(const gfx::PointF& location);
81 79
82 // ui::EventHandler overrides 80 // ui::EventHandler overrides
83 virtual void OnGestureEvent(ui::GestureEvent* event) OVERRIDE; 81 virtual void OnGestureEvent(ui::GestureEvent* event) OVERRIDE;
84 82
85 aura::Window* container_; 83 aura::Window* container_;
86 84
87 State state_; 85 State state_;
88 86
89 // The bezel where the currently active scroll was started. 87 // The bezel where the currently active scroll was started.
90 Bezel scroll_bezel_; 88 Bezel scroll_bezel_;
91 89
92 // The target of the bezel scroll gesture. Used to filter out other gestures 90 // The target of the bezel scroll gesture. Used to filter out other gestures
93 // when the bezel scroll is in progress. 91 // when the bezel scroll is in progress.
94 ui::EventTarget* scroll_target_; 92 ui::EventTarget* scroll_target_;
95 93
96 // Responsible for handling gestures started from the left and right bezels. 94 // Responsible for handling gestures started from the left and right bezels.
97 // Not owned. 95 // Not owned.
98 ScrollDelegate* left_right_delegate_; 96 ScrollDelegate* left_right_delegate_;
99 97
100 DISALLOW_COPY_AND_ASSIGN(BezelController); 98 DISALLOW_COPY_AND_ASSIGN(BezelController);
101 }; 99 };
102 100
103 } // namespace athena 101 } // namespace athena
104 102
105 #endif // ATHENA_WM_BEZEL_CONTROLLER_H_ 103 #endif // ATHENA_WM_BEZEL_CONTROLLER_H_
OLDNEW
« no previous file with comments | « athena/athena.gyp ('k') | athena/wm/bezel_controller.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698