| Index: chrome/browser/cocoa/download_shelf_controller.mm
|
| ===================================================================
|
| --- chrome/browser/cocoa/download_shelf_controller.mm (revision 22499)
|
| +++ chrome/browser/cocoa/download_shelf_controller.mm (working copy)
|
| @@ -40,7 +40,6 @@
|
|
|
| @interface DownloadShelfController(Private)
|
| - (void)applyContentAreaOffset:(BOOL)apply;
|
| -- (void)positionBar;
|
| - (void)showDownloadShelf:(BOOL)enable;
|
| - (void)resizeDownloadLinkToFit;
|
| @end
|
| @@ -49,14 +48,15 @@
|
| @implementation DownloadShelfController
|
|
|
| - (id)initWithBrowser:(Browser*)browser
|
| - contentArea:(NSView*)content {
|
| + resizeDelegate:(id<ViewResizer>)resizeDelegate {
|
| if ((self = [super initWithNibName:@"DownloadShelf"
|
| bundle:mac_util::MainAppBundle()])) {
|
| - contentArea_ = content;
|
| + resizeDelegate_ = resizeDelegate;
|
| shelfHeight_ = [[self view] bounds].size.height;
|
|
|
| - [self positionBar];
|
| - [[[contentArea_ window] contentView] addSubview:[self view]];
|
| + // Reset the download shelf's frame to zero. It will be properly positioned
|
| + // and sized the first time we try to set its height.
|
| + [[self view] setFrame:NSZeroRect];
|
|
|
| downloadItemControllers_.reset([[NSMutableArray alloc] init]);
|
|
|
| @@ -136,26 +136,6 @@
|
| return YES;
|
| }
|
|
|
| -// Initializes the download shelf at the bottom edge of |contentArea_|.
|
| -- (void)positionBar {
|
| - // Set the bar's height to zero and position it at the bottom of the content
|
| - // area, within the window's content view (as opposed to the tab strip, which
|
| - // is a sibling). We'll enlarge it and slide the content area up when we need
|
| - // to show this strip.
|
| - NSRect contentFrame = [contentArea_ frame];
|
| - NSRect barFrame = NSMakeRect(0, 0, contentFrame.size.width, shelfHeight_);
|
| - [[self view] setFrame:barFrame];
|
| -}
|
| -
|
| -// Called when the contentArea's frame changes. Enlarge the view to stay with
|
| -// the bottom of the contentArea.
|
| -- (void)resizeDownloadShelf {
|
| - NSRect barFrame = [[self view] frame];
|
| - barFrame.origin.y = 0;
|
| - barFrame.size.height = NSMinY([contentArea_ frame]);
|
| - [[self view] setFrame:barFrame];
|
| -}
|
| -
|
| - (void)remove:(DownloadItemController*)download {
|
| // Look for the download in our controller array and remove it. This will
|
| // explicity release it so that it removes itself as an Observer of the
|
| @@ -185,36 +165,11 @@
|
| if ([self isVisible] == enable)
|
| return;
|
|
|
| - contentAreaHasOffset_ = enable;
|
| - [[self view] setHidden:enable ? NO : YES];
|
| - [self applyContentAreaOffset:enable];
|
| -
|
| + [resizeDelegate_ resizeView:[self view]
|
| + newHeight:(enable ? shelfHeight_ : 0)];
|
| barIsVisible_ = enable;
|
| }
|
|
|
| -// Apply a contents box offset to make (or remove) room for the download shelf.
|
| -// If apply is YES, always make room (the contentView_ is "full size"). If apply
|
| -// is NO, we are trying to undo an offset. If no offset there is nothing to undo.
|
| -- (void)applyContentAreaOffset:(BOOL)apply {
|
| - if (!contentAreaHasOffset_ && apply) {
|
| - // There is no offset to unconditionally apply.
|
| - return;
|
| - }
|
| -
|
| - NSRect frame = [contentArea_ frame];
|
| - if (apply) {
|
| - frame.origin.y += shelfHeight_;
|
| - frame.size.height -= shelfHeight_;
|
| - } else {
|
| - frame.origin.y -= shelfHeight_;
|
| - frame.size.height += shelfHeight_;
|
| - }
|
| -
|
| - [[contentArea_ animator] setFrame:frame];
|
| - [[self view] setNeedsDisplay:YES];
|
| - [contentArea_ setNeedsDisplay:YES];
|
| -}
|
| -
|
| - (DownloadShelf*)bridge {
|
| return bridge_.get();
|
| }
|
|
|