Home | History | Annotate | Download | only in download
      1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #include "chrome/browser/download/download_request_infobar_delegate.h"
      6 
      7 #include "content/browser/tab_contents/tab_contents.h"
      8 #include "grit/generated_resources.h"
      9 #include "grit/theme_resources.h"
     10 #include "ui/base/l10n/l10n_util.h"
     11 #include "ui/base/resource/resource_bundle.h"
     12 
     13 DownloadRequestInfoBarDelegate::DownloadRequestInfoBarDelegate(
     14     TabContents* tab,
     15     DownloadRequestLimiter::TabDownloadState* host)
     16     : ConfirmInfoBarDelegate(tab),
     17       host_(host) {
     18 }
     19 
     20 DownloadRequestInfoBarDelegate::~DownloadRequestInfoBarDelegate() {
     21 }
     22 
     23 void DownloadRequestInfoBarDelegate::InfoBarClosed() {
     24   if (host_)
     25     host_->Cancel();
     26   delete this;
     27 }
     28 
     29 SkBitmap* DownloadRequestInfoBarDelegate::GetIcon() const {
     30   return ResourceBundle::GetSharedInstance().GetBitmapNamed(
     31       IDR_INFOBAR_MULTIPLE_DOWNLOADS);
     32 }
     33 
     34 string16 DownloadRequestInfoBarDelegate::GetMessageText() const {
     35   return l10n_util::GetStringUTF16(IDS_MULTI_DOWNLOAD_WARNING);
     36 }
     37 
     38 string16 DownloadRequestInfoBarDelegate::GetButtonLabel(
     39     InfoBarButton button) const {
     40   return l10n_util::GetStringUTF16((button == BUTTON_OK) ?
     41       IDS_MULTI_DOWNLOAD_WARNING_ALLOW : IDS_MULTI_DOWNLOAD_WARNING_DENY);
     42 }
     43 
     44 bool DownloadRequestInfoBarDelegate::Accept() {
     45   if (host_) {
     46     // Accept() call will nullify host_ if no further prompts are required.
     47     host_->Accept();
     48   }
     49 
     50   return !host_;
     51 }
     52