| OLD | NEW |
| 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/gtk/infobars/translate_infobar_base_gtk.h" | 5 #include "chrome/browser/ui/gtk/infobars/translate_infobar_base_gtk.h" |
| 6 | 6 |
| 7 #include "base/strings/utf_string_conversions.h" | 7 #include "base/strings/utf_string_conversions.h" |
| 8 #include "chrome/browser/translate/options_menu_model.h" | 8 #include "chrome/browser/translate/options_menu_model.h" |
| 9 #include "chrome/browser/translate/translate_infobar_delegate.h" | 9 #include "chrome/browser/translate/translate_infobar_delegate.h" |
| 10 #include "chrome/browser/ui/gtk/gtk_util.h" | 10 #include "chrome/browser/ui/gtk/gtk_util.h" |
| 11 #include "chrome/browser/ui/gtk/infobars/after_translate_infobar_gtk.h" | 11 #include "chrome/browser/ui/gtk/infobars/after_translate_infobar_gtk.h" |
| 12 #include "chrome/browser/ui/gtk/infobars/before_translate_infobar_gtk.h" | 12 #include "chrome/browser/ui/gtk/infobars/before_translate_infobar_gtk.h" |
| 13 #include "chrome/browser/ui/gtk/infobars/translate_message_infobar_gtk.h" | 13 #include "chrome/browser/ui/gtk/infobars/translate_message_infobar_gtk.h" |
| 14 #include "chrome/browser/ui/gtk/menu_gtk.h" | 14 #include "chrome/browser/ui/gtk/menu_gtk.h" |
| 15 #include "grit/generated_resources.h" | 15 #include "grit/generated_resources.h" |
| 16 #include "ui/base/animation/slide_animation.h" | |
| 17 #include "ui/base/gtk/gtk_signal_registrar.h" | 16 #include "ui/base/gtk/gtk_signal_registrar.h" |
| 18 #include "ui/base/l10n/l10n_util.h" | 17 #include "ui/base/l10n/l10n_util.h" |
| 18 #include "ui/gfx/animation/slide_animation.h" |
| 19 #include "ui/gfx/canvas.h" | 19 #include "ui/gfx/canvas.h" |
| 20 | 20 |
| 21 | 21 |
| 22 // TranslateInfoBarDelegate --------------------------------------------------- | 22 // TranslateInfoBarDelegate --------------------------------------------------- |
| 23 | 23 |
| 24 InfoBar* TranslateInfoBarDelegate::CreateInfoBar(InfoBarService* owner) { | 24 InfoBar* TranslateInfoBarDelegate::CreateInfoBar(InfoBarService* owner) { |
| 25 if (infobar_type_ == BEFORE_TRANSLATE) | 25 if (infobar_type_ == BEFORE_TRANSLATE) |
| 26 return new BeforeTranslateInfoBar(owner, this); | 26 return new BeforeTranslateInfoBar(owner, this); |
| 27 if (infobar_type_ == AFTER_TRANSLATE) | 27 if (infobar_type_ == AFTER_TRANSLATE) |
| 28 return new AfterTranslateInfoBar(owner, this); | 28 return new AfterTranslateInfoBar(owner, this); |
| 29 return new TranslateMessageInfoBar(owner, this); | 29 return new TranslateMessageInfoBar(owner, this); |
| 30 } | 30 } |
| 31 | 31 |
| 32 | 32 |
| 33 // TranslateInfoBarBase ------------------------------------------------------- | 33 // TranslateInfoBarBase ------------------------------------------------------- |
| 34 | 34 |
| 35 TranslateInfoBarBase::TranslateInfoBarBase(InfoBarService* owner, | 35 TranslateInfoBarBase::TranslateInfoBarBase(InfoBarService* owner, |
| 36 TranslateInfoBarDelegate* delegate) | 36 TranslateInfoBarDelegate* delegate) |
| 37 : InfoBarGtk(owner, delegate), | 37 : InfoBarGtk(owner, delegate), |
| 38 background_error_percent_(0) { | 38 background_error_percent_(0) { |
| 39 DCHECK(delegate); | 39 DCHECK(delegate); |
| 40 TranslateInfoBarDelegate::BackgroundAnimationType animation = | 40 TranslateInfoBarDelegate::BackgroundAnimationType animation = |
| 41 delegate->background_animation_type(); | 41 delegate->background_animation_type(); |
| 42 if (animation != TranslateInfoBarDelegate::NONE) { | 42 if (animation != TranslateInfoBarDelegate::NONE) { |
| 43 background_color_animation_.reset(new ui::SlideAnimation(this)); | 43 background_color_animation_.reset(new gfx::SlideAnimation(this)); |
| 44 background_color_animation_->SetTweenType(ui::Tween::LINEAR); | 44 background_color_animation_->SetTweenType(gfx::Tween::LINEAR); |
| 45 background_color_animation_->SetSlideDuration(500); | 45 background_color_animation_->SetSlideDuration(500); |
| 46 if (animation == TranslateInfoBarDelegate::NORMAL_TO_ERROR) { | 46 if (animation == TranslateInfoBarDelegate::NORMAL_TO_ERROR) { |
| 47 background_color_animation_->Show(); | 47 background_color_animation_->Show(); |
| 48 } else { | 48 } else { |
| 49 DCHECK_EQ(TranslateInfoBarDelegate::ERROR_TO_NORMAL, animation); | 49 DCHECK_EQ(TranslateInfoBarDelegate::ERROR_TO_NORMAL, animation); |
| 50 // Hide() runs the animation in reverse. | 50 // Hide() runs the animation in reverse. |
| 51 background_color_animation_->Reset(1.0); | 51 background_color_animation_->Reset(1.0); |
| 52 background_color_animation_->Hide(); | 52 background_color_animation_->Hide(); |
| 53 } | 53 } |
| 54 } else { | 54 } else { |
| 55 background_error_percent_ = delegate->is_error() ? 1 : 0; | 55 background_error_percent_ = delegate->is_error() ? 1 : 0; |
| 56 } | 56 } |
| 57 } | 57 } |
| 58 | 58 |
| 59 TranslateInfoBarBase::~TranslateInfoBarBase() { | 59 TranslateInfoBarBase::~TranslateInfoBarBase() { |
| 60 } | 60 } |
| 61 | 61 |
| 62 void TranslateInfoBarBase::AnimationProgressed(const ui::Animation* animation) { | 62 void TranslateInfoBarBase::AnimationProgressed( |
| 63 const gfx::Animation* animation) { |
| 63 DCHECK(widget()); | 64 DCHECK(widget()); |
| 64 if (animation == background_color_animation_.get()) { | 65 if (animation == background_color_animation_.get()) { |
| 65 background_error_percent_ = animation->GetCurrentValue(); | 66 background_error_percent_ = animation->GetCurrentValue(); |
| 66 // Queue the info bar widget for redisplay so it repaints its background. | 67 // Queue the info bar widget for redisplay so it repaints its background. |
| 67 gtk_widget_queue_draw(widget()); | 68 gtk_widget_queue_draw(widget()); |
| 68 } else { | 69 } else { |
| 69 InfoBar::AnimationProgressed(animation); | 70 InfoBar::AnimationProgressed(animation); |
| 70 } | 71 } |
| 71 } | 72 } |
| 72 | 73 |
| (...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 193 } | 194 } |
| 194 | 195 |
| 195 TranslateInfoBarDelegate* TranslateInfoBarBase::GetDelegate() { | 196 TranslateInfoBarDelegate* TranslateInfoBarBase::GetDelegate() { |
| 196 return static_cast<TranslateInfoBarDelegate*>(delegate()); | 197 return static_cast<TranslateInfoBarDelegate*>(delegate()); |
| 197 } | 198 } |
| 198 | 199 |
| 199 void TranslateInfoBarBase::OnOptionsClicked(GtkWidget* sender) { | 200 void TranslateInfoBarBase::OnOptionsClicked(GtkWidget* sender) { |
| 200 menu_model_.reset(new OptionsMenuModel(GetDelegate())); | 201 menu_model_.reset(new OptionsMenuModel(GetDelegate())); |
| 201 ShowMenuWithModel(sender, NULL, menu_model_.get()); | 202 ShowMenuWithModel(sender, NULL, menu_model_.get()); |
| 202 } | 203 } |
| OLD | NEW |