diff options
Diffstat (limited to 'chrome/browser/gtk/download_shelf_gtk.cc')
-rw-r--r-- | chrome/browser/gtk/download_shelf_gtk.cc | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/chrome/browser/gtk/download_shelf_gtk.cc b/chrome/browser/gtk/download_shelf_gtk.cc index b476508..31d99dd 100644 --- a/chrome/browser/gtk/download_shelf_gtk.cc +++ b/chrome/browser/gtk/download_shelf_gtk.cc @@ -130,8 +130,7 @@ DownloadShelfGtk::~DownloadShelfGtk() { } void DownloadShelfGtk::AddDownload(BaseDownloadItemModel* download_model_) { - download_items_.push_back(new DownloadItemGtk(download_model_, hbox_, - link_hbox_)); + download_items_.push_back(new DownloadItemGtk(this, download_model_)); slide_widget_->Open(); } @@ -139,6 +138,27 @@ bool DownloadShelfGtk::IsShowing() const { return slide_widget_->IsShowing(); } +void DownloadShelfGtk::RemoveDownloadItem(DownloadItemGtk* download_item) { + DCHECK(download_item); + std::vector<DownloadItemGtk*>::iterator i = + find(download_items_.begin(), download_items_.end(), download_item); + DCHECK(i != download_items_.end()); + download_items_.erase(i); + delete download_item; + if (download_items_.empty()) { + slide_widget_->CloseWithoutAnimation(); + tab_contents_->SetDownloadShelfVisible(false); + } +} + +GtkWidget* DownloadShelfGtk::GetRightBoundingWidget() const { + return link_hbox_; +} + +GtkWidget* DownloadShelfGtk::GetHBox() const { + return hbox_; +} + // static void DownloadShelfGtk::OnButtonClick(GtkWidget* button, DownloadShelfGtk* shelf) { |