OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/tab_contents/spellchecker_submenu_observer.h" | 5 #include "chrome/browser/tab_contents/spellchecker_submenu_observer.h" |
6 | 6 |
7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
8 #include "base/logging.h" | 8 #include "base/logging.h" |
9 #include "chrome/app/chrome_command_ids.h" | 9 #include "chrome/app/chrome_command_ids.h" |
10 #include "chrome/browser/browser_process.h" | 10 #include "chrome/browser/browser_process.h" |
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
161 case IDC_CONTENT_CONTEXT_SPELLING_TOGGLE: | 161 case IDC_CONTENT_CONTEXT_SPELLING_TOGGLE: |
162 return true; | 162 return true; |
163 } | 163 } |
164 | 164 |
165 return false; | 165 return false; |
166 } | 166 } |
167 | 167 |
168 void SpellCheckerSubMenuObserver::ExecuteCommand(int command_id) { | 168 void SpellCheckerSubMenuObserver::ExecuteCommand(int command_id) { |
169 DCHECK(IsCommandIdSupported(command_id)); | 169 DCHECK(IsCommandIdSupported(command_id)); |
170 | 170 |
| 171 RenderViewHost* rvh = proxy_->GetRenderViewHost(); |
| 172 |
171 // Check to see if one of the spell check language ids have been clicked. | 173 // Check to see if one of the spell check language ids have been clicked. |
172 if (command_id >= IDC_SPELLCHECK_LANGUAGES_FIRST && | 174 if (command_id >= IDC_SPELLCHECK_LANGUAGES_FIRST && |
173 command_id < IDC_SPELLCHECK_LANGUAGES_LAST) { | 175 command_id < IDC_SPELLCHECK_LANGUAGES_LAST) { |
174 Profile* profile = proxy_->GetProfile(); | 176 Profile* profile = proxy_->GetProfile(); |
175 const size_t language = command_id - IDC_SPELLCHECK_LANGUAGES_FIRST; | 177 const size_t language = command_id - IDC_SPELLCHECK_LANGUAGES_FIRST; |
176 if (profile && language < languages_.size()) { | 178 if (profile && language < languages_.size()) { |
177 StringPrefMember dictionary_language; | 179 StringPrefMember dictionary_language; |
178 dictionary_language.Init(prefs::kSpellCheckDictionary, | 180 dictionary_language.Init(prefs::kSpellCheckDictionary, |
179 profile->GetPrefs(), | 181 profile->GetPrefs(), |
180 NULL); | 182 NULL); |
181 dictionary_language.SetValue(languages_[language]); | 183 dictionary_language.SetValue(languages_[language]); |
| 184 rvh->RequestTextChecking(); |
182 } | 185 } |
183 return; | 186 return; |
184 } | 187 } |
185 | 188 |
186 RenderViewHost* rvh = proxy_->GetRenderViewHost(); | |
187 switch (command_id) { | 189 switch (command_id) { |
188 case IDC_CHECK_SPELLING_OF_THIS_FIELD: | 190 case IDC_CHECK_SPELLING_OF_THIS_FIELD: |
189 rvh->Send(new SpellCheckMsg_ToggleSpellCheck(rvh->routing_id())); | 191 rvh->Send(new SpellCheckMsg_ToggleSpellCheck(rvh->routing_id())); |
190 break; | 192 break; |
191 | 193 |
192 #if defined(OS_WIN) | 194 #if defined(OS_WIN) |
193 case IDC_CONTENT_CONTEXT_SPELLING_TOGGLE: | 195 case IDC_CONTENT_CONTEXT_SPELLING_TOGGLE: |
194 // When a user chooses the "Ask Google for spelling suggestions" item, we | 196 // When a user chooses the "Ask Google for spelling suggestions" item, we |
195 // show a bubble to confirm it. On the other hand, when a user chooses the | 197 // show a bubble to confirm it. On the other hand, when a user chooses the |
196 // "Stop asking Google for spelling suggestions" item, we directly update | 198 // "Stop asking Google for spelling suggestions" item, we directly update |
197 // the profile and stop integrating the spelling service immediately. | 199 // the profile and stop integrating the spelling service immediately. |
198 if (!integrate_spelling_service_) { | 200 if (!integrate_spelling_service_) { |
199 gfx::Rect rect = rvh->view()->GetViewBounds(); | 201 gfx::Rect rect = rvh->view()->GetViewBounds(); |
200 ConfirmBubbleModel::Show(rvh->view()->GetNativeView(), | 202 ConfirmBubbleModel::Show(rvh->view()->GetNativeView(), |
201 gfx::Point(rect.CenterPoint().x(), rect.y()), | 203 gfx::Point(rect.CenterPoint().x(), rect.y()), |
202 new SpellingBubbleModel(proxy_->GetProfile())); | 204 new SpellingBubbleModel(proxy_->GetProfile())); |
203 } else { | 205 } else { |
204 Profile* profile = proxy_->GetProfile(); | 206 Profile* profile = proxy_->GetProfile(); |
205 if (profile) | 207 if (profile) |
206 profile->GetPrefs()->SetBoolean(prefs::kSpellCheckUseSpellingService, | 208 profile->GetPrefs()->SetBoolean(prefs::kSpellCheckUseSpellingService, |
207 false); | 209 false); |
208 } | 210 } |
209 break; | 211 break; |
210 #endif | 212 #endif |
211 } | 213 } |
212 } | 214 } |
OLD | NEW |