Index: ash/ime/input_method_menu_manager.cc |
diff --git a/ash/ime/input_method_menu_manager.cc b/ash/ime/input_method_menu_manager.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..ee75621ab8d581bf4faa12ac4c6072fe36744bb5 |
--- /dev/null |
+++ b/ash/ime/input_method_menu_manager.cc |
@@ -0,0 +1,57 @@ |
+// Copyright 2014 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "ash/ime/input_method_menu_manager.h" |
+ |
+#include "base/logging.h" |
+#include "base/memory/singleton.h" |
+ |
+namespace ash { |
+namespace ime { |
+ |
+InputMethodMenuManager::InputMethodMenuManager() |
+ : menu_list_(), observers_() {} |
+ |
+InputMethodMenuManager::~InputMethodMenuManager() {} |
+ |
+void InputMethodMenuManager::AddObserver( |
+ InputMethodMenuManager::Observer* observer) { |
+ observers_.AddObserver(observer); |
+} |
+ |
+void InputMethodMenuManager::RemoveObserver( |
+ InputMethodMenuManager::Observer* observer) { |
+ observers_.RemoveObserver(observer); |
+} |
+ |
+InputMethodMenuItemList |
+InputMethodMenuManager::GetCurrentInputMethodMenuItemList() const { |
+ return menu_list_; |
+} |
+ |
+void InputMethodMenuManager::SetCurrentInputMethodMenuItemList( |
+ const InputMethodMenuItemList& menu_list) { |
+ menu_list_ = menu_list; |
+ FOR_EACH_OBSERVER(InputMethodMenuManager::Observer, |
+ observers_, |
+ InputMethodMenuItemChanged(this)); |
+} |
+ |
+bool InputMethodMenuManager::HasInputMethodMenuItemForKey( |
+ const std::string& key) const { |
+ for (size_t i = 0; i < menu_list_.size(); ++i) { |
+ if (menu_list_[i].key == key) { |
+ return true; |
+ } |
+ } |
+ return false; |
+} |
+ |
+// static |
+InputMethodMenuManager* InputMethodMenuManager::GetInstance() { |
+ return Singleton<InputMethodMenuManager>::get(); |
+} |
+ |
+} // namespace ime |
+} // namespace ash |