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

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

Issue 1308293002: [Mac] Refactor bookmark pulsing into BookmarkBubbleObserverCocoa. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@bookmarkeditor
Patch Set: Address comments Created 5 years, 4 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
OLDNEW
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
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
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
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)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698