summaryrefslogtreecommitdiffstats
path: root/chrome/browser/cocoa
diff options
context:
space:
mode:
authorthakis@chromium.org <thakis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-06-04 03:30:22 +0000
committerthakis@chromium.org <thakis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-06-04 03:30:22 +0000
commit59560e0ba999d5edc33453d4a0fbf44831025817 (patch)
treef365944f6f0eca593a28747a7fed4caf169578fb /chrome/browser/cocoa
parent4d2868972ff25746d39ecea58e88480ae0463145 (diff)
downloadchromium_src-59560e0ba999d5edc33453d4a0fbf44831025817.zip
chromium_src-59560e0ba999d5edc33453d4a0fbf44831025817.tar.gz
chromium_src-59560e0ba999d5edc33453d4a0fbf44831025817.tar.bz2
Move download shelf from per-tab to per-window. Also disable auto-hiding of
the shelf. BUG=9025 TEST=Download file in one tab, open new tab, and check that download shelf is still open. Also try the shelf's close button and the "show all downloads" link. When saving a file, the download animation should not show up. Review URL: http://codereview.chromium.org/115740 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@17595 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/cocoa')
-rw-r--r--chrome/browser/cocoa/browser_window_cocoa.h8
-rw-r--r--chrome/browser/cocoa/browser_window_cocoa.mm19
2 files changed, 26 insertions, 1 deletions
diff --git a/chrome/browser/cocoa/browser_window_cocoa.h b/chrome/browser/cocoa/browser_window_cocoa.h
index 4cec480..69b9715 100644
--- a/chrome/browser/cocoa/browser_window_cocoa.h
+++ b/chrome/browser/cocoa/browser_window_cocoa.h
@@ -57,6 +57,8 @@ class BrowserWindowCocoa : public BrowserWindow,
virtual void ShowAboutChromeDialog();
virtual void ShowBookmarkManager();
virtual void ShowBookmarkBubble(const GURL& url, bool already_bookmarked);
+ virtual bool IsDownloadShelfVisible() const;
+ virtual DownloadShelf* GetDownloadShelf();
virtual void ShowReportBugDialog();
virtual void ShowClearBrowsingDataDialog();
virtual void ShowImportDialog();
@@ -86,6 +88,12 @@ class BrowserWindowCocoa : public BrowserWindow,
NSWindow* window_; // weak, owned by controller
Browser* browser_; // weak, owned by controller
BrowserWindowController* controller_; // weak, owns us
+
+ // Data for shelves and stuff ------------------------------------------------
+ // FIXME(thakis): This should probably in the controller on OS X.
+
+ // The download shelf view (view at the bottom of the page).
+ scoped_ptr<DownloadShelf> download_shelf_;
};
#endif // CHROME_BROWSER_COCOA_BROWSER_WINDOW_COCOA_H_
diff --git a/chrome/browser/cocoa/browser_window_cocoa.mm b/chrome/browser/cocoa/browser_window_cocoa.mm
index 429c0be..d052f61 100644
--- a/chrome/browser/cocoa/browser_window_cocoa.mm
+++ b/chrome/browser/cocoa/browser_window_cocoa.mm
@@ -10,15 +10,20 @@
#import "chrome/browser/cocoa/browser_window_controller.h"
#import "chrome/browser/cocoa/clear_browsing_data_controller.h"
#include "chrome/browser/browser.h"
+#include "chrome/browser/download/download_shelf.h"
#include "chrome/common/notification_service.h"
#include "chrome/common/pref_names.h"
#include "chrome/common/pref_service.h"
+#include "chrome/common/temp_scaffolding_stubs.h"
#include "chrome/browser/profile.h"
BrowserWindowCocoa::BrowserWindowCocoa(Browser* browser,
BrowserWindowController* controller,
NSWindow* window)
- : window_(window), browser_(browser), controller_(controller) {
+ : window_(window),
+ browser_(browser),
+ controller_(controller),
+ download_shelf_() {
// This pref applies to all windows, so all must watch for it.
registrar_.Add(this, NotificationType::BOOKMARK_BAR_VISIBILITY_PREF_CHANGED,
NotificationService::AllSources());
@@ -182,6 +187,18 @@ void BrowserWindowCocoa::ShowBookmarkBubble(const GURL& url,
NOTIMPLEMENTED();
}
+bool BrowserWindowCocoa::IsDownloadShelfVisible() const {
+ return download_shelf_ != NULL && download_shelf_->IsShowing();
+}
+
+DownloadShelf* BrowserWindowCocoa::GetDownloadShelf() {
+ NOTIMPLEMENTED();
+ if (!download_shelf_.get()) {
+ download_shelf_.reset(new DownloadShelfMac(browser_));
+ }
+ return download_shelf_.get();
+}
+
void BrowserWindowCocoa::ShowReportBugDialog() {
NOTIMPLEMENTED();
}