diff options
author | estade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-03-04 22:19:41 +0000 |
---|---|---|
committer | estade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-03-04 22:19:41 +0000 |
commit | 3edd952ea05dfb5c950b63768fc9cc9ec807f6d8 (patch) | |
tree | a78e9bef8fe0efbff8b56fb6c6f8bc23e344c46e /chrome/browser/gtk/download_shelf_gtk.h | |
parent | c0a2ee2bb8bfcc3ade688d43a95cc3404eea3748 (diff) | |
download | chromium_src-3edd952ea05dfb5c950b63768fc9cc9ec807f6d8.zip chromium_src-3edd952ea05dfb5c950b63768fc9cc9ec807f6d8.tar.gz chromium_src-3edd952ea05dfb5c950b63768fc9cc9ec807f6d8.tar.bz2 |
Basic download shelf implementation on linux.
It shows and hides at appropriate times, and that's about it.
TEST=navigate to a savable page and select "save page as" from the page menu. Click the x. Save the page again. The shelf should pop up, go away, pop up again.
Review URL: http://codereview.chromium.org/38004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@10927 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/gtk/download_shelf_gtk.h')
-rw-r--r-- | chrome/browser/gtk/download_shelf_gtk.h | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/chrome/browser/gtk/download_shelf_gtk.h b/chrome/browser/gtk/download_shelf_gtk.h new file mode 100644 index 0000000..9cbf5bc --- /dev/null +++ b/chrome/browser/gtk/download_shelf_gtk.h @@ -0,0 +1,45 @@ +// Copyright (c) 2009 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CHROME_BROWSER_VIEWS_DOWNLOAD_SHELF_VIEW_H_ +#define CHROME_BROWSER_VIEWS_DOWNLOAD_SHELF_VIEW_H_ + +#include <gtk/gtk.h> + +#include "base/scoped_ptr.h" +#include "chrome/browser/download/download_shelf.h" +#include "chrome/browser/gtk/custom_button.h" + +class BaseDownloadItemModel; + +class DownloadShelfGtk : public DownloadShelf { + public: + explicit DownloadShelfGtk(TabContents* tab_contents); + + // DownloadShelf implementation. + virtual void AddDownload(BaseDownloadItemModel* download_model); + virtual bool IsShowing() const; + + private: + // Show the shelf. + void Show(); + + // Hide the shelf. + void Hide(); + + static void OnCloseButtonClick(GtkWidget* button, + DownloadShelfGtk* toolbar); + + // |bar_| is the highest level widget of the download shelf. It is an hbox. + GtkWidget* shelf_; + + // The 'x' that the user can press to hide the download shelf. + scoped_ptr<CustomDrawButton> close_button_; + + // Keeps track of our current hide/show state. + bool is_showing_; +}; + +#endif // CHROME_BROWSER_VIEWS_DOWNLOAD_SHELF_VIEW_H_ + |