| // Copyright 2013 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "chrome/browser/ui/translate/translate_bubble_model_impl.h" |
| |
| #include "chrome/browser/tab_contents/language_state.h" |
| #include "chrome/browser/translate/translate_tab_helper.h" |
| #include "chrome/browser/translate/translate_ui_delegate.h" |
| |
| TranslateBubbleModelImpl::TranslateBubbleModelImpl( |
| TranslateBubbleModel::ViewState view_type, |
| scoped_ptr<TranslateUIDelegate> ui_delegate) |
| : ui_delegate_(ui_delegate.Pass()), |
| view_state_transition_(view_type) { |
| } |
| |
| TranslateBubbleModelImpl::~TranslateBubbleModelImpl() { |
| } |
| |
| TranslateBubbleModel::ViewState TranslateBubbleModelImpl::GetViewState() const { |
| return view_state_transition_.view_state(); |
| } |
| |
| void TranslateBubbleModelImpl::SetViewState( |
| TranslateBubbleModel::ViewState view_state) { |
| view_state_transition_.SetViewState(view_state); |
| } |
| |
| TranslateErrors::Type TranslateBubbleModelImpl::GetErrorType() const { |
| return ui_delegate_->error_type(); |
| } |
| |
| void TranslateBubbleModelImpl::SetErrorType(TranslateErrors::Type error_type) { |
| ui_delegate_->set_error_type(error_type); |
| } |
| |
| void TranslateBubbleModelImpl::GoBackFromAdvanced() { |
| view_state_transition_.GoBackFromAdvanced(); |
| } |
| |
| int TranslateBubbleModelImpl::GetNumberOfLanguages() const { |
| return ui_delegate_->GetNumberOfLanguages(); |
| } |
| |
| string16 TranslateBubbleModelImpl::GetLanguageNameAt(int index) const { |
| return ui_delegate_->GetLanguageNameAt(index); |
| } |
| |
| int TranslateBubbleModelImpl::GetOriginalLanguageIndex() const { |
| return ui_delegate_->GetOriginalLanguageIndex(); |
| } |
| |
| void TranslateBubbleModelImpl::UpdateOriginalLanguageIndex(int index) { |
| ui_delegate_->UpdateOriginalLanguageIndex(index); |
| } |
| |
| int TranslateBubbleModelImpl::GetTargetLanguageIndex() const { |
| return ui_delegate_->GetTargetLanguageIndex(); |
| } |
| |
| void TranslateBubbleModelImpl::UpdateTargetLanguageIndex(int index) { |
| ui_delegate_->UpdateTargetLanguageIndex(index); |
| } |
| |
| void TranslateBubbleModelImpl::SetNeverTranslateLanguage(bool value) { |
| ui_delegate_->SetLanguageBlocked(value); |
| } |
| |
| void TranslateBubbleModelImpl::SetNeverTranslateSite(bool value) { |
| ui_delegate_->SetSiteBlacklist(value); |
| } |
| |
| bool TranslateBubbleModelImpl::ShouldAlwaysTranslate() const { |
| return ui_delegate_->ShouldAlwaysTranslate(); |
| } |
| |
| void TranslateBubbleModelImpl::SetAlwaysTranslate(bool value) { |
| ui_delegate_->SetAlwaysTranslate(value); |
| } |
| |
| void TranslateBubbleModelImpl::Translate() { |
| ui_delegate_->Translate(); |
| } |
| |
| void TranslateBubbleModelImpl::RevertTranslation() { |
| ui_delegate_->RevertTranslation(); |
| } |
| |
| void TranslateBubbleModelImpl::TranslationDeclined() { |
| ui_delegate_->TranslationDeclined(); |
| } |
| |
| bool TranslateBubbleModelImpl::IsPageTranslatedInCurrentLanguages() const { |
| content::WebContents* web_contents = ui_delegate_->web_contents(); |
| TranslateTabHelper* translate_tab_helper = |
| TranslateTabHelper::FromWebContents(web_contents); |
| LanguageState& language_state = translate_tab_helper->language_state(); |
| return ui_delegate_->GetOriginalLanguageCode() == |
| language_state.original_language() && |
| ui_delegate_->GetTargetLanguageCode() == |
| language_state.current_language(); |
| } |