summaryrefslogtreecommitdiffstats
path: root/chrome/browser/cocoa/browser_window_controller.mm
diff options
context:
space:
mode:
authorthakis@chromium.org <thakis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-06-18 21:57:57 +0000
committerthakis@chromium.org <thakis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-06-18 21:57:57 +0000
commitc0d33cd059a742b2daf283965392700328b80a81 (patch)
treee28615904b0e6496c55802016f8c7c2e27d9ff52 /chrome/browser/cocoa/browser_window_controller.mm
parentfad9ef5cb3f55eba164ff4e63db803c5a7fa17a5 (diff)
downloadchromium_src-c0d33cd059a742b2daf283965392700328b80a81.zip
chromium_src-c0d33cd059a742b2daf283965392700328b80a81.tar.gz
chromium_src-c0d33cd059a742b2daf283965392700328b80a81.tar.bz2
Initial download shelf on OS X.
This has lots of missing stuff (e.g. a custom download item view that shows download progress, the popup is the same for in-progress and completed downloads, no animation, everything looks ugly, the info bubble overlaps the shelf when it's visible, no "open download manager page" link, etc), but the basic functionality is hooked up: The shelf appears when files are downloaded, and something ugly is added to the shelf for each download. The popup's "Reveral in Finder" even works. The shelf is per-window as it should be. BUG=12500 TEST=Download something and check the shelf appears. Click the close button and make sure it disappears again. Review URL: http://codereview.chromium.org/93129 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18757 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/cocoa/browser_window_controller.mm')
-rw-r--r--chrome/browser/cocoa/browser_window_controller.mm21
1 files changed, 17 insertions, 4 deletions
diff --git a/chrome/browser/cocoa/browser_window_controller.mm b/chrome/browser/cocoa/browser_window_controller.mm
index 994694f..d814c36 100644
--- a/chrome/browser/cocoa/browser_window_controller.mm
+++ b/chrome/browser/cocoa/browser_window_controller.mm
@@ -17,6 +17,7 @@
#import "chrome/browser/cocoa/bookmark_bar_controller.h"
#import "chrome/browser/cocoa/browser_window_cocoa.h"
#import "chrome/browser/cocoa/browser_window_controller.h"
+#import "chrome/browser/cocoa/download_shelf_controller.h"
#import "chrome/browser/cocoa/find_bar_cocoa_controller.h"
#include "chrome/browser/cocoa/find_bar_bridge.h"
#import "chrome/browser/cocoa/status_bubble_mac.h"
@@ -520,7 +521,6 @@ willPositionSheet:(NSWindow *)sheet
// And make sure we use the correct frame in the new view.
[[controller tabStripController] setFrameOfSelectedTab:tabRect];
-
return controller;
}
@@ -548,6 +548,19 @@ willPositionSheet:(NSWindow *)sheet
[bookmarkBarController_ toggleBookmarkBar];
}
+- (BOOL)isDownloadShelfVisible {
+ return downloadShelfController_ != nil &&
+ [downloadShelfController_ isVisible];
+}
+
+- (DownloadShelfController*)downloadShelf {
+ if (!downloadShelfController_.get()) {
+ downloadShelfController_.reset([[DownloadShelfController alloc]
+ initWithBrowser:browser_.get() contentArea:[self tabContentArea]]);
+ }
+ return downloadShelfController_;
+}
+
- (void)addFindBar:(FindBarCocoaController*)findBarCocoaController {
// Shouldn't call addFindBar twice.
DCHECK(!findBarCocoaController_.get());
@@ -685,9 +698,9 @@ willPositionSheet:(NSWindow *)sheet
// sure we aren't doing anything wasteful in those cases.
[bookmarkBarController_ resizeBookmarkBar];
- if (findBarCocoaController_.get()) {
- [findBarCocoaController_ positionFindBarView:[self tabContentArea]];
- }
+ [downloadShelfController_ resizeDownloadShelf];
+
+ [findBarCocoaController_ positionFindBarView:[self tabContentArea]];
}
- (void)saveWindowPositionIfNeeded {