Index: chrome/browser/ui/cocoa/bookmarks/bookmark_bubble_observer_cocoa.mm |
diff --git a/chrome/browser/ui/cocoa/bookmarks/bookmark_bubble_observer_cocoa.mm b/chrome/browser/ui/cocoa/bookmarks/bookmark_bubble_observer_cocoa.mm |
new file mode 100644 |
index 0000000000000000000000000000000000000000..34bfca5fc279ff7c4e3b753041140456ff5004a8 |
--- /dev/null |
+++ b/chrome/browser/ui/cocoa/bookmarks/bookmark_bubble_observer_cocoa.mm |
@@ -0,0 +1,30 @@ |
+// Copyright 2015 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#import "chrome/browser/ui/cocoa/bookmarks/bookmark_bubble_observer_cocoa.h" |
+ |
+#import <Cocoa/Cocoa.h> |
+ |
+#import "chrome/browser/ui/cocoa/bookmarks/bookmark_bar_controller.h" |
+#import "chrome/browser/ui/cocoa/browser_window_controller.h" |
+ |
+BookmarkBubbleObserverCocoa::BookmarkBubbleObserverCocoa( |
+ BrowserWindowController* controller) |
+ : controller_(controller), lockOwner_([[NSObject alloc] init]) {} |
+ |
+BookmarkBubbleObserverCocoa::~BookmarkBubbleObserverCocoa() {} |
+ |
+void BookmarkBubbleObserverCocoa::OnBookmarkBubbleShown( |
+ const bookmarks::BookmarkNode* node) { |
+ [controller_ lockBarVisibilityForOwner:lockOwner_ withAnimation:NO delay:NO]; |
+ [[controller_ bookmarkBarController] startPulsingBookmarkNode:node]; |
+} |
+ |
+void BookmarkBubbleObserverCocoa::OnBookmarkBubbleHidden() { |
+ [controller_ releaseBarVisibilityForOwner:lockOwner_ |
+ withAnimation:YES |
+ delay:NO]; |
+ [[controller_ bookmarkBarController] stopPulsingBookmarkNode]; |
+ [controller_ bookmarkBubbleClosed]; |
+} |