Chromium Code Reviews| Index: ui/views/mus/text_input_client_impl.cc |
| diff --git a/ui/views/mus/text_input_client_impl.cc b/ui/views/mus/text_input_client_impl.cc |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..6b3da2e30e45e8e5b6a82f7daa0fb07966af6d0e |
| --- /dev/null |
| +++ b/ui/views/mus/text_input_client_impl.cc |
| @@ -0,0 +1,54 @@ |
| +// Copyright 2016 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 "ui/views/mus/text_input_client_impl.h" |
| + |
| +#include "ui/base/ime/text_input_client.h" |
| +#include "ui/views/mus/input_method_mus.h" |
| + |
| +namespace views { |
| + |
| +TextInputClientImpl::TextInputClientImpl(ui::TextInputClient* text_input_client, |
| + InputMethodMus* input_method) |
| + : text_input_client_(text_input_client), |
| + input_method_(input_method), |
| + binding_(this) {} |
| + |
| +TextInputClientImpl::~TextInputClientImpl() {} |
| + |
| +ui::mojom::TextInputClientPtr TextInputClientImpl::CreateInterfacePtrAndBind() { |
| + return binding_.CreateInterfacePtrAndBind(); |
| +} |
| + |
| +void TextInputClientImpl::OnCompositionEvent( |
| + ui::mojom::CompositionEventPtr event) { |
| + switch (event->type) { |
| + case ui::mojom::CompositionEventType::INSERT_CHAR: { |
| + ui::KeyEvent* key_event = (*event->key_event)->AsKeyEvent(); |
|
sky
2016/08/18 23:43:07
DCHECK event is a KeyEvent?
Hadi
2016/08/25 18:06:06
Done.
|
| + DCHECK(key_event->is_char()); |
| + text_input_client_->InsertChar(*key_event); |
| + break; |
| + } |
| + case ui::mojom::CompositionEventType::CONFIRM: |
| + text_input_client_->ConfirmCompositionText(); |
| + break; |
| + case ui::mojom::CompositionEventType::CLEAR: |
| + text_input_client_->ClearCompositionText(); |
| + break; |
| + case ui::mojom::CompositionEventType::UPDATE: |
| + case ui::mojom::CompositionEventType::INSERT_TEXT: |
| + // TODO(moshayedi): crbug.com/631524. Implement these types of composition |
| + // events once we have the necessary fields in ui.mojom.CompositionEvent. |
| + NOTIMPLEMENTED(); |
| + break; |
| + } |
| +} |
| + |
| +void TextInputClientImpl::OnUnhandledEvent( |
| + std::unique_ptr<ui::Event> key_event) { |
| + DCHECK(key_event && key_event->IsKeyEvent()); |
| + input_method_->DispatchKeyEventPostIME(key_event->AsKeyEvent()); |
| +} |
| + |
| +} // namespace views |