| Index: ui/views/ime/input_method_bridge.h
|
| diff --git a/ui/views/ime/input_method_bridge.h b/ui/views/ime/input_method_bridge.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..6f4b384b7fca5234d71cc5cc1b4f32b1b9903c21
|
| --- /dev/null
|
| +++ b/ui/views/ime/input_method_bridge.h
|
| @@ -0,0 +1,82 @@
|
| +// 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.
|
| +
|
| +#ifndef UI_VIEWS_IME_INPUT_METHOD_BRIDGE_H_
|
| +#define UI_VIEWS_IME_INPUT_METHOD_BRIDGE_H_
|
| +#pragma once
|
| +
|
| +#include <string>
|
| +
|
| +#include "base/basictypes.h"
|
| +#include "base/compiler_specific.h"
|
| +#include "ui/base/ime/text_input_client.h"
|
| +#include "ui/views/ime/input_method_base.h"
|
| +
|
| +namespace ui {
|
| +class InputMethod;
|
| +} // namespace ui
|
| +
|
| +namespace views {
|
| +
|
| +class View;
|
| +
|
| +// A "bridge" InputMethod implementation for views top-level widgets, which just
|
| +// sends/receives IME related events to/from a system-wide ui::InputMethod
|
| +// object.
|
| +class InputMethodBridge : public InputMethodBase,
|
| + public ui::TextInputClient {
|
| + public:
|
| + InputMethodBridge(internal::InputMethodDelegate* delegate,
|
| + ui::InputMethod* host);
|
| + virtual ~InputMethodBridge();
|
| +
|
| + // Overridden from InputMethod:
|
| + virtual void Init(Widget* widget) OVERRIDE;
|
| + virtual void OnFocus() OVERRIDE;
|
| + virtual void OnBlur() OVERRIDE;
|
| + virtual void DispatchKeyEvent(const KeyEvent& key) OVERRIDE;
|
| + virtual void OnTextInputTypeChanged(View* view) OVERRIDE;
|
| + virtual void OnCaretBoundsChanged(View* view) OVERRIDE;
|
| + virtual void CancelComposition(View* view) OVERRIDE;
|
| + virtual std::string GetInputLocale() OVERRIDE;
|
| + virtual base::i18n::TextDirection GetInputTextDirection() OVERRIDE;
|
| + virtual bool IsActive() OVERRIDE;
|
| +
|
| + // Overridden from TextInputClient:
|
| + virtual void SetCompositionText(
|
| + const ui::CompositionText& composition) OVERRIDE;
|
| + virtual void ConfirmCompositionText() OVERRIDE;
|
| + virtual void ClearCompositionText() OVERRIDE;
|
| + virtual void InsertText(const string16& text) OVERRIDE;
|
| + virtual void InsertChar(char16 ch, int flags) OVERRIDE;
|
| + virtual ui::TextInputType GetTextInputType() const OVERRIDE;
|
| + virtual gfx::Rect GetCaretBounds() OVERRIDE;
|
| + virtual bool HasCompositionText() OVERRIDE;
|
| + virtual bool GetTextRange(ui::Range* range) OVERRIDE;
|
| + virtual bool GetCompositionTextRange(ui::Range* range) OVERRIDE;
|
| + virtual bool GetSelectionRange(ui::Range* range) OVERRIDE;
|
| + virtual bool SetSelectionRange(const ui::Range& range) OVERRIDE;
|
| + virtual bool DeleteRange(const ui::Range& range) OVERRIDE;
|
| + virtual bool GetTextFromRange(
|
| + const ui::Range& range, string16* text) OVERRIDE;
|
| + virtual void OnInputMethodChanged() OVERRIDE;
|
| + virtual bool ChangeTextDirectionAndLayoutAlignment(
|
| + base::i18n::TextDirection direction) OVERRIDE;
|
| +
|
| + // Overridden from FocusChangeListener.
|
| + virtual void OnWillChangeFocus(View* focused_before, View* focused) OVERRIDE;
|
| + virtual void OnDidChangeFocus(View* focused_before, View* focused) OVERRIDE;
|
| +
|
| + private:
|
| + void UpdateViewFocusState();
|
| +
|
| + ui::InputMethod* const host_;
|
| + bool context_focused_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(InputMethodBridge);
|
| +};
|
| +
|
| +} // namespace views
|
| +
|
| +#endif // UI_VIEWS_IME_INPUT_METHOD_BRIDGE_H_
|
|
|