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

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

Issue 2729603008: [Mac] Remove bookmark bar NIB (Closed)
Patch Set: CL comments Created 3 years, 9 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_view_cocoa.mm
diff --git a/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_view_cocoa.mm b/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_view_cocoa.mm
index cda5adee7b2472f17c9039eaab4a486d7b3fc971..620ccb317c42bab7b940517b504562f8e609338d 100644
--- a/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_view_cocoa.mm
+++ b/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_view_cocoa.mm
@@ -14,17 +14,29 @@
#import "chrome/browser/ui/cocoa/browser_window_controller.h"
#import "chrome/browser/ui/cocoa/themed_window.h"
#import "chrome/browser/ui/cocoa/view_id_util.h"
+#include "chrome/grit/generated_resources.h"
#include "components/bookmarks/browser/bookmark_pasteboard_helper_mac.h"
#include "components/bookmarks/browser/bookmark_utils.h"
#include "content/public/browser/user_metrics.h"
#import "third_party/mozilla/NSPasteboard+Utils.h"
#include "ui/base/clipboard/clipboard_util_mac.h"
+#import "ui/base/cocoa/controls/hyperlink_button_cell.h"
#import "ui/base/cocoa/nsview_additions.h"
+#include "ui/base/l10n/l10n_util_mac.h"
using base::UserMetricsAction;
using bookmarks::BookmarkModel;
using bookmarks::BookmarkNode;
+static const CGFloat kInitialContainerWidth = 596;
+static const CGFloat kInitialContainerHeight = 41;
+static const CGFloat kInitialElementYOrigin = 20;
+static const CGFloat kInitialElementHeight = 14;
+static const CGFloat kInitialTextFieldXOrigin = 5;
+// static const CGFloat kInitialTextFieldWidth = 167;
+static const CGFloat kTextFieldTrailingPadding = 5;
+// static const CGFloat kInitialButtonWidth = 199;
+
@interface BookmarkBarView (Private)
- (void)themeDidChangeNotification:(NSNotification*)aNotification;
- (void)updateTheme:(const ui::ThemeProvider*)themeProvider;
@@ -37,7 +49,7 @@ using bookmarks::BookmarkNode;
@synthesize dropIndicatorShown = dropIndicatorShown_;
@synthesize dropIndicatorPosition = dropIndicatorPosition_;
-@synthesize noItemContainer = noItemContainer_;
+@synthesize controller = controller_;
- (void)setFrameSize:(NSSize)size {
NSSize oldFrameSize = [self frame].size;
@@ -55,20 +67,72 @@ using bookmarks::BookmarkNode;
[self unregisterDraggedTypes];
[super dealloc];
- // To be clear, our controller_ is an IBOutlet and owns us, so we
- // don't deallocate it explicitly. It is owned by the browser
- // window controller, so gets deleted with a browser window is
- // closed.
+ // To be clear, our controller_ owns us, so we on't deallocate it explicitly.
+ // It is owned by the browser window controller, so gets deleted with a
+ // browser window is closed.
}
-- (void)awakeFromNib {
+- (instancetype)initWithController:(BookmarkBarController*)controller
+ frame:(NSRect)frame {
+ DCHECK(controller) << "Controller shouldn't be nil";
+ if (self = [super initWithFrame:frame]) {
+ controller_ = controller;
+
+ NSFont* smallSystemFont =
+ [NSFont systemFontOfSize:[NSFont smallSystemFontSize]];
+ noItemContainer_.reset(
+ [[NSView alloc] initWithFrame:NSMakeRect(0, 0, kInitialContainerWidth,
+ kInitialContainerHeight)]);
+ [noItemContainer_ setAutoresizingMask:NSViewMaxXMargin];
+
+ noItemTextfield_.reset([[NSTextField alloc]
+ initWithFrame:NSMakeRect(kInitialTextFieldXOrigin,
+ kInitialElementYOrigin, CGFLOAT_MAX,
+ kInitialElementHeight)]);
+ [noItemTextfield_ setAutoresizingMask:NSViewWidthSizable];
+ [noItemTextfield_ setFont:smallSystemFont];
+ [noItemTextfield_
+ setStringValue:l10n_util::GetNSString(IDS_BOOKMARKS_NO_ITEMS)];
+
+ [noItemTextfield_ setBordered:NO];
+ [[noItemTextfield_ cell] setLineBreakMode:NSLineBreakByTruncatingTail];
+
+ [noItemTextfield_ setTextColor:[NSColor controlTextColor]];
+ [noItemTextfield_ setBackgroundColor:[NSColor controlColor]];
+
+ [noItemTextfield_ setDrawsBackground:NO];
+ [noItemTextfield_ setTextColor:[NSColor controlTextColor]];
+ [noItemTextfield_ setBackgroundColor:[NSColor controlColor]];
+ [noItemTextfield_ sizeToFit];
+
+ NSButton* importButton = [HyperlinkButtonCell
+ buttonWithString:l10n_util::GetNSString(IDS_BOOKMARK_BAR_IMPORT_LINK)];
+ importBookmarksButton_.reset([importButton retain]);
+ [importBookmarksButton_
+ setFrame:NSMakeRect(NSMaxX([noItemTextfield_ frame]) +
+ kTextFieldTrailingPadding,
+ kInitialElementYOrigin, CGFLOAT_MAX,
+ kInitialElementHeight)];
+ [importBookmarksButton_ setAutoresizingMask:NSViewMaxXMargin];
+ [importBookmarksButton_ setFont:smallSystemFont];
+ [importBookmarksButton_ sizeToFit];
+ [noItemContainer_ addSubview:importBookmarksButton_];
+
+ [noItemContainer_ addSubview:noItemTextfield_];
+
+ [self addSubview:noItemContainer_];
+ [self registerForNotificationsAndDraggedTypes];
+ }
+ return self;
+}
+
+- (void)registerForNotificationsAndDraggedTypes {
NSNotificationCenter* defaultCenter = [NSNotificationCenter defaultCenter];
[defaultCenter addObserver:self
selector:@selector(themeDidChangeNotification:)
name:kBrowserThemeDidChangeNotification
object:nil];
- DCHECK(controller_) << "Expected this to be hooked up via Interface Builder";
NSArray* types = @[
NSStringPboardType, NSHTMLPboardType, NSURLPboardType,
ui::ClipboardUtil::UTIForPasteboardType(kBookmarkButtonDragType),
@@ -117,12 +181,12 @@ using bookmarks::BookmarkNode;
return noItemTextfield_;
}
-- (NSButton*)importBookmarksButton {
- return importBookmarksButton_;
+- (NSView*)noItemContainer {
+ return noItemContainer_;
}
-- (BookmarkBarController*)controller {
- return controller_;
+- (NSButton*)importBookmarksButton {
+ return importBookmarksButton_;
}
// Internal method, needs to be called whenever a change has been made to
@@ -281,10 +345,6 @@ using bookmarks::BookmarkNode;
return [[controller_ menuController] menuForBookmarkBar];
}
-- (void)setController:(id)controller {
- controller_ = controller;
-}
-
- (ViewID)viewID {
return VIEW_ID_BOOKMARK_BAR;
}

Powered by Google App Engine
This is Rietveld 408576698