Home | History | Annotate | Download | only in input_method
      1 // Copyright (c) 2012 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 #ifndef CHROME_BROWSER_CHROMEOS_INPUT_METHOD_INPUT_METHOD_PERSISTENCE_H_
      6 #define CHROME_BROWSER_CHROMEOS_INPUT_METHOD_INPUT_METHOD_PERSISTENCE_H_
      7 
      8 #include <string>
      9 
     10 #include "base/basictypes.h"
     11 #include "base/compiler_specific.h"
     12 #include "chromeos/ime/input_method_manager.h"
     13 
     14 namespace chromeos {
     15 namespace input_method {
     16 
     17 // Observes input method and session state changes, and persists input method
     18 // changes to the BrowserProcess local state or to the user preferences,
     19 // according to the session state.
     20 class InputMethodPersistence : public InputMethodManager::Observer {
     21  public:
     22   // Constructs an instance that will observe input method changes on the
     23   // provided InputMethodManager. The client is responsible for calling
     24   // OnSessionStateChange whenever the InputMethodManager::State changes.
     25   explicit InputMethodPersistence(InputMethodManager* input_method_manager);
     26   virtual ~InputMethodPersistence();
     27 
     28   // Receives notification of session state changes.
     29   void OnSessionStateChange(InputMethodManager::State new_state);
     30 
     31   // InputMethodManager::Observer overrides.
     32   virtual void InputMethodChanged(InputMethodManager* manager,
     33                                   bool show_message) OVERRIDE;
     34 
     35  private:
     36   InputMethodManager* input_method_manager_;
     37   InputMethodManager::State state_;
     38   DISALLOW_COPY_AND_ASSIGN(InputMethodPersistence);
     39 };
     40 
     41 }  // namespace input_method
     42 }  // namespace chromeos
     43 
     44 #endif  // CHROME_BROWSER_CHROMEOS_INPUT_METHOD_INPUT_METHOD_PERSISTENCE_H_
     45