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

Side by Side Diff: chrome/browser/cocoa/bookmark_bar_folder_controller.mm

Issue 3137038: Minor adjustments to bookmark folder menu button placement during button move... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 10 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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/cocoa/bookmark_bar_folder_controller.h" 5 #import "chrome/browser/cocoa/bookmark_bar_folder_controller.h"
6 #include "base/mac_util.h" 6 #include "base/mac_util.h"
7 #include "base/nsimage_cache_mac.h" 7 #include "base/nsimage_cache_mac.h"
8 #include "base/sys_string_conversions.h" 8 #include "base/sys_string_conversions.h"
9 #include "chrome/browser/bookmarks/bookmark_model.h" 9 #include "chrome/browser/bookmarks/bookmark_model.h"
10 #include "chrome/browser/bookmarks/bookmark_utils.h" 10 #include "chrome/browser/bookmarks/bookmark_utils.h"
(...skipping 1194 matching lines...) Expand 10 before | Expand all | Expand 10 after
1205 [folderController_ showWindow:self]; 1205 [folderController_ showWindow:self];
1206 } 1206 }
1207 1207
1208 - (void)openAll:(const BookmarkNode*)node 1208 - (void)openAll:(const BookmarkNode*)node
1209 disposition:(WindowOpenDisposition)disposition { 1209 disposition:(WindowOpenDisposition)disposition {
1210 [barController_ openAll:node disposition:disposition]; 1210 [barController_ openAll:node disposition:disposition];
1211 } 1211 }
1212 1212
1213 - (void)addButtonForNode:(const BookmarkNode*)node 1213 - (void)addButtonForNode:(const BookmarkNode*)node
1214 atIndex:(NSInteger)buttonIndex { 1214 atIndex:(NSInteger)buttonIndex {
1215 NSRect buttonFrame = NSMakeRect(bookmarks::kBookmarkHorizontalPadding, 1215 // Propose the frame for the new button.
1216 bookmarks::kBookmarkVerticalPadding, 1216 NSRect newButtonFrame = NSMakeRect(0, 0, 500, 500); // Placeholder values.
1217 NSWidth([mainView_ frame]) - 2 * bookmarks::kBookmarkHorizontalPadding -
1218 bookmarks::kScrollViewContentWidthMargin,
1219 bookmarks::kBookmarkBarHeight - 2 *
1220 bookmarks::kBookmarkVerticalPadding);
1221 // When adding a button to an empty folder we must remove the 'empty' 1217 // When adding a button to an empty folder we must remove the 'empty'
1222 // placeholder button. This can be detected by checking for a parent 1218 // placeholder button. This can be detected by checking for a parent
1223 // child count of 1. 1219 // child count of 1.
1224 const BookmarkNode* parentNode = node->GetParent(); 1220 const BookmarkNode* parentNode = node->GetParent();
1225 if (parentNode->GetChildCount() == 1) { 1221 if (parentNode->GetChildCount() == 1) {
1226 BookmarkButton* emptyButton = [buttons_ lastObject]; 1222 BookmarkButton* emptyButton = [buttons_ lastObject];
1223 newButtonFrame = [emptyButton frame];
1227 [emptyButton removeFromSuperview]; 1224 [emptyButton removeFromSuperview];
1228 [buttons_ removeLastObject]; 1225 [buttons_ removeLastObject];
1229 } else {
1230 // Set us up to remember the last moved button's frame.
1231 buttonFrame.origin.y += NSHeight([mainView_ frame]) +
1232 bookmarks::kBookmarkBarHeight;
1233 } 1226 }
1234 1227
1235 if (buttonIndex == -1) 1228 if (buttonIndex == -1)
1236 buttonIndex = [buttons_ count]; 1229 buttonIndex = [buttons_ count];
1237 1230
1231 // Offset upward by one button height all buttons above insertion location.
1238 BookmarkButton* button = nil; // Remember so it can be de-highlighted. 1232 BookmarkButton* button = nil; // Remember so it can be de-highlighted.
1239 for (NSInteger i = 0; i < buttonIndex; ++i) { 1233 for (NSInteger i = 0; i < buttonIndex; ++i) {
1240 button = [buttons_ objectAtIndex:i]; 1234 button = [buttons_ objectAtIndex:i];
1241 buttonFrame = [button frame]; 1235 // Remember this location in case it's the last button being moved
1242 buttonFrame.origin.y += bookmarks::kBookmarkBarHeight; 1236 // which is where the new button will be located.
1237 newButtonFrame = [button frame];
1238 NSRect buttonFrame = [button frame];
1239 buttonFrame.origin.y += bookmarks::kBookmarkBarHeight +
1240 bookmarks::kBookmarkVerticalPadding;
1243 [button setFrame:buttonFrame]; 1241 [button setFrame:buttonFrame];
1244 } 1242 }
1245 [[button cell] mouseExited:nil]; // De-highlight. 1243 [[button cell] mouseExited:nil]; // De-highlight.
1246 if (parentNode->GetChildCount() > 1)
1247 buttonFrame.origin.y -= bookmarks::kBookmarkBarHeight;
1248 BookmarkButton* newButton = [self makeButtonForNode:node 1244 BookmarkButton* newButton = [self makeButtonForNode:node
1249 frame:buttonFrame]; 1245 frame:newButtonFrame];
1250 [buttons_ insertObject:newButton atIndex:buttonIndex]; 1246 [buttons_ insertObject:newButton atIndex:buttonIndex];
1251 [mainView_ addSubview:newButton]; 1247 [mainView_ addSubview:newButton];
1252 1248
1253 // Close any child folder(s) which may still be open. 1249 // Close any child folder(s) which may still be open.
1254 [self closeBookmarkFolder:self]; 1250 [self closeBookmarkFolder:self];
1255 1251
1256 // Prelim height of the window. We'll trim later as needed. 1252 // Prelim height of the window. We'll trim later as needed.
1257 int height = [buttons_ count] * bookmarks::kBookmarkButtonHeight + 1253 int height = [buttons_ count] * bookmarks::kBookmarkButtonHeight +
1258 bookmarks::kBookmarkVerticalPadding; 1254 bookmarks::kBookmarkVerticalPadding;
1259 [self adjustWindowForHeight:height]; 1255 [self adjustWindowForHeight:height];
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
1309 [buttons_ removeObjectAtIndex:fromIndex]; 1305 [buttons_ removeObjectAtIndex:fromIndex];
1310 NSRect movedFrame = [movedButton frame]; 1306 NSRect movedFrame = [movedButton frame];
1311 NSPoint toOrigin = movedFrame.origin; 1307 NSPoint toOrigin = movedFrame.origin;
1312 [movedButton setHidden:YES]; 1308 [movedButton setHidden:YES];
1313 if (fromIndex < toIndex) { 1309 if (fromIndex < toIndex) {
1314 BookmarkButton* targetButton = [buttons_ objectAtIndex:toIndex - 1]; 1310 BookmarkButton* targetButton = [buttons_ objectAtIndex:toIndex - 1];
1315 toOrigin = [targetButton frame].origin; 1311 toOrigin = [targetButton frame].origin;
1316 for (NSInteger i = fromIndex; i < toIndex; ++i) { 1312 for (NSInteger i = fromIndex; i < toIndex; ++i) {
1317 BookmarkButton* button = [buttons_ objectAtIndex:i]; 1313 BookmarkButton* button = [buttons_ objectAtIndex:i];
1318 NSRect frame = [button frame]; 1314 NSRect frame = [button frame];
1319 frame.origin.y += bookmarks::kBookmarkBarHeight; 1315 frame.origin.y += bookmarks::kBookmarkBarHeight +
1316 bookmarks::kBookmarkVerticalPadding;
1320 [button setFrameOrigin:frame.origin]; 1317 [button setFrameOrigin:frame.origin];
1321 } 1318 }
1322 } else { 1319 } else {
1323 BookmarkButton* targetButton = [buttons_ objectAtIndex:toIndex]; 1320 BookmarkButton* targetButton = [buttons_ objectAtIndex:toIndex];
1324 toOrigin = [targetButton frame].origin; 1321 toOrigin = [targetButton frame].origin;
1325 for (NSInteger i = fromIndex - 1; i >= toIndex; --i) { 1322 for (NSInteger i = fromIndex - 1; i >= toIndex; --i) {
1326 BookmarkButton* button = [buttons_ objectAtIndex:i]; 1323 BookmarkButton* button = [buttons_ objectAtIndex:i];
1327 NSRect buttonFrame = [button frame]; 1324 NSRect buttonFrame = [button frame];
1328 buttonFrame.origin.y -= bookmarks::kBookmarkBarHeight; 1325 buttonFrame.origin.y -= bookmarks::kBookmarkBarHeight +
1326 bookmarks::kBookmarkVerticalPadding;
1329 [button setFrameOrigin:buttonFrame.origin]; 1327 [button setFrameOrigin:buttonFrame.origin];
1330 } 1328 }
1331 } 1329 }
1332 [buttons_ insertObject:movedButton atIndex:toIndex]; 1330 [buttons_ insertObject:movedButton atIndex:toIndex];
1333 [movedButton setFrameOrigin:toOrigin]; 1331 [movedButton setFrameOrigin:toOrigin];
1334 [movedButton setHidden:NO]; 1332 [movedButton setHidden:NO];
1335 } 1333 }
1336 } 1334 }
1337 1335
1338 // TODO(jrg): Refactor BookmarkBarFolder common code. http://crbug.com/35966 1336 // TODO(jrg): Refactor BookmarkBarFolder common code. http://crbug.com/35966
(...skipping 12 matching lines...) Expand all
1351 } 1349 }
1352 1350
1353 [oldButton removeFromSuperview]; 1351 [oldButton removeFromSuperview];
1354 if (animate && !ignoreAnimations_) 1352 if (animate && !ignoreAnimations_)
1355 NSShowAnimationEffect(NSAnimationEffectDisappearingItemDefault, poofPoint, 1353 NSShowAnimationEffect(NSAnimationEffectDisappearingItemDefault, poofPoint,
1356 NSZeroSize, nil, nil, nil); 1354 NSZeroSize, nil, nil, nil);
1357 [buttons_ removeObjectAtIndex:buttonIndex]; 1355 [buttons_ removeObjectAtIndex:buttonIndex];
1358 for (NSInteger i = 0; i < buttonIndex; ++i) { 1356 for (NSInteger i = 0; i < buttonIndex; ++i) {
1359 BookmarkButton* button = [buttons_ objectAtIndex:i]; 1357 BookmarkButton* button = [buttons_ objectAtIndex:i];
1360 NSRect buttonFrame = [button frame]; 1358 NSRect buttonFrame = [button frame];
1361 buttonFrame.origin.y -= bookmarks::kBookmarkBarHeight; 1359 buttonFrame.origin.y -= bookmarks::kBookmarkBarHeight +
1360 bookmarks::kBookmarkVerticalPadding;
1362 [button setFrame:buttonFrame]; 1361 [button setFrame:buttonFrame];
1363 } 1362 }
1364 // Search for and adjust submenus, if necessary. 1363 // Search for and adjust submenus, if necessary.
1365 NSInteger buttonCount = [buttons_ count]; 1364 NSInteger buttonCount = [buttons_ count];
1366 if (buttonCount) { 1365 if (buttonCount) {
1367 BookmarkButton* subButton = [folderController_ parentButton]; 1366 BookmarkButton* subButton = [folderController_ parentButton];
1368 for (NSInteger i = buttonIndex; i < buttonCount; ++i) { 1367 for (NSInteger i = buttonIndex; i < buttonCount; ++i) {
1369 BookmarkButton* aButton = [buttons_ objectAtIndex:i]; 1368 BookmarkButton* aButton = [buttons_ objectAtIndex:i];
1370 // If this button is showing its menu then we need to move the menu, too. 1369 // If this button is showing its menu then we need to move the menu, too.
1371 if (aButton == subButton) 1370 if (aButton == subButton)
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
1408 1407
1409 - (void)setIgnoreAnimations:(BOOL)ignore { 1408 - (void)setIgnoreAnimations:(BOOL)ignore {
1410 ignoreAnimations_ = ignore; 1409 ignoreAnimations_ = ignore;
1411 } 1410 }
1412 1411
1413 - (BookmarkButton*)buttonThatMouseIsIn { 1412 - (BookmarkButton*)buttonThatMouseIsIn {
1414 return buttonThatMouseIsIn_; 1413 return buttonThatMouseIsIn_;
1415 } 1414 }
1416 1415
1417 @end // BookmarkBarFolderController 1416 @end // BookmarkBarFolderController
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698