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