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

Side by Side Diff: ash/system/tray/system_tray.h

Issue 2961313003: Touch gestures for System Tray/ IME/ Stylus/ Notifications (Closed)
Patch Set: Add |is_on_bubble_| instead of. Created 3 years, 5 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 | « no previous file | ash/system/tray/system_tray.cc » ('j') | ash/system/tray/system_tray.cc » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 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 ASH_SYSTEM_TRAY_SYSTEM_TRAY_H_ 5 #ifndef ASH_SYSTEM_TRAY_SYSTEM_TRAY_H_
6 #define ASH_SYSTEM_TRAY_SYSTEM_TRAY_H_ 6 #define ASH_SYSTEM_TRAY_SYSTEM_TRAY_H_
7 7
8 #include <map> 8 #include <map>
9 #include <memory> 9 #include <memory>
10 #include <vector> 10 #include <vector>
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after
145 145
146 ScreenTrayItem* GetScreenShareItem() { return screen_share_tray_item_; } 146 ScreenTrayItem* GetScreenShareItem() { return screen_share_tray_item_; }
147 ScreenTrayItem* GetScreenCaptureItem() { return screen_capture_tray_item_; } 147 ScreenTrayItem* GetScreenCaptureItem() { return screen_capture_tray_item_; }
148 148
149 // Activates the system tray bubble. 149 // Activates the system tray bubble.
150 void ActivateBubble(); 150 void ActivateBubble();
151 151
152 // ui::EventHandler: 152 // ui::EventHandler:
153 void OnGestureEvent(ui::GestureEvent* event) override; 153 void OnGestureEvent(ui::GestureEvent* event) override;
154 154
155 // Process a gesture event and updates the dragging state of the bubble when
156 // appropriate. Returns true if the gesture has been handled and it should not
157 // be processed any further, false otherwise. Note, the events may triggered
xdai1 2017/06/30 22:27:08 nit: may be triggered
minch1 2017/07/01 05:57:14 Done.
158 // on system tray or system tray bubble.
159 bool ProcessGestureEvent(const ui::GestureEvent& event, bool is_on_bubble);
160
155 gfx::Rect GetWorkAreaBoundsInScreen() const; 161 gfx::Rect GetWorkAreaBoundsInScreen() const;
156 162
157 private: 163 private:
158 friend class SystemTrayTestApi; 164 friend class SystemTrayTestApi;
159 class ActivationObserver; 165 class ActivationObserver;
160 166
161 // Closes the bubble. Used to bind as a KeyEventWatcher::KeyEventCallback. 167 // Closes the bubble. Used to bind as a KeyEventWatcher::KeyEventCallback.
162 void CloseBubble(const ui::KeyEvent& key_event); 168 void CloseBubble(const ui::KeyEvent& key_event);
163 169
164 // Activates the bubble and starts key navigation with the |key_event|. 170 // Activates the bubble and starts key navigation with the |key_event|.
(...skipping 30 matching lines...) Expand all
195 void CloseSystemBubbleAndDeactivateSystemTray(); 201 void CloseSystemBubbleAndDeactivateSystemTray();
196 202
197 // Records UMA metrics for the number of user-visible rows in the system menu 203 // Records UMA metrics for the number of user-visible rows in the system menu
198 // and the percentage of the work area height covered by the system menu. 204 // and the percentage of the work area height covered by the system menu.
199 void RecordSystemMenuMetrics(); 205 void RecordSystemMenuMetrics();
200 206
201 // Overridden from ActionableView. 207 // Overridden from ActionableView.
202 bool PerformAction(const ui::Event& event) override; 208 bool PerformAction(const ui::Event& event) override;
203 209
204 // Gesture related functions: 210 // Gesture related functions:
205 bool ProcessGestureEvent(const ui::GestureEvent& event);
206 bool StartGestureDrag(const ui::GestureEvent& gesture); 211 bool StartGestureDrag(const ui::GestureEvent& gesture);
207 void UpdateGestureDrag(const ui::GestureEvent& gesture); 212 void UpdateGestureDrag(const ui::GestureEvent& gesture);
208 void CompleteGestureDrag(const ui::GestureEvent& gesture); 213 void CompleteGestureDrag(const ui::GestureEvent& gesture);
209 214
210 // Update the bounds of the system tray bubble according to |location|. Note 215 // Update the bounds of the system tray bubble according to
211 // that |location| is in the local coordinate space of |this|. 216 // |gesture_drag_amount_|.
212 void SetBubbleBounds(const gfx::Point& location); 217 void SetBubbleBounds();
xdai1 2017/06/30 22:27:08 I think UpdateBubbleBounds() might better describe
minch1 2017/07/01 05:57:14 Done.
213 218
214 // Return true if the system bubble should be shown (i.e., animated upward to 219 // Return true if the system bubble should be shown (i.e., animated upward to
215 // be made fully visible) after a sequence of scroll events terminated by 220 // be made fully visible) after a sequence of scroll events terminated by
216 // |sequence_end|. Otherwise return false, indicating that the 221 // |sequence_end|. Otherwise return false, indicating that the
217 // partially-visible system bubble should be animated downward and made fully 222 // partially-visible system bubble should be animated downward and made fully
218 // hidden. 223 // hidden.
219 bool ShouldShowSystemBubbleAfterScrollSequence( 224 bool ShouldShowSystemBubbleAfterScrollSequence(
220 const ui::GestureEvent& sequence_end); 225 const ui::GestureEvent& sequence_end);
221 226
222 // Shelf the system tray is in. 227 // Shelf the system tray is in.
223 Shelf* const shelf_; 228 Shelf* const shelf_;
224 229
225 // The original bounds of the system tray bubble. 230 // The original bounds of the system tray bubble.
226 gfx::Rect system_tray_bubble_bounds_; 231 gfx::Rect system_tray_bubble_bounds_;
227 232
228 // Tracks the amount of the drag. Only valid if |is_in_drag_| is true. 233 // Tracks the amount of the drag. Only valid if |is_in_drag_| is true.
229 float gesture_drag_amount_ = 0.f; 234 float gesture_drag_amount_ = 0.f;
230 235
231 // True if the user is in the process of gesture-dragging to open the system 236 // True if the user is in the process of gesture-dragging to open the system
232 // tray bubble, false otherwise. 237 // tray bubble, false otherwise.
233 bool is_in_drag_ = false; 238 bool is_in_drag_ = false;
234 239
240 // True if the dragging is on system tray bubble, false otherwise. Note,
241 // should always set this before ProcessGestureEvent.
242 bool is_on_bubble_ = false;
xdai1 2017/06/30 22:27:08 considering rename it to is_dragging_bubble_?
minch1 2017/07/01 05:57:13 There is another flag |is_in_drag_| for dragging s
243
235 // The web notification tray view that appears adjacent to this view. 244 // The web notification tray view that appears adjacent to this view.
236 WebNotificationTray* web_notification_tray_ = nullptr; 245 WebNotificationTray* web_notification_tray_ = nullptr;
237 246
238 // Items. 247 // Items.
239 std::vector<std::unique_ptr<SystemTrayItem>> items_; 248 std::vector<std::unique_ptr<SystemTrayItem>> items_;
240 249
241 // Pointers to members of |items_|. 250 // Pointers to members of |items_|.
242 SystemTrayItem* detailed_item_ = nullptr; 251 SystemTrayItem* detailed_item_ = nullptr;
243 252
244 // Bubble for default and detailed views. 253 // Bubble for default and detailed views.
(...skipping 27 matching lines...) Expand all
272 ScreenTrayItem* screen_share_tray_item_ = nullptr; // not owned 281 ScreenTrayItem* screen_share_tray_item_ = nullptr; // not owned
273 282
274 std::unique_ptr<ActivationObserver> activation_observer_; 283 std::unique_ptr<ActivationObserver> activation_observer_;
275 284
276 DISALLOW_COPY_AND_ASSIGN(SystemTray); 285 DISALLOW_COPY_AND_ASSIGN(SystemTray);
277 }; 286 };
278 287
279 } // namespace ash 288 } // namespace ash
280 289
281 #endif // ASH_SYSTEM_TRAY_SYSTEM_TRAY_H_ 290 #endif // ASH_SYSTEM_TRAY_SYSTEM_TRAY_H_
OLDNEW
« no previous file with comments | « no previous file | ash/system/tray/system_tray.cc » ('j') | ash/system/tray/system_tray.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698