OLD | NEW |
---|---|
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 Loading... | |
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 Loading... | |
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 |
OLD | NEW |