Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(116)

Side by Side Diff: chrome/browser/ui/views/infobars/translate_infobar_base.cc

Issue 22694006: Infobar system refactor. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 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 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/strings/utf_string_conversions.h" 7 #include "base/strings/utf_string_conversions.h"
8 #include "chrome/browser/infobars/infobar.h"
8 #include "chrome/browser/translate/translate_infobar_delegate.h" 9 #include "chrome/browser/translate/translate_infobar_delegate.h"
9 #include "chrome/browser/ui/views/infobars/after_translate_infobar.h" 10 #include "chrome/browser/ui/views/infobars/after_translate_infobar.h"
10 #include "chrome/browser/ui/views/infobars/before_translate_infobar.h" 11 #include "chrome/browser/ui/views/infobars/before_translate_infobar.h"
11 #include "chrome/browser/ui/views/infobars/translate_message_infobar.h" 12 #include "chrome/browser/ui/views/infobars/translate_message_infobar.h"
12 #include "grit/theme_resources.h" 13 #include "grit/theme_resources.h"
13 #include "ui/base/resource/resource_bundle.h" 14 #include "ui/base/resource/resource_bundle.h"
14 #include "ui/gfx/animation/slide_animation.h" 15 #include "ui/gfx/animation/slide_animation.h"
15 #include "ui/gfx/canvas.h" 16 #include "ui/gfx/canvas.h"
16 #include "ui/views/controls/button/menu_button.h" 17 #include "ui/views/controls/button/menu_button.h"
17 #include "ui/views/controls/label.h" 18 #include "ui/views/controls/label.h"
18 19
19 20
20 // TranslateInfoBarDelegate --------------------------------------------------- 21 // TranslateInfoBarDelegate ---------------------------------------------------
21 22
22 InfoBar* TranslateInfoBarDelegate::CreateInfoBar(InfoBarService* owner) { 23 // static
23 if (infobar_type_ == BEFORE_TRANSLATE) 24 scoped_ptr<InfoBar> TranslateInfoBarDelegate::CreateInfoBar(
24 return new BeforeTranslateInfoBar(owner, this); 25 scoped_ptr<TranslateInfoBarDelegate> delegate) {
25 if (infobar_type_ == AFTER_TRANSLATE) 26 if (delegate->infobar_type() == BEFORE_TRANSLATE)
26 return new AfterTranslateInfoBar(owner, this); 27 return scoped_ptr<InfoBar>(new BeforeTranslateInfoBar(delegate.Pass()));
27 return new TranslateMessageInfoBar(owner, this); 28 if (delegate->infobar_type() == AFTER_TRANSLATE)
29 return scoped_ptr<InfoBar>(new AfterTranslateInfoBar(delegate.Pass()));
30 return scoped_ptr<InfoBar>(new TranslateMessageInfoBar(delegate.Pass()));
28 } 31 }
29 32
30 33
31 // TranslateInfoBarBase ------------------------------------------------------- 34 // TranslateInfoBarBase -------------------------------------------------------
32 35
33 // static 36 // static
34 const int TranslateInfoBarBase::kButtonInLabelSpacing = 5; 37 const int TranslateInfoBarBase::kButtonInLabelSpacing = 5;
35 38
36 void TranslateInfoBarBase::UpdateLanguageButtonText(views::MenuButton* button, 39 void TranslateInfoBarBase::UpdateLanguageButtonText(views::MenuButton* button,
37 const string16& text) { 40 const string16& text) {
38 DCHECK(button); 41 DCHECK(button);
39 button->SetText(text); 42 button->SetText(text);
40 // The button may have to grow to show the new text. 43 // The button may have to grow to show the new text.
41 Layout(); 44 Layout();
42 SchedulePaint(); 45 SchedulePaint();
43 } 46 }
44 47
45 TranslateInfoBarBase::TranslateInfoBarBase(InfoBarService* owner, 48 TranslateInfoBarBase::TranslateInfoBarBase(
46 TranslateInfoBarDelegate* delegate) 49 scoped_ptr<TranslateInfoBarDelegate> delegate)
47 : InfoBarView(owner, delegate), 50 : InfoBarView(delegate.PassAs<InfoBarDelegate>()),
48 error_background_(InfoBarDelegate::WARNING_TYPE) { 51 error_background_(InfoBarDelegate::WARNING_TYPE) {
49 } 52 }
50 53
51 TranslateInfoBarBase::~TranslateInfoBarBase() { 54 TranslateInfoBarBase::~TranslateInfoBarBase() {
52 } 55 }
53 56
54 void TranslateInfoBarBase::ViewHierarchyChanged( 57 void TranslateInfoBarBase::ViewHierarchyChanged(
55 const ViewHierarchyChangedDetails& details) { 58 const ViewHierarchyChangedDetails& details) {
56 if (details.is_add && (details.child == this) && 59 if (details.is_add && (details.child == this) &&
57 (background_color_animation_ == NULL)) { 60 (background_color_animation_ == NULL)) {
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
111 114
112 void TranslateInfoBarBase::FadeBackground(gfx::Canvas* canvas, 115 void TranslateInfoBarBase::FadeBackground(gfx::Canvas* canvas,
113 double animation_value, 116 double animation_value,
114 const views::Background& background) { 117 const views::Background& background) {
115 // Draw the background into an offscreen buffer with alpha value per animation 118 // Draw the background into an offscreen buffer with alpha value per animation
116 // value, then blend it back into the current canvas. 119 // value, then blend it back into the current canvas.
117 canvas->SaveLayerAlpha(static_cast<int>(animation_value * 255)); 120 canvas->SaveLayerAlpha(static_cast<int>(animation_value * 255));
118 background.Paint(canvas, this); 121 background.Paint(canvas, this);
119 canvas->Restore(); 122 canvas->Restore();
120 } 123 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698