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

Side by Side Diff: ash/common/system/tray/system_tray_item.h

Issue 2494943005: [ash-md] Added a delay between system menu default/detailed view transitions. (Closed)
Patch Set: Addressed danakj@ comments. Created 4 years, 1 month 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/common/system/tray/system_tray_item.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 (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_COMMON_SYSTEM_TRAY_SYSTEM_TRAY_ITEM_H_ 5 #ifndef ASH_COMMON_SYSTEM_TRAY_SYSTEM_TRAY_ITEM_H_
6 #define ASH_COMMON_SYSTEM_TRAY_SYSTEM_TRAY_ITEM_H_ 6 #define ASH_COMMON_SYSTEM_TRAY_SYSTEM_TRAY_ITEM_H_
7 7
8 #include <memory>
9
8 #include "ash/ash_export.h" 10 #include "ash/ash_export.h"
9 #include "ash/common/login_status.h" 11 #include "ash/common/login_status.h"
10 #include "ash/public/cpp/shelf_types.h" 12 #include "ash/public/cpp/shelf_types.h"
11 #include "base/macros.h" 13 #include "base/macros.h"
12 14
15 namespace base {
16 class OneShotTimer;
17 } // namespace base
18
13 namespace views { 19 namespace views {
14 class View; 20 class View;
15 } 21 }
16 22
17 namespace ash { 23 namespace ash {
18 class SystemTray; 24 class SystemTray;
19 class SystemTrayBubble; 25 class SystemTrayBubble;
20 class TrayItemView; 26 class TrayItemView;
21 27
22 class ASH_EXPORT SystemTrayItem { 28 class ASH_EXPORT SystemTrayItem {
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
98 virtual void UpdateAfterLoginStatusChange(LoginStatus status); 104 virtual void UpdateAfterLoginStatusChange(LoginStatus status);
99 105
100 // Updates the tray view (if applicable) when shelf's alignment changes. 106 // Updates the tray view (if applicable) when shelf's alignment changes.
101 // The default implementation does nothing. 107 // The default implementation does nothing.
102 virtual void UpdateAfterShelfAlignmentChange(ShelfAlignment alignment); 108 virtual void UpdateAfterShelfAlignmentChange(ShelfAlignment alignment);
103 109
104 // Shows the detailed view for this item. If the main popup for the tray is 110 // Shows the detailed view for this item. If the main popup for the tray is
105 // currently visible, then making this call would use the existing window to 111 // currently visible, then making this call would use the existing window to
106 // display the detailed item. The detailed item will inherit the bounds of the 112 // display the detailed item. The detailed item will inherit the bounds of the
107 // existing window. 113 // existing window.
108 // If there is no existing view, then this is equivalent to calling 114 //
109 // PopupDetailedView(0, true). 115 // In Material Design the actual transition is intentionally delayed to allow
116 // the user to perceive the ink drop animation on the clicked target.
110 void TransitionDetailedView(); 117 void TransitionDetailedView();
111 118
112 // Pops up the detailed view for this item. An item can request to show its 119 // Pops up the detailed view for this item. An item can request to show its
113 // detailed view using this function (e.g. from an observer callback when 120 // detailed view using this function (e.g. from an observer callback when
114 // something, e.g. volume, network availability etc. changes). If 121 // something, e.g. volume, network availability etc. changes). If
115 // |for_seconds| is non-zero, then the popup is closed after the specified 122 // |for_seconds| is non-zero, then the popup is closed after the specified
116 // time. 123 // time.
117 void PopupDetailedView(int for_seconds, bool activate); 124 void PopupDetailedView(int for_seconds, bool activate);
118 125
119 // Continue showing the currently-shown detailed view, if any, for 126 // Continue showing the currently-shown detailed view, if any, for
(...skipping 15 matching lines...) Expand all
135 // the shelf is in the auto-hide state. Default is true. 142 // the shelf is in the auto-hide state. Default is true.
136 virtual bool ShouldShowShelf() const; 143 virtual bool ShouldShowShelf() const;
137 144
138 // Returns the system tray that this item belongs to. 145 // Returns the system tray that this item belongs to.
139 SystemTray* system_tray() const { return system_tray_; } 146 SystemTray* system_tray() const { return system_tray_; }
140 147
141 bool restore_focus() const { return restore_focus_; } 148 bool restore_focus() const { return restore_focus_; }
142 void set_restore_focus(bool restore_focus) { restore_focus_ = restore_focus; } 149 void set_restore_focus(bool restore_focus) { restore_focus_ = restore_focus; }
143 150
144 private: 151 private:
152 // Actually transitions to the detailed view.
153 void DoTransitionToDetailedView();
154
145 // Accesses uma_type(). 155 // Accesses uma_type().
146 friend class SystemTrayBubble; 156 friend class SystemTrayBubble;
147 157
148 UmaType uma_type() const { return uma_type_; } 158 UmaType uma_type() const { return uma_type_; }
149 159
150 SystemTray* system_tray_; 160 SystemTray* system_tray_;
151 UmaType uma_type_; 161 UmaType uma_type_;
152 bool restore_focus_; 162 bool restore_focus_;
153 163
164 // Used to delay the transition to the detailed view.
165 std::unique_ptr<base::OneShotTimer> transition_delay_timer_;
166
154 DISALLOW_COPY_AND_ASSIGN(SystemTrayItem); 167 DISALLOW_COPY_AND_ASSIGN(SystemTrayItem);
155 }; 168 };
156 169
157 } // namespace ash 170 } // namespace ash
158 171
159 #endif // ASH_COMMON_SYSTEM_TRAY_SYSTEM_TRAY_ITEM_H_ 172 #endif // ASH_COMMON_SYSTEM_TRAY_SYSTEM_TRAY_ITEM_H_
OLDNEW
« no previous file with comments | « no previous file | ash/common/system/tray/system_tray_item.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698