Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(613)

Side by Side Diff: android_webview/native/popup_touch_handle_drawable.cc

Issue 2863233002: [WebView] Move files from native to browser (Closed)
Patch Set: Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2016 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 "android_webview/native/popup_touch_handle_drawable.h"
6
7 #include "jni/PopupTouchHandleDrawable_jni.h"
8
9 using base::android::JavaParamRef;
10 using base::android::ScopedJavaLocalRef;
11
12 namespace android_webview {
13
14 PopupTouchHandleDrawable::PopupTouchHandleDrawable(
15 JNIEnv* env,
16 jobject obj,
17 float horizontal_padding_ratio)
18 : java_ref_(env, obj)
19 , drawable_horizontal_padding_ratio_(horizontal_padding_ratio) {
20 DCHECK(obj);
21 }
22
23 PopupTouchHandleDrawable::~PopupTouchHandleDrawable() {
24 JNIEnv* env = base::android::AttachCurrentThread();
25 ScopedJavaLocalRef<jobject> obj = java_ref_.get(env);
26 if (!obj.is_null())
27 Java_PopupTouchHandleDrawable_destroy(env, obj);
28 }
29
30 bool PopupTouchHandleDrawable::RegisterPopupTouchHandleDrawable(JNIEnv* env) {
31 return RegisterNativesImpl(env);
32 }
33
34 void PopupTouchHandleDrawable::SetEnabled(bool enabled) {
35 JNIEnv* env = base::android::AttachCurrentThread();
36 ScopedJavaLocalRef<jobject> obj = java_ref_.get(env);
37 if (obj.is_null())
38 return;
39 if (enabled)
40 Java_PopupTouchHandleDrawable_show(env, obj);
41 else
42 Java_PopupTouchHandleDrawable_hide(env, obj);
43 }
44
45 void PopupTouchHandleDrawable::SetOrientation(
46 ui::TouchHandleOrientation orientation,
47 bool mirror_vertical,
48 bool mirror_horizontal) {
49 JNIEnv* env = base::android::AttachCurrentThread();
50 ScopedJavaLocalRef<jobject> obj = java_ref_.get(env);
51 if (!obj.is_null()) {
52 Java_PopupTouchHandleDrawable_setOrientation(
53 env, obj, static_cast<int>(orientation), mirror_vertical,
54 mirror_horizontal);
55 }
56 }
57
58 void PopupTouchHandleDrawable::SetOrigin(const gfx::PointF& origin) {
59 JNIEnv* env = base::android::AttachCurrentThread();
60 ScopedJavaLocalRef<jobject> obj = java_ref_.get(env);
61 if (!obj.is_null()) {
62 Java_PopupTouchHandleDrawable_setOrigin(env, obj, origin.x(), origin.y());
63 }
64 }
65
66 void PopupTouchHandleDrawable::SetAlpha(float alpha) {
67 JNIEnv* env = base::android::AttachCurrentThread();
68 ScopedJavaLocalRef<jobject> obj = java_ref_.get(env);
69 bool visible = alpha > 0;
70 if (!obj.is_null())
71 Java_PopupTouchHandleDrawable_setVisible(env, obj, visible);
72 }
73
74 gfx::RectF PopupTouchHandleDrawable::GetVisibleBounds() const {
75 JNIEnv* env = base::android::AttachCurrentThread();
76 ScopedJavaLocalRef<jobject> obj = java_ref_.get(env);
77 if (obj.is_null())
78 return gfx::RectF();
79 return gfx::RectF(
80 Java_PopupTouchHandleDrawable_getOriginXDip(env, obj),
81 Java_PopupTouchHandleDrawable_getOriginYDip(env, obj),
82 Java_PopupTouchHandleDrawable_getVisibleWidthDip(env, obj),
83 Java_PopupTouchHandleDrawable_getVisibleHeightDip(env, obj));
84 }
85
86 float PopupTouchHandleDrawable::GetDrawableHorizontalPaddingRatio() const {
87 return drawable_horizontal_padding_ratio_;
88 }
89
90 static jlong Init(JNIEnv* env,
91 const JavaParamRef<jobject>& obj,
92 const jfloat horizontal_padding_ratio) {
93 return reinterpret_cast<intptr_t>(
94 new PopupTouchHandleDrawable(env, obj, horizontal_padding_ratio));
95 }
96
97 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698