summaryrefslogtreecommitdiffstats
path: root/chrome/browser/gtk/download_shelf_gtk.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/gtk/download_shelf_gtk.cc')
-rw-r--r--chrome/browser/gtk/download_shelf_gtk.cc24
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) {