Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 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_window_controller.h" | 5 #import "chrome/browser/ui/cocoa/browser_window_controller.h" |
| 6 | 6 |
| 7 #include <cmath> | 7 #include <cmath> |
| 8 #include <numeric> | 8 #include <numeric> |
| 9 | 9 |
| 10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
| 11 #include "base/mac/bundle_locations.h" | 11 #include "base/mac/bundle_locations.h" |
| 12 #include "base/mac/mac_util.h" | 12 #include "base/mac/mac_util.h" |
| 13 #import "base/memory/scoped_nsobject.h" | 13 #import "base/memory/scoped_nsobject.h" |
| 14 #include "base/strings/sys_string_conversions.h" | 14 #include "base/strings/sys_string_conversions.h" |
| 15 #include "base/utf_string_conversions.h" | 15 #include "base/utf_string_conversions.h" |
| 16 #include "chrome/app/chrome_command_ids.h" // IDC_* | 16 #include "chrome/app/chrome_command_ids.h" // IDC_* |
| 17 #include "chrome/browser/bookmarks/bookmark_editor.h" | 17 #include "chrome/browser/bookmarks/bookmark_editor.h" |
| 18 #include "chrome/browser/bookmarks/bookmark_model_factory.h" | 18 #include "chrome/browser/bookmarks/bookmark_model_factory.h" |
| 19 #include "chrome/browser/browser_process.h" | 19 #include "chrome/browser/browser_process.h" |
| 20 #include "chrome/browser/devtools/devtools_window.h" | 20 #include "chrome/browser/devtools/devtools_window.h" |
| 21 #include "chrome/browser/managed_mode/managed_user_service.h" | |
| 21 #include "chrome/browser/profiles/avatar_menu_model.h" | 22 #include "chrome/browser/profiles/avatar_menu_model.h" |
| 22 #include "chrome/browser/profiles/profile.h" | 23 #include "chrome/browser/profiles/profile.h" |
| 23 #include "chrome/browser/profiles/profile_info_cache.h" | 24 #include "chrome/browser/profiles/profile_info_cache.h" |
| 24 #include "chrome/browser/profiles/profile_manager.h" | 25 #include "chrome/browser/profiles/profile_manager.h" |
| 25 #include "chrome/browser/signin/signin_ui_util.h" | 26 #include "chrome/browser/signin/signin_ui_util.h" |
| 26 #include "chrome/browser/themes/theme_service.h" | 27 #include "chrome/browser/themes/theme_service.h" |
| 27 #include "chrome/browser/themes/theme_service_factory.h" | 28 #include "chrome/browser/themes/theme_service_factory.h" |
| 28 #include "chrome/browser/ui/browser.h" | 29 #include "chrome/browser/ui/browser.h" |
| 29 #include "chrome/browser/ui/browser_command_controller.h" | 30 #include "chrome/browser/ui/browser_command_controller.h" |
| 30 #include "chrome/browser/ui/browser_commands.h" | 31 #include "chrome/browser/ui/browser_commands.h" |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 73 #include "content/public/browser/render_view_host.h" | 74 #include "content/public/browser/render_view_host.h" |
| 74 #include "content/public/browser/render_widget_host_view.h" | 75 #include "content/public/browser/render_widget_host_view.h" |
| 75 #include "content/public/browser/web_contents.h" | 76 #include "content/public/browser/web_contents.h" |
| 76 #include "grit/chromium_strings.h" | 77 #include "grit/chromium_strings.h" |
| 77 #include "grit/generated_resources.h" | 78 #include "grit/generated_resources.h" |
| 78 #include "grit/locale_settings.h" | 79 #include "grit/locale_settings.h" |
| 79 #include "ui/base/l10n/l10n_util.h" | 80 #include "ui/base/l10n/l10n_util.h" |
| 80 #include "ui/base/l10n/l10n_util_mac.h" | 81 #include "ui/base/l10n/l10n_util_mac.h" |
| 81 #include "ui/gfx/mac/scoped_ns_disable_screen_updates.h" | 82 #include "ui/gfx/mac/scoped_ns_disable_screen_updates.h" |
| 82 | 83 |
| 84 | |
|
Robert Sesek
2013/06/04 20:59:10
nit: extra blank line
Adrian Kuegel
2013/06/05 16:01:38
Removed.
| |
| 83 using l10n_util::GetStringUTF16; | 85 using l10n_util::GetStringUTF16; |
| 84 using l10n_util::GetNSStringWithFixup; | 86 using l10n_util::GetNSStringWithFixup; |
| 85 using l10n_util::GetNSStringFWithFixup; | 87 using l10n_util::GetNSStringFWithFixup; |
| 86 | 88 |
| 87 // ORGANIZATION: This is a big file. It is (in principle) organized as follows | 89 // ORGANIZATION: This is a big file. It is (in principle) organized as follows |
| 88 // (in order): | 90 // (in order): |
| 89 // 1. Interfaces. Very short, one-time-use classes may include an implementation | 91 // 1. Interfaces. Very short, one-time-use classes may include an implementation |
| 90 // immediately after their interface. | 92 // immediately after their interface. |
| 91 // 2. The general implementation section, ordered as follows: | 93 // 2. The general implementation section, ordered as follows: |
| 92 // i. Public methods and overrides. | 94 // i. Public methods and overrides. |
| (...skipping 1525 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1618 } | 1620 } |
| 1619 | 1621 |
| 1620 - (void)onTabDetachedWithContents:(WebContents*)contents { | 1622 - (void)onTabDetachedWithContents:(WebContents*)contents { |
| 1621 [infoBarContainerController_ tabDetachedWithContents:contents]; | 1623 [infoBarContainerController_ tabDetachedWithContents:contents]; |
| 1622 } | 1624 } |
| 1623 | 1625 |
| 1624 - (void)userChangedTheme { | 1626 - (void)userChangedTheme { |
| 1625 // TODO(dmaclach): Instead of redrawing the whole window, views that care | 1627 // TODO(dmaclach): Instead of redrawing the whole window, views that care |
| 1626 // about the active window state should be registering for notifications. | 1628 // about the active window state should be registering for notifications. |
| 1627 [[self window] setViewsNeedDisplay:YES]; | 1629 [[self window] setViewsNeedDisplay:YES]; |
| 1630 if (avatarButtonController_.get()) | |
| 1631 [avatarButtonController_ updateColors:[self themeProvider]]; | |
| 1628 } | 1632 } |
| 1629 | 1633 |
| 1630 - (ui::ThemeProvider*)themeProvider { | 1634 - (ui::ThemeProvider*)themeProvider { |
| 1631 return ThemeServiceFactory::GetForProfile(browser_->profile()); | 1635 return ThemeServiceFactory::GetForProfile(browser_->profile()); |
| 1632 } | 1636 } |
| 1633 | 1637 |
| 1634 - (ThemedWindowStyle)themedWindowStyle { | 1638 - (ThemedWindowStyle)themedWindowStyle { |
| 1635 ThemedWindowStyle style = 0; | 1639 ThemedWindowStyle style = 0; |
| 1636 if (browser_->profile()->IsOffTheRecord()) | 1640 if (browser_->profile()->IsOffTheRecord()) |
| 1637 style |= THEMED_INCOGNITO; | 1641 style |= THEMED_INCOGNITO; |
| (...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1719 | 1723 |
| 1720 // If the browser is in incognito mode or has multi-profiles, install the image | 1724 // If the browser is in incognito mode or has multi-profiles, install the image |
| 1721 // view to decorate the window at the upper right. Use the same base y | 1725 // view to decorate the window at the upper right. Use the same base y |
| 1722 // coordinate as the tab strip. | 1726 // coordinate as the tab strip. |
| 1723 - (void)installAvatar { | 1727 - (void)installAvatar { |
| 1724 // Install the image into the badge view. Hide it for now; positioning and | 1728 // Install the image into the badge view. Hide it for now; positioning and |
| 1725 // sizing will be done by the layout code. The AvatarButton will choose which | 1729 // sizing will be done by the layout code. The AvatarButton will choose which |
| 1726 // image to display based on the browser. | 1730 // image to display based on the browser. |
| 1727 avatarButtonController_.reset( | 1731 avatarButtonController_.reset( |
| 1728 [[AvatarButtonController alloc] initWithBrowser:browser_.get()]); | 1732 [[AvatarButtonController alloc] initWithBrowser:browser_.get()]); |
| 1733 if ([avatarButtonController_ labelView]) { | |
| 1734 [avatarButtonController_ updateColors:[self themeProvider]]; | |
| 1735 NSTextField* label = [avatarButtonController_ labelView]; | |
| 1736 [label setNeedsDisplay:YES]; | |
| 1737 [label setHidden:![self shouldShowAvatar]]; | |
| 1738 | |
| 1739 // Install the view. | |
| 1740 [[[[self window] contentView] superview] addSubview:label]; | |
|
Robert Sesek
2013/06/04 20:59:10
Why not just have this be in the view that AvatarB
Adrian Kuegel
2013/06/05 16:01:38
Done.
Robert Sesek
2013/06/05 20:59:17
Not sure this was actually done.
Adrian Kuegel
2013/06/07 15:31:26
Yes, you are right, this was not working so far. T
| |
| 1741 } | |
| 1742 | |
| 1729 NSView* view = [avatarButtonController_ view]; | 1743 NSView* view = [avatarButtonController_ view]; |
| 1730 [view setAutoresizingMask:NSViewMinXMargin | NSViewMinYMargin]; | 1744 [view setAutoresizingMask:NSViewMinXMargin | NSViewMinYMargin]; |
| 1731 [view setHidden:![self shouldShowAvatar]]; | 1745 [view setHidden:![self shouldShowAvatar]]; |
| 1732 | 1746 |
| 1733 // Install the view. | 1747 // Install the view. |
| 1734 [[[[self window] contentView] superview] addSubview:view]; | 1748 [[[[self window] contentView] superview] addSubview:view]; |
| 1735 } | 1749 } |
| 1736 | 1750 |
| 1737 // Called when we get a three-finger swipe. | 1751 // Called when we get a three-finger swipe. |
| 1738 - (void)swipeWithEvent:(NSEvent*)event { | 1752 - (void)swipeWithEvent:(NSEvent*)event { |
| (...skipping 493 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2232 | 2246 |
| 2233 - (BOOL)supportsBookmarkBar { | 2247 - (BOOL)supportsBookmarkBar { |
| 2234 return [self supportsWindowFeature:Browser::FEATURE_BOOKMARKBAR]; | 2248 return [self supportsWindowFeature:Browser::FEATURE_BOOKMARKBAR]; |
| 2235 } | 2249 } |
| 2236 | 2250 |
| 2237 - (BOOL)isTabbedWindow { | 2251 - (BOOL)isTabbedWindow { |
| 2238 return browser_->is_type_tabbed(); | 2252 return browser_->is_type_tabbed(); |
| 2239 } | 2253 } |
| 2240 | 2254 |
| 2241 @end // @implementation BrowserWindowController(WindowType) | 2255 @end // @implementation BrowserWindowController(WindowType) |
| OLD | NEW |