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

Side by Side Diff: chrome/browser/ui/views/frame/immersive_mode_controller_ash.h

Issue 27458002: Allow setting different hit test bounds overrides for mouse and touch (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 2 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 | Annotate | Revision Log
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 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 CHROME_BROWSER_UI_VIEWS_FRAME_IMMERSIVE_MODE_CONTROLLER_ASH_H_ 5 #ifndef CHROME_BROWSER_UI_VIEWS_FRAME_IMMERSIVE_MODE_CONTROLLER_ASH_H_
6 #define CHROME_BROWSER_UI_VIEWS_FRAME_IMMERSIVE_MODE_CONTROLLER_ASH_H_ 6 #define CHROME_BROWSER_UI_VIEWS_FRAME_IMMERSIVE_MODE_CONTROLLER_ASH_H_
7 7
8 #include "chrome/browser/ui/views/frame/immersive_mode_controller.h" 8 #include "chrome/browser/ui/views/frame/immersive_mode_controller.h"
9 9
10 #include "base/timer/timer.h" 10 #include "base/timer/timer.h"
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
103 // aura::WindowObserver overrides: 103 // aura::WindowObserver overrides:
104 virtual void OnWindowPropertyChanged(aura::Window* window, 104 virtual void OnWindowPropertyChanged(aura::Window* window,
105 const void* key, 105 const void* key,
106 intptr_t old) OVERRIDE; 106 intptr_t old) OVERRIDE;
107 virtual void OnAddTransientChild(aura::Window* window, 107 virtual void OnAddTransientChild(aura::Window* window,
108 aura::Window* transient) OVERRIDE; 108 aura::Window* transient) OVERRIDE;
109 virtual void OnRemoveTransientChild(aura::Window* window, 109 virtual void OnRemoveTransientChild(aura::Window* window,
110 aura::Window* transient) OVERRIDE; 110 aura::Window* transient) OVERRIDE;
111 111
112 // Testing interface. 112 // Testing interface.
113 void SetForceHideTabIndicatorsForTest(bool force);
114 void StartRevealForTest(bool hovered); 113 void StartRevealForTest(bool hovered);
115 void SetMouseHoveredForTest(bool hovered); 114 void SetMouseHoveredForTest(bool hovered);
116 void DisableAnimationsForTest(); 115 void DisableAnimationsForTest();
117 116
118 private: 117 private:
119 friend class ImmersiveModeControllerAshTest; 118 friend class ImmersiveModeControllerAshTest;
120 119
121 enum AllowRevealWhileClosing { 120 enum AllowRevealWhileClosing {
122 ALLOW_REVEAL_WHILE_CLOSING_YES, 121 ALLOW_REVEAL_WHILE_CLOSING_YES,
123 ALLOW_REVEAL_WHILE_CLOSING_NO 122 ALLOW_REVEAL_WHILE_CLOSING_NO
124 }; 123 };
125 enum Animate { 124 enum Animate {
126 ANIMATE_NO, 125 ANIMATE_NO,
127 ANIMATE_SLOW, 126 ANIMATE_SLOW,
128 ANIMATE_FAST, 127 ANIMATE_FAST,
129 }; 128 };
130 enum Layout { 129 enum Layout {
131 LAYOUT_YES, 130 LAYOUT_YES,
132 LAYOUT_NO 131 LAYOUT_NO
133 }; 132 };
134 enum RevealState { 133 enum RevealState {
135 CLOSED, // Top container only showing tabstrip, y = 0. 134 CLOSED, // Top container only showing tabstrip, y = 0.
136 SLIDING_OPEN, // All views showing, y animating from -height to 0. 135 SLIDING_OPEN, // All views showing, y animating from -height to 0.
137 REVEALED, // All views showing, y = 0. 136 REVEALED, // All views showing, y = 0.
138 SLIDING_CLOSED, // All views showing, y animating from 0 to -height. 137 SLIDING_CLOSED, // All views showing, y animating from 0 to -height.
139 }; 138 };
140 enum TabIndicatorVisibility {
141 TAB_INDICATORS_FORCE_HIDE,
142 TAB_INDICATORS_HIDE,
143 TAB_INDICATORS_SHOW
144 };
145 enum SwipeType { 139 enum SwipeType {
146 SWIPE_OPEN, 140 SWIPE_OPEN,
147 SWIPE_CLOSE, 141 SWIPE_CLOSE,
148 SWIPE_NONE 142 SWIPE_NONE
149 }; 143 };
150 144
151 // Enables or disables observers for mouse move, focus, and window restore. 145 // Enables or disables observers for mouse move, focus, and window restore.
152 void EnableWindowObservers(bool enable); 146 void EnableWindowObservers(bool enable);
153 147
154 // Updates |top_edge_hover_timer_| based on a mouse |event|. If the mouse is 148 // Updates |top_edge_hover_timer_| based on a mouse |event|. If the mouse is
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
231 // the top container is closed "near" means either within the displayed 225 // the top container is closed "near" means either within the displayed
232 // bounds, above it, or within a few pixels below it. This allow the container 226 // bounds, above it, or within a few pixels below it. This allow the container
233 // to steal enough pixels to detect a swipe in and handles the case that there 227 // to steal enough pixels to detect a swipe in and handles the case that there
234 // is a bezel sensor above the top container. 228 // is a bezel sensor above the top container.
235 bool ShouldHandleGestureEvent(const gfx::Point& location) const; 229 bool ShouldHandleGestureEvent(const gfx::Point& location) const;
236 230
237 // Recreate |bubble_manager_| and start observing any bubbles anchored to a 231 // Recreate |bubble_manager_| and start observing any bubbles anchored to a
238 // child of |top_container_|. 232 // child of |top_container_|.
239 void RecreateBubbleManager(); 233 void RecreateBubbleManager();
240 234
241 // Shrinks or expands the touch hit test by updating insets for the render
242 // window depending on if top_inset is positive or negative respectively.
243 // Used to ensure that touch events at the top of the screen go to the top
244 // container so a slide gesture can be generated when the content window is
245 // consuming all touch events sent to it.
246 void SetRenderWindowTopInsetsForTouch(int top_inset);
247
248 // Injected dependencies. Not owned. 235 // Injected dependencies. Not owned.
249 Delegate* delegate_; 236 Delegate* delegate_;
250 views::Widget* widget_; 237 views::Widget* widget_;
251 views::View* top_container_; 238 views::View* top_container_;
252 239
253 // True if the window observers are enabled. 240 // True if the window observers are enabled.
254 bool observers_enabled_; 241 bool observers_enabled_;
255 242
256 // True when in immersive mode. 243 // True when in immersive mode.
257 bool enabled_; 244 bool enabled_;
258 245
259 // State machine for the revealed/closed animations. 246 // State machine for the revealed/closed animations.
260 RevealState reveal_state_; 247 RevealState reveal_state_;
261 248
262 int revealed_lock_count_; 249 int revealed_lock_count_;
263 250
264 // The visibility of the miniature "tab indicators" in the main browser view
265 // when immersive mode is enabled and the top-of-window views are closed.
266 TabIndicatorVisibility tab_indicator_visibility_;
267
268 // Timer to track cursor being held at the top edge of the screen. 251 // Timer to track cursor being held at the top edge of the screen.
269 base::OneShotTimer<ImmersiveModeController> top_edge_hover_timer_; 252 base::OneShotTimer<ImmersiveModeController> top_edge_hover_timer_;
270 253
271 // The cursor x position in screen coordinates when the cursor first hit the 254 // The cursor x position in screen coordinates when the cursor first hit the
272 // top edge of the screen. 255 // top edge of the screen.
273 int mouse_x_when_hit_top_in_screen_; 256 int mouse_x_when_hit_top_in_screen_;
274 257
275 // Tracks if the controller has seen a ET_GESTURE_SCROLL_BEGIN, without the 258 // Tracks if the controller has seen a ET_GESTURE_SCROLL_BEGIN, without the
276 // following events. 259 // following events.
277 bool gesture_begun_; 260 bool gesture_begun_;
(...skipping 27 matching lines...) Expand all
305 scoped_ptr<BubbleManager> bubble_manager_; 288 scoped_ptr<BubbleManager> bubble_manager_;
306 289
307 content::NotificationRegistrar registrar_; 290 content::NotificationRegistrar registrar_;
308 291
309 base::WeakPtrFactory<ImmersiveModeControllerAsh> weak_ptr_factory_; 292 base::WeakPtrFactory<ImmersiveModeControllerAsh> weak_ptr_factory_;
310 293
311 DISALLOW_COPY_AND_ASSIGN(ImmersiveModeControllerAsh); 294 DISALLOW_COPY_AND_ASSIGN(ImmersiveModeControllerAsh);
312 }; 295 };
313 296
314 #endif // CHROME_BROWSER_UI_VIEWS_FRAME_IMMERSIVE_MODE_CONTROLLER_ASH_H_ 297 #endif // CHROME_BROWSER_UI_VIEWS_FRAME_IMMERSIVE_MODE_CONTROLLER_ASH_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698