Chromium Code Reviews| Index: ui/android/java/src/org/chromium/ui/ViewAndroid.java |
| diff --git a/ui/android/java/src/org/chromium/ui/ViewAndroid.java b/ui/android/java/src/org/chromium/ui/ViewAndroid.java |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..268a15540ff9537b5cd365e51e0316a4db470e48 |
| --- /dev/null |
| +++ b/ui/android/java/src/org/chromium/ui/ViewAndroid.java |
| @@ -0,0 +1,60 @@ |
| +// Copyright (c) 2013 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. |
| + |
| +package org.chromium.ui; |
| + |
| +import org.chromium.base.JNINamespace; |
| +import org.chromium.ui.ViewAndroidDelegate; |
| +import org.chromium.ui.gfx.WindowAndroid; |
|
joth
2013/04/18 01:41:17
why Window in in ui.gfx but ViewAndroid just in .u
aurimas (slooooooooow)
2013/04/18 02:49:57
Em. No good reason :/
|
| + |
| +/** |
| + * From the Chromium architecture point of view, ViewAndroid and its native counterpart |
| + * serve purpose of representing Android view where Chrome expects to have a cross platform |
| + * handle to the system view type. As Views are Java object on Android, this ViewAndroid |
| + * and its native counterpart provide the expected abstractions on the C++ side and allow |
| + * it to be flexibly glued to an actual Android Java View at runtime. |
| + * |
| + * It should only be used where access to Android Views is needed from the C++ code. |
| + */ |
| +@JNINamespace("ui") |
| +public class ViewAndroid { |
| + // Native pointer to the c++ ViewAndroid object. |
| + private int mNativeViewAndroid = 0; |
| + private final WindowAndroid mNativeWindow; |
| + private final ViewAndroidDelegate mViewAndroidDelegate; |
| + |
| + /** |
| + * Constructs a View object. |
| + */ |
| + public ViewAndroid(WindowAndroid nativeWindow, ViewAndroidDelegate viewAndroidDelegate) { |
| + mNativeWindow = nativeWindow; |
| + mViewAndroidDelegate = viewAndroidDelegate; |
| + mNativeViewAndroid = nativeInit(mNativeWindow.getNativePointer()); |
| + } |
| + |
| + public ViewAndroidDelegate getViewAndroidDelegate() { |
| + return mViewAndroidDelegate; |
| + } |
| + |
| + /** |
| + * Destroys the c++ ViewAndroid object if one has been created. |
| + */ |
| + public void destroy() { |
| + if (mNativeViewAndroid != 0) { |
| + nativeDestroy(mNativeViewAndroid); |
| + mNativeViewAndroid = 0; |
| + } |
| + } |
| + |
| + /** |
| + * Returns a pointer to the c++ AndroidWindow object. |
| + * @return A pointer to the c++ AndroidWindow. |
| + */ |
| + public int getNativePointer() { |
| + return mNativeViewAndroid; |
| + } |
| + |
| + private native int nativeInit(int windowPtr); |
| + private native void nativeDestroy(int nativeViewAndroid); |
| +} |