1 // Copyright 2013 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/translate/translate_bubble_model_impl.h" 6 7 #include "chrome/browser/tab_contents/language_state.h" 8 #include "chrome/browser/translate/translate_tab_helper.h" 9 #include "chrome/browser/translate/translate_ui_delegate.h" 10 11 TranslateBubbleModelImpl::TranslateBubbleModelImpl( 12 TranslateBubbleModel::ViewState view_type, 13 scoped_ptr<TranslateUIDelegate> ui_delegate) 14 : ui_delegate_(ui_delegate.Pass()), 15 view_state_transition_(view_type) { 16 } 17 18 TranslateBubbleModelImpl::~TranslateBubbleModelImpl() { 19 } 20 21 TranslateBubbleModel::ViewState TranslateBubbleModelImpl::GetViewState() const { 22 return view_state_transition_.view_state(); 23 } 24 25 void TranslateBubbleModelImpl::SetViewState( 26 TranslateBubbleModel::ViewState view_state) { 27 view_state_transition_.SetViewState(view_state); 28 } 29 30 void TranslateBubbleModelImpl::ShowError(TranslateErrors::Type error_type) { 31 ui_delegate_->OnErrorShown(error_type); 32 } 33 34 void TranslateBubbleModelImpl::GoBackFromAdvanced() { 35 view_state_transition_.GoBackFromAdvanced(); 36 } 37 38 int TranslateBubbleModelImpl::GetNumberOfLanguages() const { 39 return ui_delegate_->GetNumberOfLanguages(); 40 } 41 42 base::string16 TranslateBubbleModelImpl::GetLanguageNameAt(int index) const { 43 return ui_delegate_->GetLanguageNameAt(index); 44 } 45 46 int TranslateBubbleModelImpl::GetOriginalLanguageIndex() const { 47 return ui_delegate_->GetOriginalLanguageIndex(); 48 } 49 50 void TranslateBubbleModelImpl::UpdateOriginalLanguageIndex(int index) { 51 ui_delegate_->UpdateOriginalLanguageIndex(index); 52 } 53 54 int TranslateBubbleModelImpl::GetTargetLanguageIndex() const { 55 return ui_delegate_->GetTargetLanguageIndex(); 56 } 57 58 void TranslateBubbleModelImpl::UpdateTargetLanguageIndex(int index) { 59 ui_delegate_->UpdateTargetLanguageIndex(index); 60 } 61 62 void TranslateBubbleModelImpl::SetNeverTranslateLanguage(bool value) { 63 ui_delegate_->SetLanguageBlocked(value); 64 } 65 66 void TranslateBubbleModelImpl::SetNeverTranslateSite(bool value) { 67 ui_delegate_->SetSiteBlacklist(value); 68 } 69 70 bool TranslateBubbleModelImpl::ShouldAlwaysTranslate() const { 71 return ui_delegate_->ShouldAlwaysTranslate(); 72 } 73 74 void TranslateBubbleModelImpl::SetAlwaysTranslate(bool value) { 75 ui_delegate_->SetAlwaysTranslate(value); 76 } 77 78 void TranslateBubbleModelImpl::Translate() { 79 ui_delegate_->Translate(); 80 } 81 82 void TranslateBubbleModelImpl::RevertTranslation() { 83 ui_delegate_->RevertTranslation(); 84 } 85 86 void TranslateBubbleModelImpl::TranslationDeclined(bool explicitly_closed) { 87 ui_delegate_->TranslationDeclined(explicitly_closed); 88 } 89 90 bool TranslateBubbleModelImpl::IsPageTranslatedInCurrentLanguages() const { 91 content::WebContents* web_contents = ui_delegate_->web_contents(); 92 TranslateTabHelper* translate_tab_helper = 93 TranslateTabHelper::FromWebContents(web_contents); 94 LanguageState& language_state = translate_tab_helper->language_state(); 95 return ui_delegate_->GetOriginalLanguageCode() == 96 language_state.original_language() && 97 ui_delegate_->GetTargetLanguageCode() == 98 language_state.current_language(); 99 } 100