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" |
(...skipping 22 matching lines...) Expand all Loading... |
33 #include "chrome/browser/ui/bookmarks/bookmark_editor.h" | 33 #include "chrome/browser/ui/bookmarks/bookmark_editor.h" |
34 #include "chrome/browser/ui/bookmarks/bookmark_utils.h" | 34 #include "chrome/browser/ui/bookmarks/bookmark_utils.h" |
35 #include "chrome/browser/ui/browser.h" | 35 #include "chrome/browser/ui/browser.h" |
36 #include "chrome/browser/ui/browser_command_controller.h" | 36 #include "chrome/browser/ui/browser_command_controller.h" |
37 #include "chrome/browser/ui/browser_commands.h" | 37 #include "chrome/browser/ui/browser_commands.h" |
38 #include "chrome/browser/ui/browser_instant_controller.h" | 38 #include "chrome/browser/ui/browser_instant_controller.h" |
39 #include "chrome/browser/ui/browser_list.h" | 39 #include "chrome/browser/ui/browser_list.h" |
40 #include "chrome/browser/ui/browser_window_state.h" | 40 #include "chrome/browser/ui/browser_window_state.h" |
41 #import "chrome/browser/ui/cocoa/background_gradient_view.h" | 41 #import "chrome/browser/ui/cocoa/background_gradient_view.h" |
42 #import "chrome/browser/ui/cocoa/bookmarks/bookmark_bar_controller.h" | 42 #import "chrome/browser/ui/cocoa/bookmarks/bookmark_bar_controller.h" |
| 43 #import "chrome/browser/ui/cocoa/bookmarks/bookmark_bubble_observer_cocoa.h" |
43 #import "chrome/browser/ui/cocoa/bookmarks/bookmark_editor_controller.h" | 44 #import "chrome/browser/ui/cocoa/bookmarks/bookmark_editor_controller.h" |
44 #import "chrome/browser/ui/cocoa/browser_window_cocoa.h" | 45 #import "chrome/browser/ui/cocoa/browser_window_cocoa.h" |
45 #import "chrome/browser/ui/cocoa/browser_window_controller_private.h" | 46 #import "chrome/browser/ui/cocoa/browser_window_controller_private.h" |
46 #import "chrome/browser/ui/cocoa/browser_window_layout.h" | 47 #import "chrome/browser/ui/cocoa/browser_window_layout.h" |
47 #import "chrome/browser/ui/cocoa/browser_window_utils.h" | 48 #import "chrome/browser/ui/cocoa/browser_window_utils.h" |
48 #import "chrome/browser/ui/cocoa/dev_tools_controller.h" | 49 #import "chrome/browser/ui/cocoa/dev_tools_controller.h" |
49 #import "chrome/browser/ui/cocoa/download/download_shelf_controller.h" | 50 #import "chrome/browser/ui/cocoa/download/download_shelf_controller.h" |
50 #include "chrome/browser/ui/cocoa/extensions/extension_keybinding_registry_cocoa
.h" | 51 #include "chrome/browser/ui/cocoa/extensions/extension_keybinding_registry_cocoa
.h" |
51 #import "chrome/browser/ui/cocoa/fast_resize_view.h" | 52 #import "chrome/browser/ui/cocoa/fast_resize_view.h" |
52 #import "chrome/browser/ui/cocoa/find_bar/find_bar_bridge.h" | 53 #import "chrome/browser/ui/cocoa/find_bar/find_bar_bridge.h" |
(...skipping 1706 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1759 alignment:alignment]; | 1760 alignment:alignment]; |
1760 } | 1761 } |
1761 | 1762 |
1762 - (NSPoint)bookmarkBubblePoint { | 1763 - (NSPoint)bookmarkBubblePoint { |
1763 return [toolbarController_ bookmarkBubblePoint]; | 1764 return [toolbarController_ bookmarkBubblePoint]; |
1764 } | 1765 } |
1765 | 1766 |
1766 // Show the bookmark bubble (e.g. user just clicked on the STAR). | 1767 // Show the bookmark bubble (e.g. user just clicked on the STAR). |
1767 - (void)showBookmarkBubbleForURL:(const GURL&)url | 1768 - (void)showBookmarkBubbleForURL:(const GURL&)url |
1768 alreadyBookmarked:(BOOL)alreadyMarked { | 1769 alreadyBookmarked:(BOOL)alreadyMarked { |
1769 if (!bookmarkBubbleController_) { | 1770 if (!bookmarkBubbleObserver_.get()) { |
| 1771 bookmarkBubbleObserver_.reset(new BookmarkBubbleObserverCocoa(self)); |
1770 BookmarkModel* model = | 1772 BookmarkModel* model = |
1771 BookmarkModelFactory::GetForProfile(browser_->profile()); | 1773 BookmarkModelFactory::GetForProfile(browser_->profile()); |
1772 bookmarks::ManagedBookmarkService* managed = | 1774 bookmarks::ManagedBookmarkService* managed = |
1773 ManagedBookmarkServiceFactory::GetForProfile(browser_->profile()); | 1775 ManagedBookmarkServiceFactory::GetForProfile(browser_->profile()); |
1774 const BookmarkNode* node = model->GetMostRecentlyAddedUserNodeForURL(url); | 1776 const BookmarkNode* node = model->GetMostRecentlyAddedUserNodeForURL(url); |
1775 bookmarkBubbleController_ = | 1777 bookmarkBubbleController_ = [[BookmarkBubbleController alloc] |
1776 [[BookmarkBubbleController alloc] initWithParentWindow:[self window] | 1778 initWithParentWindow:[self window] |
1777 managed:managed | 1779 bubbleObserver:bookmarkBubbleObserver_.get() |
1778 model:model | 1780 managed:managed |
1779 node:node | 1781 model:model |
1780 alreadyBookmarked:alreadyMarked]; | 1782 node:node |
| 1783 alreadyBookmarked:alreadyMarked]; |
1781 [bookmarkBubbleController_ showWindow:self]; | 1784 [bookmarkBubbleController_ showWindow:self]; |
1782 NSNotificationCenter* center = [NSNotificationCenter defaultCenter]; | 1785 DCHECK(bookmarkBubbleObserver_); |
1783 [center addObserver:self | |
1784 selector:@selector(bookmarkBubbleWindowWillClose:) | |
1785 name:NSWindowWillCloseNotification | |
1786 object:[bookmarkBubbleController_ window]]; | |
1787 } | 1786 } |
1788 } | 1787 } |
1789 | 1788 |
1790 // Nil out the weak bookmark bubble controller reference. | 1789 - (void)bookmarkBubbleClosed { |
1791 - (void)bookmarkBubbleWindowWillClose:(NSNotification*)notification { | 1790 // Nil out the weak bookmark bubble controller reference. |
1792 DCHECK_EQ([notification object], [bookmarkBubbleController_ window]); | |
1793 | |
1794 NSNotificationCenter* center = [NSNotificationCenter defaultCenter]; | |
1795 [center removeObserver:self | |
1796 name:NSWindowWillCloseNotification | |
1797 object:[bookmarkBubbleController_ window]]; | |
1798 bookmarkBubbleController_ = nil; | 1791 bookmarkBubbleController_ = nil; |
| 1792 bookmarkBubbleObserver_.reset(); |
1799 } | 1793 } |
1800 | 1794 |
1801 // Handle the editBookmarkNode: action sent from bookmark bubble controllers. | 1795 // Handle the editBookmarkNode: action sent from bookmark bubble controllers. |
1802 - (void)editBookmarkNode:(id)sender { | 1796 - (void)editBookmarkNode:(id)sender { |
1803 BOOL responds = [sender respondsToSelector:@selector(node)]; | 1797 BOOL responds = [sender respondsToSelector:@selector(node)]; |
1804 DCHECK(responds); | 1798 DCHECK(responds); |
1805 if (responds) { | 1799 if (responds) { |
1806 const BookmarkNode* node = [sender node]; | 1800 const BookmarkNode* node = [sender node]; |
1807 if (node) | 1801 if (node) |
1808 BookmarkEditor::Show([self window], browser_->profile(), | 1802 BookmarkEditor::Show([self window], browser_->profile(), |
(...skipping 458 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2267 | 2261 |
2268 - (BOOL)supportsBookmarkBar { | 2262 - (BOOL)supportsBookmarkBar { |
2269 return [self supportsWindowFeature:Browser::FEATURE_BOOKMARKBAR]; | 2263 return [self supportsWindowFeature:Browser::FEATURE_BOOKMARKBAR]; |
2270 } | 2264 } |
2271 | 2265 |
2272 - (BOOL)isTabbedWindow { | 2266 - (BOOL)isTabbedWindow { |
2273 return browser_->is_type_tabbed(); | 2267 return browser_->is_type_tabbed(); |
2274 } | 2268 } |
2275 | 2269 |
2276 @end // @implementation BrowserWindowController(WindowType) | 2270 @end // @implementation BrowserWindowController(WindowType) |
OLD | NEW |