download_request_infobar_delegate.cc revision c407dc5cd9bdc5668497f21b26b09d988ab439de
1// Copyright (c) 2009 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 "app/l10n_util.h" 8#include "app/resource_bundle.h" 9#include "chrome/browser/tab_contents/tab_contents.h" 10#include "grit/generated_resources.h" 11#include "grit/theme_resources.h" 12 13DownloadRequestInfoBarDelegate::DownloadRequestInfoBarDelegate(TabContents* tab, 14 DownloadRequestLimiter::TabDownloadState* host) 15 : ConfirmInfoBarDelegate(tab), 16 host_(host) { 17 if (tab) 18 tab->AddInfoBar(this); 19} 20 21DownloadRequestInfoBarDelegate::~DownloadRequestInfoBarDelegate() { 22} 23 24void DownloadRequestInfoBarDelegate::InfoBarClosed() { 25 Cancel(); 26 // This will delete us. 27 ConfirmInfoBarDelegate::InfoBarClosed(); 28} 29 30std::wstring DownloadRequestInfoBarDelegate::GetMessageText() const { 31 return l10n_util::GetString(IDS_MULTI_DOWNLOAD_WARNING); 32} 33 34SkBitmap* DownloadRequestInfoBarDelegate::GetIcon() const { 35 return ResourceBundle::GetSharedInstance().GetBitmapNamed( 36 IDR_INFOBAR_MULTIPLE_DOWNLOADS); 37} 38 39int DownloadRequestInfoBarDelegate::GetButtons() const { 40 return BUTTON_OK | BUTTON_CANCEL; 41} 42 43std::wstring DownloadRequestInfoBarDelegate::GetButtonLabel( 44 ConfirmInfoBarDelegate::InfoBarButton button) const { 45 if (button == BUTTON_OK) 46 return l10n_util::GetString(IDS_MULTI_DOWNLOAD_WARNING_ALLOW); 47 else 48 return l10n_util::GetString(IDS_MULTI_DOWNLOAD_WARNING_DENY); 49} 50 51bool DownloadRequestInfoBarDelegate::Accept() { 52 if (host_) { 53 // Accept() call will nullify host_ if no further prompts are required. 54 host_->Accept(); 55 } 56 57 return !host_; 58} 59 60bool DownloadRequestInfoBarDelegate::Cancel() { 61 if (host_) { 62 host_->Cancel(); 63 host_ = NULL; 64 } 65 return true; 66} 67