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

Side by Side Diff: chrome/browser/ui/cocoa/browser/avatar_button_controller.mm

Issue 15932008: Add managed user avatar menu for mac. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Address review comments. Created 7 years, 6 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 #import "chrome/browser/ui/cocoa/browser/avatar_button_controller.h" 5 #import "chrome/browser/ui/cocoa/browser/avatar_button_controller.h"
6 6
7 #include "base/strings/sys_string_conversions.h" 7 #include "base/strings/sys_string_conversions.h"
8 #include "chrome/app/chrome_command_ids.h" 8 #include "chrome/app/chrome_command_ids.h"
9 #include "chrome/browser/browser_process.h" 9 #include "chrome/browser/browser_process.h"
10 #include "chrome/browser/command_updater.h" 10 #include "chrome/browser/command_updater.h"
11 #include "chrome/browser/managed_mode/managed_user_service.h"
11 #include "chrome/browser/profiles/profile.h" 12 #include "chrome/browser/profiles/profile.h"
12 #include "chrome/browser/profiles/profile_info_cache.h" 13 #include "chrome/browser/profiles/profile_info_cache.h"
13 #include "chrome/browser/profiles/profile_info_util.h" 14 #include "chrome/browser/profiles/profile_info_util.h"
14 #include "chrome/browser/profiles/profile_manager.h" 15 #include "chrome/browser/profiles/profile_manager.h"
15 #include "chrome/browser/profiles/profile_metrics.h" 16 #include "chrome/browser/profiles/profile_metrics.h"
17 #include "chrome/browser/themes/theme_properties.h"
18 #include "chrome/browser/themes/theme_service.h"
16 #include "chrome/browser/ui/browser.h" 19 #include "chrome/browser/ui/browser.h"
17 #include "chrome/browser/ui/browser_commands.h" 20 #include "chrome/browser/ui/browser_commands.h"
18 #include "chrome/browser/ui/browser_window.h" 21 #include "chrome/browser/ui/browser_window.h"
19 #import "chrome/browser/ui/cocoa/browser/avatar_menu_bubble_controller.h" 22 #import "chrome/browser/ui/cocoa/browser/avatar_menu_bubble_controller.h"
20 #import "chrome/browser/ui/cocoa/browser_window_controller.h" 23 #import "chrome/browser/ui/cocoa/browser_window_controller.h"
21 #import "chrome/browser/ui/cocoa/menu_controller.h" 24 #import "chrome/browser/ui/cocoa/menu_controller.h"
22 #include "chrome/common/chrome_notification_types.h" 25 #include "chrome/common/chrome_notification_types.h"
23 #include "content/public/browser/notification_service.h" 26 #include "content/public/browser/notification_service.h"
24 #include "grit/generated_resources.h" 27 #include "grit/generated_resources.h"
25 #include "grit/theme_resources.h" 28 #include "grit/theme_resources.h"
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
119 forAttribute:NSAccessibilityTitleAttribute]; 122 forAttribute:NSAccessibilityTitleAttribute];
120 [cell accessibilitySetOverrideValue: 123 [cell accessibilitySetOverrideValue:
121 l10n_util::GetNSString(IDS_PROFILES_BUBBLE_ACCESSIBLE_DESCRIPTION) 124 l10n_util::GetNSString(IDS_PROFILES_BUBBLE_ACCESSIBLE_DESCRIPTION)
122 forAttribute:NSAccessibilityHelpAttribute]; 125 forAttribute:NSAccessibilityHelpAttribute];
123 [cell accessibilitySetOverrideValue: 126 [cell accessibilitySetOverrideValue:
124 l10n_util::GetNSString(IDS_PROFILES_BUBBLE_ACCESSIBLE_DESCRIPTION) 127 l10n_util::GetNSString(IDS_PROFILES_BUBBLE_ACCESSIBLE_DESCRIPTION)
125 forAttribute:NSAccessibilityDescriptionAttribute]; 128 forAttribute:NSAccessibilityDescriptionAttribute];
126 129
127 [self setView:button]; 130 [self setView:button];
128 131
129 if (browser_->profile()->IsOffTheRecord()) { 132 Profile* profile = browser_->profile();
133 if (profile->IsOffTheRecord()) {
130 ResourceBundle& bundle = ResourceBundle::GetSharedInstance(); 134 ResourceBundle& bundle = ResourceBundle::GetSharedInstance();
131 NSImage* otrIcon = bundle.GetNativeImageNamed(IDR_OTR_ICON).ToNSImage(); 135 NSImage* otrIcon = bundle.GetNativeImageNamed(IDR_OTR_ICON).ToNSImage();
132 [self setImage:[self compositeImageWithShadow:otrIcon]]; 136 [self setImage:[self compositeImageWithShadow:otrIcon]];
133 [self setButtonEnabled:NO]; 137 [self setButtonEnabled:NO];
134 } else { 138 } else {
135 [self setButtonEnabled:YES]; 139 [self setButtonEnabled:YES];
136 observer_.reset(new AvatarButtonControllerInternal::Observer(self)); 140 observer_.reset(new AvatarButtonControllerInternal::Observer(self));
137 [self updateAvatar]; 141 [self updateAvatar];
142 if (ManagedUserService::ProfileIsManaged(profile)) {
143 label_.reset([[NSTextField alloc] initWithFrame:NSZeroRect]);
144 [label_ setEditable:NO];
145 [label_ setSelectable:NO];
146 [label_ setBezeled:NO];
147 [label_ setDrawsBackground:YES];
148 [label_ setFont:[NSFont labelFontOfSize:12.0]];
149 [label_ setStringValue:
150 l10n_util::GetNSString(IDS_MANAGED_USER_AVATAR_LABEL)];
Robert Sesek 2013/06/05 20:59:17 nit: just indent 4 spaces
Adrian Kuegel 2013/06/07 15:31:26 Done.
151 [label_ sizeToFit];
152 }
138 } 153 }
139 } 154 }
140 return self; 155 return self;
141 } 156 }
142 157
143 - (void)dealloc { 158 - (void)dealloc {
144 [[NSNotificationCenter defaultCenter] 159 [[NSNotificationCenter defaultCenter]
145 removeObserver:self 160 removeObserver:self
146 name:NSWindowWillCloseNotification 161 name:NSWindowWillCloseNotification
147 object:[menuController_ window]]; 162 object:[menuController_ window]];
148 [super dealloc]; 163 [super dealloc];
149 } 164 }
150 165
151 - (NSButton*)buttonView { 166 - (NSButton*)buttonView {
152 return static_cast<NSButton*>(self.view); 167 return static_cast<NSButton*>(self.view);
153 } 168 }
154 169
170 - (NSTextField*)labelView {
171 return label_.get();
172 }
173
155 - (void)setImage:(NSImage*)image { 174 - (void)setImage:(NSImage*)image {
156 [self.buttonView setImage:image]; 175 [self.buttonView setImage:image];
157 } 176 }
158 177
178 - (void)updateColors:(ui::ThemeProvider*)themeProvider {
179 if (themeProvider && label_.get()) {
180 NSColor* backgroundColor =
181 themeProvider->GetNSColor(ThemeProperties::COLOR_TOOLBAR, true);
182 [label_ setBackgroundColor:backgroundColor];
183 NSColor* textColor =
184 themeProvider->GetNSColor(ThemeProperties::COLOR_BOOKMARK_TEXT, true);
185 [label_ setTextColor:textColor];
186 }
187 }
188
159 - (void)showAvatarBubble { 189 - (void)showAvatarBubble {
160 if (menuController_) 190 if (menuController_)
161 return; 191 return;
162 192
163 DCHECK(chrome::IsCommandEnabled(browser_, IDC_SHOW_AVATAR_MENU)); 193 DCHECK(chrome::IsCommandEnabled(browser_, IDC_SHOW_AVATAR_MENU));
164 194
165 NSWindowController* wc = 195 NSWindowController* wc =
166 [browser_->window()->GetNativeWindow() windowController]; 196 [browser_->window()->GetNativeWindow() windowController];
167 if ([wc isKindOfClass:[BrowserWindowController class]]) { 197 if ([wc isKindOfClass:[BrowserWindowController class]]) {
168 [static_cast<BrowserWindowController*>(wc) 198 [static_cast<BrowserWindowController*>(wc)
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after
290 [themeFrame _tileTitlebarAndRedisplay:YES]; 320 [themeFrame _tileTitlebarAndRedisplay:YES];
291 } 321 }
292 322
293 // Testing ///////////////////////////////////////////////////////////////////// 323 // Testing /////////////////////////////////////////////////////////////////////
294 324
295 - (AvatarMenuBubbleController*)menuController { 325 - (AvatarMenuBubbleController*)menuController {
296 return menuController_; 326 return menuController_;
297 } 327 }
298 328
299 @end 329 @end
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698