Home | History | Annotate | Download | only in input_method
      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 
     16 Accessibility::Accessibility(InputMethodManager* imm)
     17     : imm_(imm) {
     18   DCHECK(imm_);
     19   imm_->AddObserver(this);
     20 }
     21 
     22 Accessibility::~Accessibility() {
     23   DCHECK(imm_);
     24   imm_->RemoveObserver(this);
     25 }
     26 
     27 void 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 = imm_->GetCurrentInputMethod();
     35   const std::string medium_name = base::UTF16ToUTF8(
     36       imm_->GetInputMethodUtil()->GetInputMethodMediumName(descriptor));
     37 
     38   AccessibilityAlertInfo event(ProfileManager::GetActiveUserProfile(),
     39                                medium_name);
     40   SendControlAccessibilityNotification(
     41       ui::AX_EVENT_ALERT, &event);
     42 }
     43 
     44 }  // namespace input_method
     45 }  // namespace chromeos
     46