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#include "ui/base/ime/mock_input_method.h"
6
7namespace ui {
8
9MockInputMethod::MockInputMethod(internal::InputMethodDelegate* delegate)
10    : text_input_client_(NULL) {
11}
12
13MockInputMethod::~MockInputMethod() {
14}
15
16void MockInputMethod::SetDelegate(internal::InputMethodDelegate* delegate) {
17}
18
19void MockInputMethod::SetFocusedTextInputClient(TextInputClient* client) {
20  if (text_input_client_ == client)
21    return;
22  text_input_client_ = client;
23  if (client)
24    OnTextInputTypeChanged(client);
25}
26
27void MockInputMethod::DetachTextInputClient(TextInputClient* client) {
28  if (text_input_client_ == client) {
29    text_input_client_ = NULL;
30  }
31}
32
33TextInputClient* MockInputMethod::GetTextInputClient() const {
34  return text_input_client_;
35}
36
37bool MockInputMethod::DispatchKeyEvent(const ui::KeyEvent& event) {
38  return false;
39}
40
41void MockInputMethod::Init(bool focused) {
42}
43
44void MockInputMethod::OnFocus() {
45  FOR_EACH_OBSERVER(InputMethodObserver, observer_list_, OnFocus());
46}
47
48void MockInputMethod::OnBlur() {
49  FOR_EACH_OBSERVER(InputMethodObserver, observer_list_, OnBlur());
50}
51
52bool MockInputMethod::OnUntranslatedIMEMessage(const base::NativeEvent& event,
53                                               NativeEventResult* result) {
54  if (result)
55    *result = NativeEventResult();
56  return false;
57}
58
59void MockInputMethod::OnTextInputTypeChanged(const TextInputClient* client) {
60  FOR_EACH_OBSERVER(InputMethodObserver,
61                    observer_list_,
62                    OnTextInputTypeChanged(client));
63  FOR_EACH_OBSERVER(InputMethodObserver,
64                    observer_list_,
65                    OnTextInputStateChanged(client));
66}
67
68void MockInputMethod::OnCaretBoundsChanged(const TextInputClient* client) {
69  FOR_EACH_OBSERVER(InputMethodObserver,
70                    observer_list_,
71                    OnCaretBoundsChanged(client));
72}
73
74void MockInputMethod::CancelComposition(const TextInputClient* client) {
75}
76
77void MockInputMethod::OnInputLocaleChanged() {
78}
79
80std::string MockInputMethod::GetInputLocale() {
81  return "";
82}
83
84base::i18n::TextDirection MockInputMethod::GetInputTextDirection() {
85  return base::i18n::UNKNOWN_DIRECTION;
86}
87
88bool MockInputMethod::IsActive() {
89  return true;
90}
91
92TextInputType MockInputMethod::GetTextInputType() const {
93  return TEXT_INPUT_TYPE_NONE;
94}
95
96TextInputMode MockInputMethod::GetTextInputMode() const {
97  return TEXT_INPUT_MODE_DEFAULT;
98}
99
100bool MockInputMethod::CanComposeInline() const {
101  return true;
102}
103
104bool MockInputMethod::IsCandidatePopupOpen() const {
105  return false;
106}
107
108void MockInputMethod::AddObserver(InputMethodObserver* observer) {
109  observer_list_.AddObserver(observer);
110}
111
112void MockInputMethod::RemoveObserver(InputMethodObserver* observer) {
113  observer_list_.RemoveObserver(observer);
114}
115
116}  // namespace ui
117