| OLD | NEW |
| 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/sys_string_conversions.h" | 7 #include "base/sys_string_conversions.h" |
| 8 #include "chrome/browser/bookmarks/bookmark_model.h" | 8 #include "chrome/browser/bookmarks/bookmark_model.h" |
| 9 #import "chrome/browser/browser_theme_provider.h" | 9 #import "chrome/browser/browser_theme_provider.h" |
| 10 #import "chrome/browser/cocoa/bookmark_bar_constants.h" // namespace bookmarks | 10 #import "chrome/browser/cocoa/bookmark_bar_constants.h" // namespace bookmarks |
| (...skipping 243 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 254 buttonFrame.size.width = width; | 254 buttonFrame.size.width = width; |
| 255 [button setFrame:buttonFrame]; | 255 [button setFrame:buttonFrame]; |
| 256 } | 256 } |
| 257 | 257 |
| 258 // Finally, set our window size (make sure it fits on screen). | 258 // Finally, set our window size (make sure it fits on screen). |
| 259 width += (2 * bookmarks::kBookmarkVerticalPadding); | 259 width += (2 * bookmarks::kBookmarkVerticalPadding); |
| 260 windowFrame.size.width = width; | 260 windowFrame.size.width = width; |
| 261 | 261 |
| 262 // Make the window fit on screen, with a distance of at least |padding| from | 262 // Make the window fit on screen, with a distance of at least |padding| from |
| 263 // the sides. | 263 // the sides. |
| 264 const CGFloat padding = 8; | 264 if ([[self window] screen]) { // nil in unit tests |
| 265 NSRect screenFrame = [[[self window] screen] frame]; | 265 const CGFloat padding = 8; |
| 266 if (NSMaxX(windowFrame) + padding > NSMaxX(screenFrame)) | 266 NSRect screen = [[[self window] screen] frame]; |
| 267 windowFrame.origin.x -= NSMaxX(windowFrame) + padding - NSMaxX(screenFrame); | 267 if (NSMaxX(windowFrame) + padding > NSMaxX(screen)) |
| 268 else if (NSMinX(windowFrame) - padding < NSMinX(screenFrame)) | 268 windowFrame.origin.x -= NSMaxX(windowFrame) + padding - NSMaxX(screen); |
| 269 windowFrame.origin.x += NSMinX(screenFrame) - NSMinX(windowFrame) + padding; | 269 else if (NSMinX(windowFrame) - padding < NSMinX(screen)) |
| 270 windowFrame.origin.x += NSMinX(screen) - NSMinX(windowFrame) + padding; |
| 271 } |
| 270 | 272 |
| 271 [[self window] setFrame:windowFrame display:YES]; | 273 [[self window] setFrame:windowFrame display:YES]; |
| 272 | 274 |
| 273 [[parentController_ parentWindow] addChildWindow:[self window] | 275 [[parentController_ parentWindow] addChildWindow:[self window] |
| 274 ordered:NSWindowAbove]; | 276 ordered:NSWindowAbove]; |
| 275 } | 277 } |
| 276 | 278 |
| 277 - (ThemeProvider*)themeProvider { | 279 - (ThemeProvider*)themeProvider { |
| 278 return [parentController_ themeProvider]; | 280 return [parentController_ themeProvider]; |
| 279 } | 281 } |
| (...skipping 369 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 649 initWithParentButton:sender | 651 initWithParentButton:sender |
| 650 parentController:self]; | 652 parentController:self]; |
| 651 [folderController_ showWindow:self]; | 653 [folderController_ showWindow:self]; |
| 652 } | 654 } |
| 653 | 655 |
| 654 - (NSArray*)buttons { | 656 - (NSArray*)buttons { |
| 655 return buttons_.get(); | 657 return buttons_.get(); |
| 656 } | 658 } |
| 657 | 659 |
| 658 @end // BookmarkBarFolderController | 660 @end // BookmarkBarFolderController |
| OLD | NEW |