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

Unified Diff: chrome/browser/ui/cocoa/bookmarks/bookmark_bar_folder_view.mm

Issue 7465090: [Mac] Replace the custom bookmark menus with native NSMenus. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Typo Created 9 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/cocoa/bookmarks/bookmark_bar_folder_view.mm
diff --git a/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_folder_view.mm b/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_folder_view.mm
deleted file mode 100644
index c108b4259c36df335cad321dca4a7e68b175df9b..0000000000000000000000000000000000000000
--- a/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_folder_view.mm
+++ /dev/null
@@ -1,206 +0,0 @@
-// Copyright (c) 2011 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_bar_folder_view.h"
-
-#include "chrome/browser/bookmarks/bookmark_pasteboard_helper_mac.h"
-#import "chrome/browser/ui/cocoa/bookmarks/bookmark_bar_controller.h"
-#import "chrome/browser/ui/cocoa/bookmarks/bookmark_folder_target.h"
-#include "content/browser/user_metrics.h"
-
-#import "third_party/mozilla/NSPasteboard+Utils.h"
-
-@interface BookmarkBarFolderView()
-
-@property(readonly, nonatomic) id<BookmarkButtonControllerProtocol> controller;
-
-@end
-
-@implementation BookmarkBarFolderView
-
-- (void)awakeFromNib {
- NSArray* types = [NSArray arrayWithObjects:
- NSStringPboardType,
- NSHTMLPboardType,
- NSURLPboardType,
- kBookmarkButtonDragType,
- kBookmarkDictionaryListPboardType,
- nil];
- [self registerForDraggedTypes:types];
-}
-
-- (void)dealloc {
- [self unregisterDraggedTypes];
- [super dealloc];
-}
-
-- (id<BookmarkButtonControllerProtocol>)controller {
- // When needed for testing, set the local data member |controller_| to
- // the test controller.
- return controller_ ? controller_ : [[self window] windowController];
-}
-
-- (void)drawRect:(NSRect)rect {
- // TODO(jrg): copied from bookmark_bar_view but orientation changed.
- // Code dup sucks but I'm not sure I can take 16 lines and make it
- // generic for horiz vs vertical while keeping things simple.
- // TODO(jrg): when throwing it all away and using animations, try
- // hard to make a common routine for both.
- // http://crbug.com/35966, http://crbug.com/35968
-
- // Draw the bookmark-button-dragging drop indicator if necessary.
- if (dropIndicatorShown_) {
- const CGFloat kBarHeight = 1;
- const CGFloat kBarHorizPad = 4;
- const CGFloat kBarOpacity = 0.85;
-
- NSRect uglyBlackBar =
- NSMakeRect(kBarHorizPad, dropIndicatorPosition_,
- NSWidth([self bounds]) - 2*kBarHorizPad,
- kBarHeight);
- NSColor* uglyBlackBarColor = [NSColor blackColor];
- [[uglyBlackBarColor colorWithAlphaComponent:kBarOpacity] setFill];
- [[NSBezierPath bezierPathWithRect:uglyBlackBar] fill];
- }
-}
-
-// TODO(mrossetti,jrg): Identical to -[BookmarkBarView
-// dragClipboardContainsBookmarks]. http://crbug.com/35966
-// Shim function to assist in unit testing.
-- (BOOL)dragClipboardContainsBookmarks {
- return bookmark_pasteboard_helper_mac::DragClipboardContainsBookmarks();
-}
-
-// Virtually identical to [BookmarkBarView draggingEntered:].
-// TODO(jrg): find a way to share code. Lack of multiple inheritance
-// makes things more of a pain but there should be no excuse for laziness.
-// http://crbug.com/35966
-- (NSDragOperation)draggingEntered:(id<NSDraggingInfo>)info {
- inDrag_ = YES;
- if (![[self controller] draggingAllowed:info])
- return NSDragOperationNone;
- if ([[info draggingPasteboard] dataForType:kBookmarkButtonDragType] ||
- [self dragClipboardContainsBookmarks] ||
- [[info draggingPasteboard] containsURLData]) {
- // Find the position of the drop indicator.
- BOOL showIt = [[self controller]
- shouldShowIndicatorShownForPoint:[info draggingLocation]];
- if (!showIt) {
- if (dropIndicatorShown_) {
- dropIndicatorShown_ = NO;
- [self setNeedsDisplay:YES];
- }
- } else {
- CGFloat y =
- [[self controller]
- indicatorPosForDragToPoint:[info draggingLocation]];
-
- // Need an update if the indicator wasn't previously shown or if it has
- // moved.
- if (!dropIndicatorShown_ || dropIndicatorPosition_ != y) {
- dropIndicatorShown_ = YES;
- dropIndicatorPosition_ = y;
- [self setNeedsDisplay:YES];
- }
- }
-
- [[self controller] draggingEntered:info]; // allow hover-open to work
- return [info draggingSource] ? NSDragOperationMove : NSDragOperationCopy;
- }
- return NSDragOperationNone;
-}
-
-- (void)draggingExited:(id<NSDraggingInfo>)info {
- [[self controller] draggingExited:info];
-
- // Regardless of the type of dragging which ended, we need to get rid of the
- // drop indicator if one was shown.
- if (dropIndicatorShown_) {
- dropIndicatorShown_ = NO;
- [self setNeedsDisplay:YES];
- }
-}
-
-- (void)draggingEnded:(id<NSDraggingInfo>)info {
- // Awkwardness since views open and close out from under us.
- if (inDrag_) {
- inDrag_ = NO;
- }
-
- [self draggingExited:info];
-}
-
-- (BOOL)wantsPeriodicDraggingUpdates {
- // TODO(jrg): This should probably return |YES| and the controller should
- // slide the existing bookmark buttons interactively to the side to make
- // room for the about-to-be-dropped bookmark.
- // http://crbug.com/35968
- return NO;
-}
-
-- (NSDragOperation)draggingUpdated:(id<NSDraggingInfo>)info {
- // For now it's the same as draggingEntered:.
- // TODO(jrg): once we return YES for wantsPeriodicDraggingUpdates,
- // this should ping the [self controller] to perform animations.
- // http://crbug.com/35968
- return [self draggingEntered:info];
-}
-
-- (BOOL)prepareForDragOperation:(id<NSDraggingInfo>)info {
- return YES;
-}
-
-// This code is practically identical to the same function in BookmarkBarView
-// with the only difference being how the controller is retrieved.
-// TODO(mrossetti,jrg): http://crbug.com/35966
-// Implement NSDraggingDestination protocol method
-// performDragOperation: for URLs.
-- (BOOL)performDragOperationForURL:(id<NSDraggingInfo>)info {
- NSPasteboard* pboard = [info draggingPasteboard];
- DCHECK([pboard containsURLData]);
-
- NSArray* urls = nil;
- NSArray* titles = nil;
- [pboard getURLs:&urls andTitles:&titles convertingFilenames:YES];
-
- return [[self controller] addURLs:urls
- withTitles:titles
- at:[info draggingLocation]];
-}
-
-// This code is practically identical to the same function in BookmarkBarView
-// with the only difference being how the controller is retrieved.
-// http://crbug.com/35966
-// Implement NSDraggingDestination protocol method
-// performDragOperation: for bookmark buttons.
-- (BOOL)performDragOperationForBookmarkButton:(id<NSDraggingInfo>)info {
- BOOL doDrag = NO;
- NSData* data = [[info draggingPasteboard]
- dataForType:kBookmarkButtonDragType];
- // [info draggingSource] is nil if not the same application.
- if (data && [info draggingSource]) {
- BookmarkButton* button = nil;
- [data getBytes:&button length:sizeof(button)];
- BOOL copy = !([info draggingSourceOperationMask] & NSDragOperationMove);
- doDrag = [[self controller] dragButton:button
- to:[info draggingLocation]
- copy:copy];
- UserMetrics::RecordAction(UserMetricsAction("BookmarkBarFolder_DragEnd"));
- }
- return doDrag;
-}
-
-- (BOOL)performDragOperation:(id<NSDraggingInfo>)info {
- if ([[self controller] dragBookmarkData:info])
- return YES;
- NSPasteboard* pboard = [info draggingPasteboard];
- if ([pboard dataForType:kBookmarkButtonDragType] &&
- [self performDragOperationForBookmarkButton:info])
- return YES;
- if ([pboard containsURLData] && [self performDragOperationForURL:info])
- return YES;
- return NO;
-}
-
-@end

Powered by Google App Engine
This is Rietveld 408576698