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

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

Issue 769153007: Managed bookmarks for supervised users (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: string change Created 5 years, 11 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_controller.mm
diff --git a/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_controller.mm b/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_controller.mm
index 36901ced5414c1c1afc75a8ac1672e145a6f0179..42706e1adff429ff6159563184ef227bba9afef8 100644
--- a/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_controller.mm
+++ b/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_controller.mm
@@ -220,10 +220,12 @@ void RecordAppLaunch(Profile* profile, GURL url) {
- (int)preferredHeight;
- (void)addButtonsToView;
- (BOOL)setManagedBookmarksButtonVisibility;
+- (BOOL)setSupervisedBookmarksButtonVisibility;
- (BOOL)setOtherBookmarksButtonVisibility;
- (BOOL)setAppsPageShortcutButtonVisibility;
- (BookmarkButton*)createCustomBookmarkButtonForCell:(NSCell*)cell;
- (void)createManagedBookmarksButton;
+- (void)createSupervisedBookmarksButton;
- (void)createOtherBookmarksButton;
- (void)createAppsPageShortcutButton;
- (void)openAppsPage:(id)sender;
@@ -329,6 +331,10 @@ void RecordAppLaunch(Profile* profile, GURL url) {
[managedBookmarksButton_ setIsContinuousPulsing:doPulse];
return;
}
+ if ([supervisedBookmarksButton_ bookmarkNode] == node) {
+ [supervisedBookmarksButton_ setIsContinuousPulsing:doPulse];
+ return;
+ }
if ([otherBookmarksButton_ bookmarkNode] == node) {
[otherBookmarksButton_ setIsContinuousPulsing:doPulse];
return;
@@ -500,6 +506,7 @@ void RecordAppLaunch(Profile* profile, GURL url) {
// buttons_ array.
[appsPageShortcutButton_ setNeedsDisplay:YES];
[managedBookmarksButton_ setNeedsDisplay:YES];
+ [supervisedBookmarksButton_ setNeedsDisplay:YES];
[otherBookmarksButton_ setNeedsDisplay:YES];
}
}
@@ -512,10 +519,13 @@ void RecordAppLaunch(Profile* profile, GURL url) {
}
- (void)updateExtraButtonsVisibility {
- if (!appsPageShortcutButton_.get() || !managedBookmarksButton_.get())
+ if (!appsPageShortcutButton_.get() ||
+ !managedBookmarksButton_.get() ||
+ !supervisedBookmarksButton_.get())
Alexei Svitkine (slow) 2015/01/23 16:06:13 Nit: add {}'s
Marc Treib 2015/01/26 12:27:42 Done.
return;
[self setAppsPageShortcutButtonVisibility];
[self setManagedBookmarksButtonVisibility];
+ [self setSupervisedBookmarksButtonVisibility];
[self resetAllButtonPositionsWithAnimation:NO];
[self reconfigureBookmarkBar];
}
@@ -588,6 +598,13 @@ void RecordAppLaunch(Profile* profile, GURL url) {
return rb.GetNativeImageNamed(IDR_BOOKMARK_BAR_FOLDER_MANAGED).ToNSImage();
}
+ if (node == bookmarkClient_->supervised_node()) {
+ // Most users never see this node, so the image is only loaded if needed.
+ ResourceBundle& rb = ResourceBundle::GetSharedInstance();
+ return rb.GetNativeImageNamed(
+ IDR_BOOKMARK_BAR_FOLDER_SUPERVISED).ToNSImage();
+ }
+
if (node->is_folder())
return folderImage_;
@@ -1102,6 +1119,15 @@ void RecordAppLaunch(Profile* profile, GURL url) {
[managedBookmarksButton_ setFrame:frame];
}
+ // Draw the supervised bookmark folder if needed.
+ if (![supervisedBookmarksButton_ isHidden]) {
+ xOffset += bookmarks::kBookmarkHorizontalPadding;
+ NSRect frame =
+ [self frameForBookmarkButtonFromCell:[supervisedBookmarksButton_ cell]
+ xOffset:&xOffset];
+ [supervisedBookmarksButton_ setFrame:frame];
+ }
+
for (int i = 0; i < node->child_count(); i++) {
const BookmarkNode* child = node->GetChild(i);
BookmarkButton* button = [self buttonForNode:child xOffset:&xOffset];
@@ -1185,7 +1211,7 @@ void RecordAppLaunch(Profile* profile, GURL url) {
}
}
-// Shows or hides the Other Bookmarks button as appropriate, and returns
+// Shows or hides the Managed Bookmarks button as appropriate, and returns
// whether it ended up visible.
- (BOOL)setManagedBookmarksButtonVisibility {
if (!managedBookmarksButton_.get())
@@ -1203,6 +1229,21 @@ void RecordAppLaunch(Profile* profile, GURL url) {
return visible;
}
+// Shows or hides the Supervised Bookmarks button as appropriate, and returns
+// whether it ended up visible.
+- (BOOL)setSupervisedBookmarksButtonVisibility {
+ if (!supervisedBookmarksButton_.get())
Alexei Svitkine (slow) 2015/01/23 16:06:13 This code is basically identical to -setManagedBoo
Marc Treib 2015/01/26 12:27:42 It's not quite identical - for the managed button,
+ return NO;
+
+ BOOL visible = ![supervisedBookmarksButton_ bookmarkNode]->empty();
+ BOOL currentVisibility = ![supervisedBookmarksButton_ isHidden];
+ if (currentVisibility != visible) {
+ [supervisedBookmarksButton_ setHidden:!visible];
+ [self resetAllButtonPositionsWithAnimation:NO];
+ }
+ return visible;
+}
+
// Shows or hides the Other Bookmarks button as appropriate, and returns
// whether it ended up visible.
- (BOOL)setOtherBookmarksButtonVisibility {
@@ -1267,6 +1308,27 @@ void RecordAppLaunch(Profile* profile, GURL url) {
[self setManagedBookmarksButtonVisibility];
}
+// Creates the button for "Supervised Bookmarks", but does not position it.
+- (void)createSupervisedBookmarksButton {
+ if (supervisedBookmarksButton_.get()) {
+ // The button's already there, but its visibility may have changed.
+ [self setSupervisedBookmarksButtonVisibility];
+
Alexei Svitkine (slow) 2015/01/23 16:06:13 Nit: Remove empty line.
Marc Treib 2015/01/26 12:27:42 Done.
+ return;
+ }
+
+ NSCell* cell = [self cellForBookmarkNode:bookmarkClient_->supervised_node()];
+ supervisedBookmarksButton_.reset(
+ [self createCustomBookmarkButtonForCell:cell]);
+ [supervisedBookmarksButton_
+ setAction:@selector(openBookmarkFolderFromButton:)];
+ view_id_util::SetID(supervisedBookmarksButton_.get(),
+ VIEW_ID_SUPERVISED_BOOKMARKS);
+ [buttonView_ addSubview:supervisedBookmarksButton_.get()];
+
+ [self setSupervisedBookmarksButtonVisibility];
+}
+
// Creates the button for "Other Bookmarks", but does not position it.
- (void)createOtherBookmarksButton {
// Can't create this until the model is loaded, but only need to
@@ -1423,6 +1485,7 @@ void RecordAppLaunch(Profile* profile, GURL url) {
- (void)reconfigureBookmarkBar {
[self setManagedBookmarksButtonVisibility];
+ [self setSupervisedBookmarksButtonVisibility];
[self redistributeButtonsOnBarAsNeeded];
[self positionRightSideButtons];
[self configureOffTheSideButtonContentsAndVisibility];
@@ -1495,6 +1558,11 @@ void RecordAppLaunch(Profile* profile, GURL url) {
noItemsRect.origin.x += width;
importBookmarksRect.origin.x += width;
}
+ if (![supervisedBookmarksButton_ isHidden]) {
+ float width = NSWidth([supervisedBookmarksButton_ frame]);
+ noItemsRect.origin.x += width;
+ importBookmarksRect.origin.x += width;
+ }
[noItemTextfield setFrame:noItemsRect];
[noItemTextfield setHidden:NO];
NSButton* importBookmarksButton = [buttonView_ importBookmarksButton];
@@ -1527,6 +1595,12 @@ void RecordAppLaunch(Profile* profile, GURL url) {
bookmarks::kBookmarkHorizontalPadding;
}
+ // Draw the supervised bookmarks folder if needed.
+ if (![supervisedBookmarksButton_ isHidden]) {
+ left = NSMaxX([supervisedBookmarksButton_ frame]) +
+ bookmarks::kBookmarkHorizontalPadding;
+ }
+
for (NSButton* button in buttons_.get()) {
// Hidden buttons get no space.
if ([button isHidden])
@@ -1602,6 +1676,9 @@ void RecordAppLaunch(Profile* profile, GURL url) {
} else if (![managedBookmarksButton_ isHidden]) {
xOffset = NSMaxX([managedBookmarksButton_ frame]) +
bookmarks::kBookmarkHorizontalPadding;
+ } else if (![supervisedBookmarksButton_ isHidden]) {
+ xOffset = NSMaxX([supervisedBookmarksButton_ frame]) +
+ bookmarks::kBookmarkHorizontalPadding;
} else if (![appsPageShortcutButton_ isHidden]) {
xOffset = NSMaxX([appsPageShortcutButton_ frame]) +
bookmarks::kBookmarkHorizontalPadding;
@@ -1809,6 +1886,7 @@ void RecordAppLaunch(Profile* profile, GURL url) {
[cell setTextColor:color];
}
[[managedBookmarksButton_ cell] setTextColor:color];
+ [[supervisedBookmarksButton_ cell] setTextColor:color];
[[otherBookmarksButton_ cell] setTextColor:color];
[[appsPageShortcutButton_ cell] setTextColor:color];
}
@@ -2038,7 +2116,10 @@ static BOOL ValueInRangeInclusive(CGFloat low, CGFloat value, CGFloat high) {
insertionPos_ = where;
hasInsertionPos_ = YES;
CGFloat left;
- if (![managedBookmarksButton_ isHidden]) {
+ if (![supervisedBookmarksButton_ isHidden]) {
+ left = NSMaxX([supervisedBookmarksButton_ frame]) +
+ bookmarks::kBookmarkHorizontalPadding;
+ } else if (![managedBookmarksButton_ isHidden]) {
left = NSMaxX([managedBookmarksButton_ frame]) +
bookmarks::kBookmarkHorizontalPadding;
} else if (![appsPageShortcutButton_ isHidden]) {
@@ -2105,6 +2186,16 @@ static BOOL ValueInRangeInclusive(CGFloat low, CGFloat value, CGFloat high) {
left = xOffset + bookmarks::kBookmarkHorizontalPadding;
}
+ // Position the supervised bookmarks folder if needed.
+ if (![supervisedBookmarksButton_ isHidden]) {
+ int xOffset = left;
+ NSRect frame =
+ [self frameForBookmarkButtonFromCell:[supervisedBookmarksButton_ cell]
+ xOffset:&xOffset];
+ [supervisedBookmarksButton_ setFrame:frame];
+ left = xOffset + bookmarks::kBookmarkHorizontalPadding;
+ }
+
animate &= innerContentAnimationsEnabled_;
for (NSButton* button in buttons_.get()) {
@@ -2152,6 +2243,7 @@ static BOOL ValueInRangeInclusive(CGFloat low, CGFloat value, CGFloat high) {
[self clearBookmarkBar];
[self createAppsPageShortcutButton];
[self createManagedBookmarksButton];
+ [self createSupervisedBookmarksButton];
[self addNodesToButtonList:node];
[self createOtherBookmarksButton];
[self updateTheme:[[[self view] window] themeProvider]];
@@ -2556,12 +2648,16 @@ static BOOL ValueInRangeInclusive(CGFloat low, CGFloat value, CGFloat high) {
int numButtons = displayedButtonCount_;
CGFloat leftmostX;
- if (![managedBookmarksButton_ isHidden])
+ if (![supervisedBookmarksButton_ isHidden]) {
+ leftmostX =
+ NSMaxX([supervisedBookmarksButton_ frame]) + halfHorizontalPadding;
+ } else if (![managedBookmarksButton_ isHidden]) {
leftmostX = NSMaxX([managedBookmarksButton_ frame]) + halfHorizontalPadding;
- else if (![appsPageShortcutButton_ isHidden])
+ } else if (![appsPageShortcutButton_ isHidden]) {
leftmostX = NSMaxX([appsPageShortcutButton_ frame]) + halfHorizontalPadding;
- else
+ } else {
leftmostX = bookmarks::kBookmarkLeftMargin - halfHorizontalPadding;
+ }
// If it's a drop strictly between existing buttons ...
if (destIndex == 0) {

Powered by Google App Engine
This is Rietveld 408576698