1// Copyright (c) 2012 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/ui/global_error/global_error.h" 6 7#include "base/logging.h" 8#include "chrome/browser/ui/global_error/global_error_bubble_view_base.h" 9#include "grit/theme_resources.h" 10#include "ui/base/resource/resource_bundle.h" 11#include "ui/gfx/image/image.h" 12 13// GlobalError --------------------------------------------------------------- 14 15GlobalError::GlobalError() {} 16 17GlobalError::~GlobalError() {} 18 19GlobalError::Severity GlobalError::GetSeverity() { return SEVERITY_MEDIUM; } 20 21int GlobalError::MenuItemIconResourceID() { 22 // If you change this make sure to also change the bubble icon and the wrench 23 // icon color. 24 return IDR_INPUT_ALERT_MENU; 25} 26 27// GlobalErrorWithStandardBubble --------------------------------------------- 28 29GlobalErrorWithStandardBubble::GlobalErrorWithStandardBubble() 30 : has_shown_bubble_view_(false), bubble_view_(NULL) {} 31 32GlobalErrorWithStandardBubble::~GlobalErrorWithStandardBubble() {} 33 34bool GlobalErrorWithStandardBubble::HasBubbleView() { return true; } 35 36bool GlobalErrorWithStandardBubble::HasShownBubbleView() { 37 return has_shown_bubble_view_; 38} 39 40void GlobalErrorWithStandardBubble::ShowBubbleView(Browser* browser) { 41 has_shown_bubble_view_ = true; 42#if defined(OS_ANDROID) 43 // http://crbug.com/136506 44 NOTIMPLEMENTED() << "Chrome for Android doesn't support global errors"; 45#else 46 bubble_view_ = 47 GlobalErrorBubbleViewBase::ShowStandardBubbleView(browser, AsWeakPtr()); 48#endif 49} 50 51GlobalErrorBubbleViewBase* GlobalErrorWithStandardBubble::GetBubbleView() { 52 return bubble_view_; 53} 54 55bool GlobalErrorWithStandardBubble::ShouldCloseOnDeactivate() const { 56 return true; 57} 58 59gfx::Image GlobalErrorWithStandardBubble::GetBubbleViewIcon() { 60 // If you change this make sure to also change the menu icon and the wrench 61 // icon color. 62 return ResourceBundle::GetSharedInstance().GetNativeImageNamed( 63 IDR_INPUT_ALERT); 64} 65 66void GlobalErrorWithStandardBubble::BubbleViewDidClose(Browser* browser) { 67 DCHECK(browser); 68 bubble_view_ = NULL; 69 OnBubbleViewDidClose(browser); 70} 71