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

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

Issue 14756019: Adding new user menu section to the SystemTrayMenu & refactoring of user access (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 7 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 (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 #include "ash/system/tray/system_tray.h" 5 #include "ash/system/tray/system_tray.h"
6 6
7 #include "ash/ash_switches.h" 7 #include "ash/ash_switches.h"
8 #include "ash/shelf/shelf_layout_manager.h" 8 #include "ash/shelf/shelf_layout_manager.h"
9 #include "ash/shell.h" 9 #include "ash/shell.h"
10 #include "ash/shell/panel_window.h" 10 #include "ash/shell/panel_window.h"
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
56 #include "ash/system/chromeos/power/tray_power.h" 56 #include "ash/system/chromeos/power/tray_power.h"
57 #include "ash/system/chromeos/screen_capture/tray_screen_capture.h" 57 #include "ash/system/chromeos/screen_capture/tray_screen_capture.h"
58 #include "ash/system/chromeos/settings/tray_settings.h" 58 #include "ash/system/chromeos/settings/tray_settings.h"
59 #include "ash/system/chromeos/tray_display.h" 59 #include "ash/system/chromeos/tray_display.h"
60 #endif 60 #endif
61 61
62 using views::TrayBubbleView; 62 using views::TrayBubbleView;
63 63
64 namespace ash { 64 namespace ash {
65 65
66 // The maximum number of simultaneous user profiles.
67 const int kMaxSimultaneousUserProfiles = 3;
68
66 // The minimum width of the system tray menu width. 69 // The minimum width of the system tray menu width.
67 const int kMinimumSystemTrayMenuWidth = 300; 70 const int kMinimumSystemTrayMenuWidth = 300;
68 71
69 namespace internal { 72 namespace internal {
70 73
71 // Class to initialize and manage the SystemTrayBubble and TrayBubbleWrapper 74 // Class to initialize and manage the SystemTrayBubble and TrayBubbleWrapper
72 // instances for a bubble. 75 // instances for a bubble.
73 76
74 class SystemBubbleWrapper { 77 class SystemBubbleWrapper {
75 public: 78 public:
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
131 134
132 void SystemTray::InitializeTrayItems(SystemTrayDelegate* delegate) { 135 void SystemTray::InitializeTrayItems(SystemTrayDelegate* delegate) {
133 internal::TrayBackgroundView::Initialize(); 136 internal::TrayBackgroundView::Initialize();
134 CreateItems(delegate); 137 CreateItems(delegate);
135 } 138 }
136 139
137 void SystemTray::CreateItems(SystemTrayDelegate* delegate) { 140 void SystemTray::CreateItems(SystemTrayDelegate* delegate) {
138 #if !defined(OS_WIN) 141 #if !defined(OS_WIN)
139 AddTrayItem(new internal::TraySessionLengthLimit(this)); 142 AddTrayItem(new internal::TraySessionLengthLimit(this));
140 AddTrayItem(new internal::TrayLogoutButton(this)); 143 AddTrayItem(new internal::TrayLogoutButton(this));
141 AddTrayItem(new internal::TrayUser(this)); 144 // In multi-profile user mode we can have multiple user tiles.
145 // The additional entry is used for a double separator.
146 int maximum_user_profiles =
147 ash::Shell::GetInstance()->delegate()->IsMultiProfilesEnabled() ?
148 (kMaxSimultaneousUserProfiles + 1): 1;
149 for (int i = 0; i < maximum_user_profiles; i++)
150 AddTrayItem(new internal::TrayUser(this, i));
151
142 #endif 152 #endif
143 #if defined(OS_CHROMEOS) 153 #if defined(OS_CHROMEOS)
144 AddTrayItem(new internal::TrayEnterprise(this)); 154 AddTrayItem(new internal::TrayEnterprise(this));
145 AddTrayItem(new internal::TrayLocallyManagedUser(this)); 155 AddTrayItem(new internal::TrayLocallyManagedUser(this));
146 #endif 156 #endif
147 AddTrayItem(new internal::TrayIME(this)); 157 AddTrayItem(new internal::TrayIME(this));
148 tray_accessibility_ = new internal::TrayAccessibility(this); 158 tray_accessibility_ = new internal::TrayAccessibility(this);
149 AddTrayItem(tray_accessibility_); 159 AddTrayItem(tray_accessibility_);
150 #if defined(OS_CHROMEOS) 160 #if defined(OS_CHROMEOS)
151 AddTrayItem(new internal::TrayPower(this)); 161 AddTrayItem(new internal::TrayPower(this));
(...skipping 414 matching lines...) Expand 10 before | Expand all | Expand 10 after
566 ConvertPointToWidget(this, &point); 576 ConvertPointToWidget(this, &point);
567 arrow_offset = point.x(); 577 arrow_offset = point.x();
568 } 578 }
569 } 579 }
570 ShowDefaultViewWithOffset(BUBBLE_CREATE_NEW, arrow_offset); 580 ShowDefaultViewWithOffset(BUBBLE_CREATE_NEW, arrow_offset);
571 } 581 }
572 return true; 582 return true;
573 } 583 }
574 584
575 } // namespace ash 585 } // namespace ash
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698