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] | |
144 initWithFrame:NSMakeRect(0, 0, CGFLOAT_MAX, CGFLOAT_MAX)]); | |
Robert Sesek
2013/06/04 20:59:10
Since you're calling -sizeToFit, NSZeroRect is oka
Adrian Kuegel
2013/06/05 16:01:38
Done.
| |
145 [label_ setEditable:NO]; | |
146 [label_ setSelectable:NO]; | |
147 [label_ setBezeled:NO]; | |
148 [label_ setDrawsBackground:YES]; | |
149 [label_ setFont:[NSFont labelFontOfSize:12.0]]; | |
150 [label_ setStringValue: | |
151 l10n_util::GetNSString(IDS_MANAGED_USER_AVATAR_LABEL)]; | |
152 [label_ sizeToFit]; | |
153 } | |
138 } | 154 } |
139 } | 155 } |
140 return self; | 156 return self; |
141 } | 157 } |
142 | 158 |
143 - (void)dealloc { | 159 - (void)dealloc { |
144 [[NSNotificationCenter defaultCenter] | 160 [[NSNotificationCenter defaultCenter] |
145 removeObserver:self | 161 removeObserver:self |
146 name:NSWindowWillCloseNotification | 162 name:NSWindowWillCloseNotification |
147 object:[menuController_ window]]; | 163 object:[menuController_ window]]; |
148 [super dealloc]; | 164 [super dealloc]; |
149 } | 165 } |
150 | 166 |
151 - (NSButton*)buttonView { | 167 - (NSButton*)buttonView { |
152 return static_cast<NSButton*>(self.view); | 168 return static_cast<NSButton*>(self.view); |
153 } | 169 } |
154 | 170 |
171 - (NSTextField*)labelView { | |
172 return label_.get(); | |
173 } | |
174 | |
155 - (void)setImage:(NSImage*)image { | 175 - (void)setImage:(NSImage*)image { |
156 [self.buttonView setImage:image]; | 176 [self.buttonView setImage:image]; |
157 } | 177 } |
158 | 178 |
179 - (void)updateColors:(ui::ThemeProvider*)themeProvider { | |
180 if (themeProvider && label_.get()) { | |
181 NSColor* backgroundColor = | |
182 themeProvider->GetNSColor(ThemeProperties::COLOR_TOOLBAR, true); | |
183 [label_ setBackgroundColor:backgroundColor]; | |
184 NSColor* textColor = | |
185 themeProvider->GetNSColor(ThemeProperties::COLOR_BOOKMARK_TEXT, true); | |
186 [label_ setTextColor:textColor]; | |
187 } | |
188 } | |
189 | |
159 - (void)showAvatarBubble { | 190 - (void)showAvatarBubble { |
160 if (menuController_) | 191 if (menuController_) |
161 return; | 192 return; |
162 | 193 |
163 DCHECK(chrome::IsCommandEnabled(browser_, IDC_SHOW_AVATAR_MENU)); | 194 DCHECK(chrome::IsCommandEnabled(browser_, IDC_SHOW_AVATAR_MENU)); |
164 | 195 |
165 NSWindowController* wc = | 196 NSWindowController* wc = |
166 [browser_->window()->GetNativeWindow() windowController]; | 197 [browser_->window()->GetNativeWindow() windowController]; |
167 if ([wc isKindOfClass:[BrowserWindowController class]]) { | 198 if ([wc isKindOfClass:[BrowserWindowController class]]) { |
168 [static_cast<BrowserWindowController*>(wc) | 199 [static_cast<BrowserWindowController*>(wc) |
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
290 [themeFrame _tileTitlebarAndRedisplay:YES]; | 321 [themeFrame _tileTitlebarAndRedisplay:YES]; |
291 } | 322 } |
292 | 323 |
293 // Testing ///////////////////////////////////////////////////////////////////// | 324 // Testing ///////////////////////////////////////////////////////////////////// |
294 | 325 |
295 - (AvatarMenuBubbleController*)menuController { | 326 - (AvatarMenuBubbleController*)menuController { |
296 return menuController_; | 327 return menuController_; |
297 } | 328 } |
298 | 329 |
299 @end | 330 @end |
OLD | NEW |