| Index: content/browser/renderer_host/ime_adapter_android.h
|
| diff --git a/content/browser/renderer_host/ime_adapter_android.h b/content/browser/renderer_host/ime_adapter_android.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..72ab6d3ed3298b683e3aef302472a424f4de310f
|
| --- /dev/null
|
| +++ b/content/browser/renderer_host/ime_adapter_android.h
|
| @@ -0,0 +1,116 @@
|
| +// Copyright (c) 2012 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 CONTENT_BROWSER_RENDERER_HOST_IME_ADAPTER_ANDROID_H_
|
| +#define CONTENT_BROWSER_RENDERER_HOST_IME_ADAPTER_ANDROID_H_
|
| +
|
| +#include <jni.h>
|
| +
|
| +#include <vector>
|
| +
|
| +#include "base/android/jni_weak_ref.h"
|
| +#include "base/strings/string16.h"
|
| +#include "content/common/content_export.h"
|
| +#include "ui/gfx/geometry/rect_f.h"
|
| +
|
| +namespace blink {
|
| +
|
| +struct WebCompositionUnderline;
|
| +
|
| +} // namespace blink
|
| +
|
| +namespace content {
|
| +
|
| +class RenderFrameHost;
|
| +class RenderWidgetHostImpl;
|
| +class RenderWidgetHostViewAndroid;
|
| +
|
| +// This class is in charge of dispatching key events from the java side
|
| +// and forward to renderer along with input method results via
|
| +// corresponding host view.
|
| +// Ownership of these objects remains on the native side (see
|
| +// RenderWidgetHostViewAndroid).
|
| +class CONTENT_EXPORT ImeAdapterAndroid {
|
| + public:
|
| + explicit ImeAdapterAndroid(RenderWidgetHostViewAndroid* rwhva);
|
| + ~ImeAdapterAndroid();
|
| +
|
| + // Called from java -> native
|
| + bool SendKeyEvent(
|
| + JNIEnv* env,
|
| + const base::android::JavaParamRef<jobject>&,
|
| + const base::android::JavaParamRef<jobject>& original_key_event,
|
| + int type,
|
| + int modifiers,
|
| + jlong time_ms,
|
| + int key_code,
|
| + int scan_code,
|
| + bool is_system_key,
|
| + int unicode_text);
|
| + void SetComposingText(JNIEnv* env,
|
| + const base::android::JavaParamRef<jobject>& obj,
|
| + const base::android::JavaParamRef<jobject>& text,
|
| + const base::android::JavaParamRef<jstring>& text_str,
|
| + int relative_cursor_pos);
|
| + void CommitText(JNIEnv* env,
|
| + const base::android::JavaParamRef<jobject>& obj,
|
| + const base::android::JavaParamRef<jobject>& text,
|
| + const base::android::JavaParamRef<jstring>& text_str,
|
| + int relative_cursor_pos);
|
| + void FinishComposingText(JNIEnv* env,
|
| + const base::android::JavaParamRef<jobject>&);
|
| + void AttachImeAdapter(
|
| + JNIEnv*,
|
| + const base::android::JavaParamRef<jobject>& java_object);
|
| + void SetEditableSelectionOffsets(JNIEnv*,
|
| + const base::android::JavaParamRef<jobject>&,
|
| + int start,
|
| + int end);
|
| + void SetComposingRegion(JNIEnv*,
|
| + const base::android::JavaParamRef<jobject>&,
|
| + int start,
|
| + int end);
|
| + void DeleteSurroundingText(JNIEnv*,
|
| + const base::android::JavaParamRef<jobject>&,
|
| + int before,
|
| + int after);
|
| + void DeleteSurroundingTextInCodePoints(
|
| + JNIEnv*,
|
| + const base::android::JavaParamRef<jobject>&,
|
| + int before,
|
| + int after);
|
| + void ResetImeAdapter(JNIEnv*, const base::android::JavaParamRef<jobject>&);
|
| + void RequestCursorUpdate(JNIEnv*, const base::android::JavaParamRef<jobject>&,
|
| + bool immediateRequest, bool monitorRequest);
|
| + bool RequestTextInputStateUpdate(JNIEnv*,
|
| + const base::android::JavaParamRef<jobject>&);
|
| +
|
| + // Called from native -> java
|
| + void CancelComposition();
|
| + void FocusedNodeChanged(bool is_editable_node);
|
| + void SetCharacterBounds(const std::vector<gfx::RectF>& rects);
|
| +
|
| + base::android::ScopedJavaLocalRef<jobject> java_ime_adapter_for_testing(
|
| + JNIEnv* env) {
|
| + return java_ime_adapter_.get(env);
|
| + }
|
| +
|
| + private:
|
| + RenderWidgetHostImpl* GetFocusedWidget();
|
| + RenderFrameHost* GetFocusedFrame();
|
| + std::vector<blink::WebCompositionUnderline> GetUnderlinesFromSpans(
|
| + JNIEnv* env,
|
| + const base::android::JavaParamRef<jobject>& obj,
|
| + const base::android::JavaParamRef<jobject>& text,
|
| + const base::string16& text16);
|
| +
|
| + RenderWidgetHostViewAndroid* rwhva_;
|
| + JavaObjectWeakGlobalRef java_ime_adapter_;
|
| +};
|
| +
|
| +bool RegisterImeAdapter(JNIEnv* env);
|
| +
|
| +} // namespace content
|
| +
|
| +#endif // CONTENT_BROWSER_RENDERER_HOST_IME_ADAPTER_ANDROID_H_
|
|
|