| // Copyright (c) 2011 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 "views/ime/ime_context.h" |
| |
| namespace { |
| |
| #ifdef USE_DUMMY_IME_CONTEXT |
| class DummyIMEContext : public views::IMEContext { |
| public: |
| explicit DummyIMEContext(views::View* view) |
| : views::IMEContext(view) {} |
| virtual ~DummyIMEContext() {} |
| |
| // views::IMEContext implementations: |
| virtual void Focus() {} |
| virtual void Blur() {} |
| virtual void Reset() {} |
| virtual bool FilterKeyEvent(const views::KeyEvent& event) { |
| return false; |
| } |
| virtual void SetCursorLocation(const gfx::Rect& caret_rect) {} |
| virtual void SetSurrounding(const string16& text, int cursor_pos) {} |
| |
| private: |
| DISALLOW_COPY_AND_ASSIGN(DummyIMEContext); |
| }; |
| #endif // USE_DUMMY_IME_CONTEXT |
| |
| } // namespace |
| |
| namespace views { |
| |
| IMEContext::IMEContext(View* view) |
| : view_(view) , |
| commit_text_listener_(NULL), |
| composition_listener_(NULL), |
| forward_key_event_listener_(NULL), |
| surrounding_listener_(NULL) { |
| } |
| |
| void IMEContext::CommitText(const string16& text) { |
| if (commit_text_listener_) |
| commit_text_listener_->OnCommitText(this, text); |
| } |
| |
| void IMEContext::StartComposition() { |
| if (composition_listener_) |
| composition_listener_->OnStartComposition(this); |
| } |
| |
| void IMEContext::EndComposition() { |
| if (composition_listener_) |
| composition_listener_->OnEndComposition(this); |
| } |
| |
| void IMEContext::SetComposition(const string16& text, |
| const CompositionAttributeList& attributes, |
| uint32 cursor_pos) { |
| if (composition_listener_) |
| composition_listener_->OnSetComposition(this, text, attributes, cursor_pos); |
| } |
| |
| void IMEContext::ForwardKeyEvent(const KeyEvent& event) { |
| if (forward_key_event_listener_) |
| forward_key_event_listener_->OnForwardKeyEvent(this, event); |
| } |
| |
| bool IMEContext::SetSurroundingActive(bool active) { |
| if (surrounding_listener_) |
| return surrounding_listener_->OnSetSurroundingActive(this, active); |
| return false; |
| } |
| |
| bool IMEContext::DeleteSurrounding(int offset, int nchars) { |
| if (surrounding_listener_) |
| return surrounding_listener_->OnDeleteSurrounding(this, offset, nchars); |
| return false; |
| } |
| |
| #ifdef USE_DUMMY_IME_CONTEXT |
| IMEContext* IMEContext::Create(View* view) { |
| return new DummyIMEContext(view); |
| } |
| #endif // USE_DUMMY_IME_CONTEXT |
| |
| } // namespace views |