OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/ui/views/infobars/translate_infobar_base.h" | 5 #include "chrome/browser/ui/views/infobars/translate_infobar_base.h" |
6 | 6 |
7 #include "base/utf_string_conversions.h" | 7 #include "base/utf_string_conversions.h" |
8 #include "chrome/browser/translate/translate_infobar_delegate.h" | 8 #include "chrome/browser/translate/translate_infobar_delegate.h" |
9 #include "chrome/browser/ui/views/infobars/after_translate_infobar.h" | 9 #include "chrome/browser/ui/views/infobars/after_translate_infobar.h" |
10 #include "chrome/browser/ui/views/infobars/before_translate_infobar.h" | 10 #include "chrome/browser/ui/views/infobars/before_translate_infobar.h" |
11 #include "chrome/browser/ui/views/infobars/infobar_button_border.h" | 11 #include "chrome/browser/ui/views/infobars/infobar_button_border.h" |
12 #include "chrome/browser/ui/views/infobars/translate_message_infobar.h" | 12 #include "chrome/browser/ui/views/infobars/translate_message_infobar.h" |
13 #include "grit/theme_resources.h" | 13 #include "grit/theme_resources.h" |
14 #include "ui/base/animation/slide_animation.h" | 14 #include "ui/base/animation/slide_animation.h" |
15 #include "ui/base/resource/resource_bundle.h" | 15 #include "ui/base/resource/resource_bundle.h" |
16 #include "ui/gfx/canvas_skia.h" | 16 #include "ui/gfx/canvas_skia.h" |
17 #include "views/controls/button/menu_button.h" | 17 #include "views/controls/button/menu_button.h" |
18 #include "views/controls/label.h" | 18 #include "views/controls/label.h" |
19 | 19 |
20 // TranslateInfoBarDelegate --------------------------------------------------- | 20 // TranslateInfoBarDelegate --------------------------------------------------- |
21 | 21 |
22 InfoBar* TranslateInfoBarDelegate::CreateInfoBar() { | 22 InfoBar* TranslateInfoBarDelegate::CreateInfoBar(TabContentsWrapper* owner) { |
23 TranslateInfoBarBase* infobar = NULL; | 23 TranslateInfoBarBase* infobar = NULL; |
24 switch (type_) { | 24 switch (type_) { |
25 case BEFORE_TRANSLATE: | 25 case BEFORE_TRANSLATE: |
26 infobar = new BeforeTranslateInfoBar(this); | 26 infobar = new BeforeTranslateInfoBar(owner, this); |
27 break; | 27 break; |
28 case AFTER_TRANSLATE: | 28 case AFTER_TRANSLATE: |
29 infobar = new AfterTranslateInfoBar(this); | 29 infobar = new AfterTranslateInfoBar(owner, this); |
30 break; | 30 break; |
31 case TRANSLATING: | 31 case TRANSLATING: |
32 case TRANSLATION_ERROR: | 32 case TRANSLATION_ERROR: |
33 infobar = new TranslateMessageInfoBar(this); | 33 infobar = new TranslateMessageInfoBar(owner, this); |
34 break; | 34 break; |
35 default: | 35 default: |
36 NOTREACHED(); | 36 NOTREACHED(); |
37 } | 37 } |
38 infobar_view_ = infobar; | 38 infobar_view_ = infobar; |
39 return infobar; | 39 return infobar; |
40 } | 40 } |
41 | 41 |
42 // TranslateInfoBarBase ------------------------------------------------------- | 42 // TranslateInfoBarBase ------------------------------------------------------- |
43 | 43 |
44 // static | 44 // static |
45 const int TranslateInfoBarBase::kButtonInLabelSpacing = 5; | 45 const int TranslateInfoBarBase::kButtonInLabelSpacing = 5; |
46 | 46 |
47 TranslateInfoBarBase::TranslateInfoBarBase(TranslateInfoBarDelegate* delegate) | 47 TranslateInfoBarBase::TranslateInfoBarBase(TabContentsWrapper* owner, |
48 : InfoBarView(delegate), | 48 TranslateInfoBarDelegate* delegate) |
| 49 : InfoBarView(owner, delegate), |
49 error_background_(InfoBarDelegate::WARNING_TYPE) { | 50 error_background_(InfoBarDelegate::WARNING_TYPE) { |
50 } | 51 } |
51 | 52 |
52 TranslateInfoBarBase::~TranslateInfoBarBase() { | 53 TranslateInfoBarBase::~TranslateInfoBarBase() { |
53 } | 54 } |
54 | 55 |
55 void TranslateInfoBarBase::ViewHierarchyChanged(bool is_add, | 56 void TranslateInfoBarBase::ViewHierarchyChanged(bool is_add, |
56 View* parent, | 57 View* parent, |
57 View* child) { | 58 View* child) { |
58 if (is_add && (child == this) && (background_color_animation_ == NULL)) { | 59 if (is_add && (child == this) && (background_color_animation_ == NULL)) { |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
125 void TranslateInfoBarBase::FadeBackground(gfx::Canvas* canvas, | 126 void TranslateInfoBarBase::FadeBackground(gfx::Canvas* canvas, |
126 double animation_value, | 127 double animation_value, |
127 const views::Background& background) { | 128 const views::Background& background) { |
128 // Draw the background into an offscreen buffer with alpha value per animation | 129 // Draw the background into an offscreen buffer with alpha value per animation |
129 // value, then blend it back into the current canvas. | 130 // value, then blend it back into the current canvas. |
130 canvas->SaveLayerAlpha(static_cast<int>(animation_value * 255)); | 131 canvas->SaveLayerAlpha(static_cast<int>(animation_value * 255)); |
131 canvas->AsCanvasSkia()->drawARGB(0, 255, 255, 255, SkXfermode::kClear_Mode); | 132 canvas->AsCanvasSkia()->drawARGB(0, 255, 255, 255, SkXfermode::kClear_Mode); |
132 background.Paint(canvas, this); | 133 background.Paint(canvas, this); |
133 canvas->Restore(); | 134 canvas->Restore(); |
134 } | 135 } |
OLD | NEW |