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

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

Issue 2162153002: Added Ash.SystemMenu.DefaultView.VisibleItems histogram. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixed ash_unittests compile errors. Created 4 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
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 "ash/ash_export.h" 8 #include "ash/ash_export.h"
9 #include "ash/common/login_status.h" 9 #include "ash/common/login_status.h"
10 #include "ash/common/shelf/shelf_types.h" 10 #include "ash/common/shelf/shelf_types.h"
11 #include "base/macros.h" 11 #include "base/macros.h"
12 12
13 namespace views { 13 namespace views {
14 class View; 14 class View;
15 } 15 }
16 16
17 namespace ash { 17 namespace ash {
18 class SystemTray; 18 class SystemTray;
19 class TrayItemView; 19 class TrayItemView;
20 20
21 class ASH_EXPORT SystemTrayItem { 21 class ASH_EXPORT SystemTrayItem {
22 public: 22 public:
23 explicit SystemTrayItem(SystemTray* system_tray); 23 // The different types of SystemTrayItems.
24 //
25 // *** IMPORTANT *** - These values are used for UMA metrics so do NOT
26 // re-order
27 // this enum and only insert items before the COUNT item.
tdanderson 2016/07/19 21:58:40 nit: awkward line break.
bruthig 2016/07/20 18:15:52 Done.
28 enum ItemType {
29 ACCESSIBILITY, // 0
tdanderson 2016/07/19 21:58:40 Consider making UNKNOWN/NONE the 0-element, and us
bruthig 2016/07/20 18:15:52 Added TEST at 0.
30 AUDIO, // 1
31 BLUETOOTH, // 2
32 CAPS_LOCK, // 3
33 CAST, // 4
34 DATE_POWER_LOCK, // 5
35 DISPLAY, // 6
36 DISPLAY_BRIGHTNESS, // 7
37 ENTERPRISE, // 8
38 IME, // 9
39 MULTI_PROFILE_MEDIA, // 10
40 NETWORK, // 11
41 OS_SETTINGS, // 12
42 OS_UPDATE, // 13
43 POWER, // 14
44 ROTATION_LOCK, // 15
45 SCREEN_CAPTURE, // 16
46 SCREEN_SHARE, // 17
47 SESSION_LENGTH_LIMIT, // 18
48 SMS, // 19
49 SUPERVISED_USER, // 20
50 TRACING, // 21
51 USER, // 22
52 USER_SEPARATOR, // 23
53 VPN, // 24
54 COUNT // 25
55 };
56
57 SystemTrayItem(SystemTray* system_tray, ItemType type);
24 virtual ~SystemTrayItem(); 58 virtual ~SystemTrayItem();
25 59
60 ItemType type() const { return item_type_; }
tdanderson 2016/07/19 21:58:40 I'm a bit concerned that having a public type() in
bruthig 2016/07/20 18:15:52 Renamed ItemType as UmaType, moved uma_type() to p
61
26 // Create* functions may return NULL if nothing should be displayed for the 62 // Create* functions may return NULL if nothing should be displayed for the
27 // type of view. The default implementations return NULL. 63 // type of view. The default implementations return NULL.
28 64
29 // Returns a view to be displayed in the system tray. If this returns NULL, 65 // Returns a view to be displayed in the system tray. If this returns NULL,
30 // then this item is not displayed in the tray. 66 // then this item is not displayed in the tray.
31 // NOTE: The returned view should almost always be a TrayItemView, which 67 // NOTE: The returned view should almost always be a TrayItemView, which
32 // automatically resizes the widget when the size of the view changes, and 68 // automatically resizes the widget when the size of the view changes, and
33 // adds animation when the visibility of the view changes. If a view wants to 69 // adds animation when the visibility of the view changes. If a view wants to
34 // avoid this behavior, then it should not be a TrayItemView. 70 // avoid this behavior, then it should not be a TrayItemView.
35 virtual views::View* CreateTrayView(LoginStatus status); 71 virtual views::View* CreateTrayView(LoginStatus status);
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
101 virtual bool ShouldShowShelf() const; 137 virtual bool ShouldShowShelf() const;
102 138
103 // Returns the system tray that this item belongs to. 139 // Returns the system tray that this item belongs to.
104 SystemTray* system_tray() const { return system_tray_; } 140 SystemTray* system_tray() const { return system_tray_; }
105 141
106 bool restore_focus() const { return restore_focus_; } 142 bool restore_focus() const { return restore_focus_; }
107 void set_restore_focus(bool restore_focus) { restore_focus_ = restore_focus; } 143 void set_restore_focus(bool restore_focus) { restore_focus_ = restore_focus; }
108 144
109 private: 145 private:
110 SystemTray* system_tray_; 146 SystemTray* system_tray_;
147 ItemType item_type_;
111 bool restore_focus_; 148 bool restore_focus_;
112 149
113 DISALLOW_COPY_AND_ASSIGN(SystemTrayItem); 150 DISALLOW_COPY_AND_ASSIGN(SystemTrayItem);
114 }; 151 };
115 152
116 } // namespace ash 153 } // namespace ash
117 154
118 #endif // ASH_COMMON_SYSTEM_TRAY_SYSTEM_TRAY_ITEM_H_ 155 #endif // ASH_COMMON_SYSTEM_TRAY_SYSTEM_TRAY_ITEM_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698