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/chromeos/input_method/accessibility.h" 6 7 #include "base/logging.h" 8 #include "base/strings/utf_string_conversions.h" 9 #include "chrome/browser/accessibility/accessibility_events.h" 10 #include "chrome/browser/chromeos/input_method/input_method_util.h" 11 #include "chrome/browser/profiles/profile_manager.h" 12 13 namespace chromeos { 14 namespace input_method { 15 Accessibility(InputMethodManager * imm)16Accessibility::Accessibility(InputMethodManager* imm) 17 : imm_(imm) { 18 DCHECK(imm_); 19 imm_->AddObserver(this); 20 } 21 ~Accessibility()22Accessibility::~Accessibility() { 23 DCHECK(imm_); 24 imm_->RemoveObserver(this); 25 } 26 InputMethodChanged(InputMethodManager * imm,bool show_message)27void Accessibility::InputMethodChanged(InputMethodManager* imm, 28 bool show_message) { 29 DCHECK_EQ(imm, imm_); 30 if (!show_message) 31 return; 32 33 // Get the medium name of the changed input method (e.g. US, INTL, etc.) 34 const InputMethodDescriptor descriptor = 35 imm_->GetActiveIMEState()->GetCurrentInputMethod(); 36 const std::string medium_name = base::UTF16ToUTF8( 37 imm_->GetInputMethodUtil()->GetInputMethodMediumName(descriptor)); 38 39 AccessibilityAlertInfo event(ProfileManager::GetActiveUserProfile(), 40 medium_name); 41 SendControlAccessibilityNotification( 42 ui::AX_EVENT_ALERT, &event); 43 } 44 45 } // namespace input_method 46 } // namespace chromeos 47