d0351fdac88e95fafd7a6ff0fa5fd1629ab18e8f
[platform/framework/web/crosswalk.git] / src / chrome / browser / ui / translate / translate_bubble_model_impl.cc
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/translate/translate_tab_helper.h"
8 #include "chrome/browser/translate/translate_ui_delegate.h"
9 #include "components/translate/core/browser/language_state.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->GetLanguageState();
95   return ui_delegate_->GetOriginalLanguageCode() ==
96       language_state.original_language() &&
97       ui_delegate_->GetTargetLanguageCode() ==
98       language_state.current_language();
99 }