Simplify native interface of widget implementations

Makes it easier to overwrite behavior in subclasses. Have a fallback
implementation for ViewGroup.
Save some _GET_LONG_FIELD / _SET_LONG_FIELD calls by directly passing
the native pointers to and from native methods.
This commit is contained in:
Julian Winkler
2023-08-17 12:59:37 +02:00
parent 82744e9e5e
commit 4d90002ec6
33 changed files with 403 additions and 553 deletions

View File

@@ -149,21 +149,63 @@ extern "C" {
#define android_opengl_GLSurfaceView_PFLAG2_LAYOUT_DIRECTION_RESOLVED 32L
#undef android_opengl_GLSurfaceView_PFLAG2_LAYOUT_DIRECTION_RESOLVED_MASK
#define android_opengl_GLSurfaceView_PFLAG2_LAYOUT_DIRECTION_RESOLVED_MASK 48L
#undef android_opengl_GLSurfaceView_STATUS_BAR_HIDDEN
#define android_opengl_GLSurfaceView_STATUS_BAR_HIDDEN 1L
#undef android_opengl_GLSurfaceView_STATUS_BAR_VISIBLE
#define android_opengl_GLSurfaceView_STATUS_BAR_VISIBLE 0L
#undef android_opengl_GLSurfaceView_SYSTEM_UI_FLAG_FULLSCREEN
#define android_opengl_GLSurfaceView_SYSTEM_UI_FLAG_FULLSCREEN 4L
#undef android_opengl_GLSurfaceView_SYSTEM_UI_FLAG_HIDE_NAVIGATION
#define android_opengl_GLSurfaceView_SYSTEM_UI_FLAG_HIDE_NAVIGATION 2L
#undef android_opengl_GLSurfaceView_SYSTEM_UI_FLAG_IMMERSIVE
#define android_opengl_GLSurfaceView_SYSTEM_UI_FLAG_IMMERSIVE 2048L
#undef android_opengl_GLSurfaceView_SYSTEM_UI_FLAG_IMMERSIVE_STICKY
#define android_opengl_GLSurfaceView_SYSTEM_UI_FLAG_IMMERSIVE_STICKY 4096L
#undef android_opengl_GLSurfaceView_SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
#define android_opengl_GLSurfaceView_SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN 1024L
#undef android_opengl_GLSurfaceView_SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
#define android_opengl_GLSurfaceView_SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION 512L
#undef android_opengl_GLSurfaceView_SYSTEM_UI_FLAG_LAYOUT_STABLE
#define android_opengl_GLSurfaceView_SYSTEM_UI_FLAG_LAYOUT_STABLE 256L
#undef android_opengl_GLSurfaceView_SYSTEM_UI_FLAG_LOW_PROFILE
#define android_opengl_GLSurfaceView_SYSTEM_UI_FLAG_LOW_PROFILE 1L
#undef android_opengl_GLSurfaceView_SYSTEM_UI_FLAG_VISIBLE
#define android_opengl_GLSurfaceView_SYSTEM_UI_FLAG_VISIBLE 0L
#undef android_opengl_GLSurfaceView_SYSTEM_UI_LAYOUT_FLAGS
#define android_opengl_GLSurfaceView_SYSTEM_UI_LAYOUT_FLAGS 1536L
#undef android_opengl_GLSurfaceView_TEXT_ALIGNMENT_CENTER
#define android_opengl_GLSurfaceView_TEXT_ALIGNMENT_CENTER 4L
#undef android_opengl_GLSurfaceView_TEXT_ALIGNMENT_GRAVITY
#define android_opengl_GLSurfaceView_TEXT_ALIGNMENT_GRAVITY 1L
#undef android_opengl_GLSurfaceView_TEXT_ALIGNMENT_INHERIT
#define android_opengl_GLSurfaceView_TEXT_ALIGNMENT_INHERIT 0L
#undef android_opengl_GLSurfaceView_TEXT_ALIGNMENT_TEXT_END
#define android_opengl_GLSurfaceView_TEXT_ALIGNMENT_TEXT_END 3L
#undef android_opengl_GLSurfaceView_TEXT_ALIGNMENT_TEXT_START
#define android_opengl_GLSurfaceView_TEXT_ALIGNMENT_TEXT_START 2L
#undef android_opengl_GLSurfaceView_TEXT_ALIGNMENT_VIEW_END
#define android_opengl_GLSurfaceView_TEXT_ALIGNMENT_VIEW_END 6L
#undef android_opengl_GLSurfaceView_TEXT_ALIGNMENT_VIEW_START
#define android_opengl_GLSurfaceView_TEXT_ALIGNMENT_VIEW_START 5L
#undef android_opengl_GLSurfaceView_TEXT_DIRECTION_ANY_RTL
#define android_opengl_GLSurfaceView_TEXT_DIRECTION_ANY_RTL 2L
#undef android_opengl_GLSurfaceView_TEXT_DIRECTION_FIRST_STRONG
#define android_opengl_GLSurfaceView_TEXT_DIRECTION_FIRST_STRONG 1L
#undef android_opengl_GLSurfaceView_TEXT_DIRECTION_INHERIT
#define android_opengl_GLSurfaceView_TEXT_DIRECTION_INHERIT 0L
#undef android_opengl_GLSurfaceView_TEXT_DIRECTION_LOCALE
#define android_opengl_GLSurfaceView_TEXT_DIRECTION_LOCALE 5L
#undef android_opengl_GLSurfaceView_TEXT_DIRECTION_LTR
#define android_opengl_GLSurfaceView_TEXT_DIRECTION_LTR 3L
#undef android_opengl_GLSurfaceView_TEXT_DIRECTION_RTL
#define android_opengl_GLSurfaceView_TEXT_DIRECTION_RTL 4L
/*
* Class: android_opengl_GLSurfaceView
* Method: native_constructor
* Signature: (Landroid/util/AttributeSet;)V
* Signature: (Landroid/content/Context;Landroid/util/AttributeSet;)J
*/
JNIEXPORT void JNICALL Java_android_opengl_GLSurfaceView_native_1constructor__Landroid_util_AttributeSet_2
(JNIEnv *, jobject, jobject);
/*
* Class: android_opengl_GLSurfaceView
* Method: native_constructor
* Signature: (Landroid/content/Context;)V
*/
JNIEXPORT void JNICALL Java_android_opengl_GLSurfaceView_native_1constructor__Landroid_content_Context_2
(JNIEnv *, jobject, jobject);
JNIEXPORT jlong JNICALL Java_android_opengl_GLSurfaceView_native_1constructor
(JNIEnv *, jobject, jobject, jobject);
/*
* Class: android_opengl_GLSurfaceView

View File

@@ -149,13 +149,63 @@ extern "C" {
#define android_view_SurfaceView_PFLAG2_LAYOUT_DIRECTION_RESOLVED 32L
#undef android_view_SurfaceView_PFLAG2_LAYOUT_DIRECTION_RESOLVED_MASK
#define android_view_SurfaceView_PFLAG2_LAYOUT_DIRECTION_RESOLVED_MASK 48L
#undef android_view_SurfaceView_STATUS_BAR_HIDDEN
#define android_view_SurfaceView_STATUS_BAR_HIDDEN 1L
#undef android_view_SurfaceView_STATUS_BAR_VISIBLE
#define android_view_SurfaceView_STATUS_BAR_VISIBLE 0L
#undef android_view_SurfaceView_SYSTEM_UI_FLAG_FULLSCREEN
#define android_view_SurfaceView_SYSTEM_UI_FLAG_FULLSCREEN 4L
#undef android_view_SurfaceView_SYSTEM_UI_FLAG_HIDE_NAVIGATION
#define android_view_SurfaceView_SYSTEM_UI_FLAG_HIDE_NAVIGATION 2L
#undef android_view_SurfaceView_SYSTEM_UI_FLAG_IMMERSIVE
#define android_view_SurfaceView_SYSTEM_UI_FLAG_IMMERSIVE 2048L
#undef android_view_SurfaceView_SYSTEM_UI_FLAG_IMMERSIVE_STICKY
#define android_view_SurfaceView_SYSTEM_UI_FLAG_IMMERSIVE_STICKY 4096L
#undef android_view_SurfaceView_SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
#define android_view_SurfaceView_SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN 1024L
#undef android_view_SurfaceView_SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
#define android_view_SurfaceView_SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION 512L
#undef android_view_SurfaceView_SYSTEM_UI_FLAG_LAYOUT_STABLE
#define android_view_SurfaceView_SYSTEM_UI_FLAG_LAYOUT_STABLE 256L
#undef android_view_SurfaceView_SYSTEM_UI_FLAG_LOW_PROFILE
#define android_view_SurfaceView_SYSTEM_UI_FLAG_LOW_PROFILE 1L
#undef android_view_SurfaceView_SYSTEM_UI_FLAG_VISIBLE
#define android_view_SurfaceView_SYSTEM_UI_FLAG_VISIBLE 0L
#undef android_view_SurfaceView_SYSTEM_UI_LAYOUT_FLAGS
#define android_view_SurfaceView_SYSTEM_UI_LAYOUT_FLAGS 1536L
#undef android_view_SurfaceView_TEXT_ALIGNMENT_CENTER
#define android_view_SurfaceView_TEXT_ALIGNMENT_CENTER 4L
#undef android_view_SurfaceView_TEXT_ALIGNMENT_GRAVITY
#define android_view_SurfaceView_TEXT_ALIGNMENT_GRAVITY 1L
#undef android_view_SurfaceView_TEXT_ALIGNMENT_INHERIT
#define android_view_SurfaceView_TEXT_ALIGNMENT_INHERIT 0L
#undef android_view_SurfaceView_TEXT_ALIGNMENT_TEXT_END
#define android_view_SurfaceView_TEXT_ALIGNMENT_TEXT_END 3L
#undef android_view_SurfaceView_TEXT_ALIGNMENT_TEXT_START
#define android_view_SurfaceView_TEXT_ALIGNMENT_TEXT_START 2L
#undef android_view_SurfaceView_TEXT_ALIGNMENT_VIEW_END
#define android_view_SurfaceView_TEXT_ALIGNMENT_VIEW_END 6L
#undef android_view_SurfaceView_TEXT_ALIGNMENT_VIEW_START
#define android_view_SurfaceView_TEXT_ALIGNMENT_VIEW_START 5L
#undef android_view_SurfaceView_TEXT_DIRECTION_ANY_RTL
#define android_view_SurfaceView_TEXT_DIRECTION_ANY_RTL 2L
#undef android_view_SurfaceView_TEXT_DIRECTION_FIRST_STRONG
#define android_view_SurfaceView_TEXT_DIRECTION_FIRST_STRONG 1L
#undef android_view_SurfaceView_TEXT_DIRECTION_INHERIT
#define android_view_SurfaceView_TEXT_DIRECTION_INHERIT 0L
#undef android_view_SurfaceView_TEXT_DIRECTION_LOCALE
#define android_view_SurfaceView_TEXT_DIRECTION_LOCALE 5L
#undef android_view_SurfaceView_TEXT_DIRECTION_LTR
#define android_view_SurfaceView_TEXT_DIRECTION_LTR 3L
#undef android_view_SurfaceView_TEXT_DIRECTION_RTL
#define android_view_SurfaceView_TEXT_DIRECTION_RTL 4L
/*
* Class: android_view_SurfaceView
* Method: native_constructor
* Signature: (Landroid/content/Context;)V
* Signature: (Landroid/content/Context;Landroid/util/AttributeSet;)J
*/
JNIEXPORT void JNICALL Java_android_view_SurfaceView_native_1constructor
(JNIEnv *, jobject, jobject);
JNIEXPORT jlong JNICALL Java_android_view_SurfaceView_native_1constructor
(JNIEnv *, jobject, jobject, jobject);
#ifdef __cplusplus
}

View File

@@ -242,10 +242,10 @@ JNIEXPORT jint JNICALL Java_android_view_View_getHeight
/*
* Class: android_view_View
* Method: native_constructor
* Signature: (Landroid/content/Context;)V
* Signature: (Landroid/content/Context;Landroid/util/AttributeSet;)J
*/
JNIEXPORT void JNICALL Java_android_view_View_native_1constructor
(JNIEnv *, jobject, jobject);
JNIEXPORT jlong JNICALL Java_android_view_View_native_1constructor
(JNIEnv *, jobject, jobject, jobject);
/*
* Class: android_view_View

View File

@@ -201,27 +201,27 @@ extern "C" {
#define android_view_ViewGroup_TEXT_DIRECTION_RTL 4L
/*
* Class: android_view_ViewGroup
* Method: addView
* Signature: (Landroid/view/View;ILandroid/view/ViewGroup/LayoutParams;)V
* Method: native_constructor
* Signature: (Landroid/content/Context;Landroid/util/AttributeSet;)J
*/
JNIEXPORT void JNICALL Java_android_view_ViewGroup_addView
(JNIEnv *, jobject, jobject, jint, jobject);
JNIEXPORT jlong JNICALL Java_android_view_ViewGroup_native_1constructor
(JNIEnv *, jobject, jobject, jobject);
/*
* Class: android_view_ViewGroup
* Method: removeView
* Signature: (Landroid/view/View;)V
* Method: native_addView
* Signature: (JJILandroid/view/ViewGroup/LayoutParams;)V
*/
JNIEXPORT void JNICALL Java_android_view_ViewGroup_removeView
(JNIEnv *, jobject, jobject);
JNIEXPORT void JNICALL Java_android_view_ViewGroup_native_1addView
(JNIEnv *, jobject, jlong, jlong, jint, jobject);
/*
* Class: android_view_ViewGroup
* Method: removeAllViews
* Signature: ()V
* Method: native_removeView
* Signature: (JJ)V
*/
JNIEXPORT void JNICALL Java_android_view_ViewGroup_removeAllViews
(JNIEnv *, jobject);
JNIEXPORT void JNICALL Java_android_view_ViewGroup_native_1removeView
(JNIEnv *, jobject, jlong, jlong);
#ifdef __cplusplus
}

View File

@@ -202,26 +202,26 @@ extern "C" {
/*
* Class: android_widget_FrameLayout
* Method: native_constructor
* Signature: (Landroid/util/AttributeSet;)V
* Signature: (Landroid/content/Context;Landroid/util/AttributeSet;)J
*/
JNIEXPORT void JNICALL Java_android_widget_FrameLayout_native_1constructor__Landroid_util_AttributeSet_2
(JNIEnv *, jobject, jobject);
JNIEXPORT jlong JNICALL Java_android_widget_FrameLayout_native_1constructor
(JNIEnv *, jobject, jobject, jobject);
/*
* Class: android_widget_FrameLayout
* Method: native_constructor
* Signature: (Landroid/content/Context;)V
* Method: native_addView
* Signature: (JJILandroid/view/ViewGroup/LayoutParams;)V
*/
JNIEXPORT void JNICALL Java_android_widget_FrameLayout_native_1constructor__Landroid_content_Context_2
(JNIEnv *, jobject, jobject);
JNIEXPORT void JNICALL Java_android_widget_FrameLayout_native_1addView
(JNIEnv *, jobject, jlong, jlong, jint, jobject);
/*
* Class: android_widget_FrameLayout
* Method: addView
* Signature: (Landroid/view/View;ILandroid/view/ViewGroup/LayoutParams;)V
* Method: native_removeView
* Signature: (JJ)V
*/
JNIEXPORT void JNICALL Java_android_widget_FrameLayout_addView
(JNIEnv *, jobject, jobject, jint, jobject);
JNIEXPORT void JNICALL Java_android_widget_FrameLayout_native_1removeView
(JNIEnv *, jobject, jlong, jlong);
#ifdef __cplusplus
}

View File

@@ -202,18 +202,10 @@ extern "C" {
/*
* Class: android_widget_ImageView
* Method: native_constructor
* Signature: (Landroid/util/AttributeSet;)V
* Signature: (Landroid/content/Context;Landroid/util/AttributeSet;)J
*/
JNIEXPORT void JNICALL Java_android_widget_ImageView_native_1constructor__Landroid_util_AttributeSet_2
(JNIEnv *, jobject, jobject);
/*
* Class: android_widget_ImageView
* Method: native_constructor
* Signature: (Landroid/content/Context;)V
*/
JNIEXPORT void JNICALL Java_android_widget_ImageView_native_1constructor__Landroid_content_Context_2
(JNIEnv *, jobject, jobject);
JNIEXPORT jlong JNICALL Java_android_widget_ImageView_native_1constructor
(JNIEnv *, jobject, jobject, jobject);
/*
* Class: android_widget_ImageView

View File

@@ -202,42 +202,26 @@ extern "C" {
/*
* Class: android_widget_LinearLayout
* Method: native_constructor
* Signature: (Landroid/util/AttributeSet;)V
* Signature: (Landroid/content/Context;Landroid/util/AttributeSet;)J
*/
JNIEXPORT void JNICALL Java_android_widget_LinearLayout_native_1constructor__Landroid_util_AttributeSet_2
(JNIEnv *, jobject, jobject);
JNIEXPORT jlong JNICALL Java_android_widget_LinearLayout_native_1constructor
(JNIEnv *, jobject, jobject, jobject);
/*
* Class: android_widget_LinearLayout
* Method: native_constructor
* Signature: (Landroid/content/Context;)V
* Method: native_addView
* Signature: (JJILandroid/view/ViewGroup/LayoutParams;)V
*/
JNIEXPORT void JNICALL Java_android_widget_LinearLayout_native_1constructor__Landroid_content_Context_2
(JNIEnv *, jobject, jobject);
JNIEXPORT void JNICALL Java_android_widget_LinearLayout_native_1addView
(JNIEnv *, jobject, jlong, jlong, jint, jobject);
/*
* Class: android_widget_LinearLayout
* Method: addView
* Signature: (Landroid/view/View;ILandroid/view/ViewGroup/LayoutParams;)V
* Method: native_removeView
* Signature: (JJ)V
*/
JNIEXPORT void JNICALL Java_android_widget_LinearLayout_addView
(JNIEnv *, jobject, jobject, jint, jobject);
/*
* Class: android_widget_LinearLayout
* Method: removeView
* Signature: (Landroid/view/View;)V
*/
JNIEXPORT void JNICALL Java_android_widget_LinearLayout_removeView
(JNIEnv *, jobject, jobject);
/*
* Class: android_widget_LinearLayout
* Method: removeAllViews
* Signature: ()V
*/
JNIEXPORT void JNICALL Java_android_widget_LinearLayout_removeAllViews
(JNIEnv *, jobject);
JNIEXPORT void JNICALL Java_android_widget_LinearLayout_native_1removeView
(JNIEnv *, jobject, jlong, jlong);
/*
* Class: android_widget_LinearLayout

View File

@@ -1,171 +0,0 @@
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class android_widget_ProgressBar */
#ifndef _Included_android_widget_ProgressBar
#define _Included_android_widget_ProgressBar
#ifdef __cplusplus
extern "C" {
#endif
#undef android_widget_ProgressBar_NO_ID
#define android_widget_ProgressBar_NO_ID -1L
#undef android_widget_ProgressBar_NOT_FOCUSABLE
#define android_widget_ProgressBar_NOT_FOCUSABLE 0L
#undef android_widget_ProgressBar_FOCUSABLE
#define android_widget_ProgressBar_FOCUSABLE 1L
#undef android_widget_ProgressBar_FOCUSABLE_MASK
#define android_widget_ProgressBar_FOCUSABLE_MASK 1L
#undef android_widget_ProgressBar_FITS_SYSTEM_WINDOWS
#define android_widget_ProgressBar_FITS_SYSTEM_WINDOWS 2L
#undef android_widget_ProgressBar_VISIBLE
#define android_widget_ProgressBar_VISIBLE 0L
#undef android_widget_ProgressBar_INVISIBLE
#define android_widget_ProgressBar_INVISIBLE 4L
#undef android_widget_ProgressBar_GONE
#define android_widget_ProgressBar_GONE 8L
#undef android_widget_ProgressBar_VISIBILITY_MASK
#define android_widget_ProgressBar_VISIBILITY_MASK 12L
#undef android_widget_ProgressBar_ENABLED
#define android_widget_ProgressBar_ENABLED 0L
#undef android_widget_ProgressBar_DISABLED
#define android_widget_ProgressBar_DISABLED 32L
#undef android_widget_ProgressBar_ENABLED_MASK
#define android_widget_ProgressBar_ENABLED_MASK 32L
#undef android_widget_ProgressBar_WILL_NOT_DRAW
#define android_widget_ProgressBar_WILL_NOT_DRAW 128L
#undef android_widget_ProgressBar_DRAW_MASK
#define android_widget_ProgressBar_DRAW_MASK 128L
#undef android_widget_ProgressBar_SCROLLBARS_NONE
#define android_widget_ProgressBar_SCROLLBARS_NONE 0L
#undef android_widget_ProgressBar_SCROLLBARS_HORIZONTAL
#define android_widget_ProgressBar_SCROLLBARS_HORIZONTAL 256L
#undef android_widget_ProgressBar_SCROLLBARS_VERTICAL
#define android_widget_ProgressBar_SCROLLBARS_VERTICAL 512L
#undef android_widget_ProgressBar_SCROLLBARS_MASK
#define android_widget_ProgressBar_SCROLLBARS_MASK 768L
#undef android_widget_ProgressBar_FILTER_TOUCHES_WHEN_OBSCURED
#define android_widget_ProgressBar_FILTER_TOUCHES_WHEN_OBSCURED 1024L
#undef android_widget_ProgressBar_OPTIONAL_FITS_SYSTEM_WINDOWS
#define android_widget_ProgressBar_OPTIONAL_FITS_SYSTEM_WINDOWS 2048L
#undef android_widget_ProgressBar_FADING_EDGE_NONE
#define android_widget_ProgressBar_FADING_EDGE_NONE 0L
#undef android_widget_ProgressBar_FADING_EDGE_HORIZONTAL
#define android_widget_ProgressBar_FADING_EDGE_HORIZONTAL 4096L
#undef android_widget_ProgressBar_FADING_EDGE_VERTICAL
#define android_widget_ProgressBar_FADING_EDGE_VERTICAL 8192L
#undef android_widget_ProgressBar_FADING_EDGE_MASK
#define android_widget_ProgressBar_FADING_EDGE_MASK 12288L
#undef android_widget_ProgressBar_CLICKABLE
#define android_widget_ProgressBar_CLICKABLE 16384L
#undef android_widget_ProgressBar_DRAWING_CACHE_ENABLED
#define android_widget_ProgressBar_DRAWING_CACHE_ENABLED 32768L
#undef android_widget_ProgressBar_SAVE_DISABLED
#define android_widget_ProgressBar_SAVE_DISABLED 65536L
#undef android_widget_ProgressBar_SAVE_DISABLED_MASK
#define android_widget_ProgressBar_SAVE_DISABLED_MASK 65536L
#undef android_widget_ProgressBar_WILL_NOT_CACHE_DRAWING
#define android_widget_ProgressBar_WILL_NOT_CACHE_DRAWING 131072L
#undef android_widget_ProgressBar_FOCUSABLE_IN_TOUCH_MODE
#define android_widget_ProgressBar_FOCUSABLE_IN_TOUCH_MODE 262144L
#undef android_widget_ProgressBar_DRAWING_CACHE_QUALITY_LOW
#define android_widget_ProgressBar_DRAWING_CACHE_QUALITY_LOW 524288L
#undef android_widget_ProgressBar_DRAWING_CACHE_QUALITY_HIGH
#define android_widget_ProgressBar_DRAWING_CACHE_QUALITY_HIGH 1048576L
#undef android_widget_ProgressBar_DRAWING_CACHE_QUALITY_AUTO
#define android_widget_ProgressBar_DRAWING_CACHE_QUALITY_AUTO 0L
#undef android_widget_ProgressBar_DRAWING_CACHE_QUALITY_MASK
#define android_widget_ProgressBar_DRAWING_CACHE_QUALITY_MASK 1572864L
#undef android_widget_ProgressBar_LONG_CLICKABLE
#define android_widget_ProgressBar_LONG_CLICKABLE 2097152L
#undef android_widget_ProgressBar_DUPLICATE_PARENT_STATE
#define android_widget_ProgressBar_DUPLICATE_PARENT_STATE 4194304L
#undef android_widget_ProgressBar_SCROLLBARS_INSIDE_OVERLAY
#define android_widget_ProgressBar_SCROLLBARS_INSIDE_OVERLAY 0L
#undef android_widget_ProgressBar_SCROLLBARS_INSIDE_INSET
#define android_widget_ProgressBar_SCROLLBARS_INSIDE_INSET 16777216L
#undef android_widget_ProgressBar_SCROLLBARS_OUTSIDE_OVERLAY
#define android_widget_ProgressBar_SCROLLBARS_OUTSIDE_OVERLAY 33554432L
#undef android_widget_ProgressBar_SCROLLBARS_OUTSIDE_INSET
#define android_widget_ProgressBar_SCROLLBARS_OUTSIDE_INSET 50331648L
#undef android_widget_ProgressBar_SCROLLBARS_INSET_MASK
#define android_widget_ProgressBar_SCROLLBARS_INSET_MASK 16777216L
#undef android_widget_ProgressBar_SCROLLBARS_OUTSIDE_MASK
#define android_widget_ProgressBar_SCROLLBARS_OUTSIDE_MASK 33554432L
#undef android_widget_ProgressBar_SCROLLBARS_STYLE_MASK
#define android_widget_ProgressBar_SCROLLBARS_STYLE_MASK 50331648L
#undef android_widget_ProgressBar_KEEP_SCREEN_ON
#define android_widget_ProgressBar_KEEP_SCREEN_ON 67108864L
#undef android_widget_ProgressBar_SOUND_EFFECTS_ENABLED
#define android_widget_ProgressBar_SOUND_EFFECTS_ENABLED 134217728L
#undef android_widget_ProgressBar_HAPTIC_FEEDBACK_ENABLED
#define android_widget_ProgressBar_HAPTIC_FEEDBACK_ENABLED 268435456L
#undef android_widget_ProgressBar_PARENT_SAVE_DISABLED
#define android_widget_ProgressBar_PARENT_SAVE_DISABLED 536870912L
#undef android_widget_ProgressBar_PARENT_SAVE_DISABLED_MASK
#define android_widget_ProgressBar_PARENT_SAVE_DISABLED_MASK 536870912L
#undef android_widget_ProgressBar_FOCUSABLES_ALL
#define android_widget_ProgressBar_FOCUSABLES_ALL 0L
#undef android_widget_ProgressBar_FOCUSABLES_TOUCH_MODE
#define android_widget_ProgressBar_FOCUSABLES_TOUCH_MODE 1L
#undef android_widget_ProgressBar_FOCUS_BACKWARD
#define android_widget_ProgressBar_FOCUS_BACKWARD 1L
#undef android_widget_ProgressBar_FOCUS_FORWARD
#define android_widget_ProgressBar_FOCUS_FORWARD 2L
#undef android_widget_ProgressBar_FOCUS_LEFT
#define android_widget_ProgressBar_FOCUS_LEFT 17L
#undef android_widget_ProgressBar_FOCUS_UP
#define android_widget_ProgressBar_FOCUS_UP 33L
#undef android_widget_ProgressBar_FOCUS_RIGHT
#define android_widget_ProgressBar_FOCUS_RIGHT 66L
#undef android_widget_ProgressBar_FOCUS_DOWN
#define android_widget_ProgressBar_FOCUS_DOWN 130L
#undef android_widget_ProgressBar_MEASURED_SIZE_MASK
#define android_widget_ProgressBar_MEASURED_SIZE_MASK 16777215L
#undef android_widget_ProgressBar_MEASURED_STATE_MASK
#define android_widget_ProgressBar_MEASURED_STATE_MASK -16777216L
#undef android_widget_ProgressBar_MEASURED_HEIGHT_STATE_SHIFT
#define android_widget_ProgressBar_MEASURED_HEIGHT_STATE_SHIFT 16L
#undef android_widget_ProgressBar_MEASURED_STATE_TOO_SMALL
#define android_widget_ProgressBar_MEASURED_STATE_TOO_SMALL 16777216L
#undef android_widget_ProgressBar_PFLAG2_DRAG_CAN_ACCEPT
#define android_widget_ProgressBar_PFLAG2_DRAG_CAN_ACCEPT 1L
#undef android_widget_ProgressBar_PFLAG2_DRAG_HOVERED
#define android_widget_ProgressBar_PFLAG2_DRAG_HOVERED 2L
#undef android_widget_ProgressBar_LAYOUT_DIRECTION_LTR
#define android_widget_ProgressBar_LAYOUT_DIRECTION_LTR 0L
#undef android_widget_ProgressBar_LAYOUT_DIRECTION_RTL
#define android_widget_ProgressBar_LAYOUT_DIRECTION_RTL 1L
#undef android_widget_ProgressBar_LAYOUT_DIRECTION_INHERIT
#define android_widget_ProgressBar_LAYOUT_DIRECTION_INHERIT 2L
#undef android_widget_ProgressBar_LAYOUT_DIRECTION_LOCALE
#define android_widget_ProgressBar_LAYOUT_DIRECTION_LOCALE 3L
#undef android_widget_ProgressBar_PFLAG2_LAYOUT_DIRECTION_MASK_SHIFT
#define android_widget_ProgressBar_PFLAG2_LAYOUT_DIRECTION_MASK_SHIFT 2L
#undef android_widget_ProgressBar_PFLAG2_LAYOUT_DIRECTION_MASK
#define android_widget_ProgressBar_PFLAG2_LAYOUT_DIRECTION_MASK 12L
#undef android_widget_ProgressBar_PFLAG2_LAYOUT_DIRECTION_RESOLVED_RTL
#define android_widget_ProgressBar_PFLAG2_LAYOUT_DIRECTION_RESOLVED_RTL 16L
#undef android_widget_ProgressBar_PFLAG2_LAYOUT_DIRECTION_RESOLVED
#define android_widget_ProgressBar_PFLAG2_LAYOUT_DIRECTION_RESOLVED 32L
#undef android_widget_ProgressBar_PFLAG2_LAYOUT_DIRECTION_RESOLVED_MASK
#define android_widget_ProgressBar_PFLAG2_LAYOUT_DIRECTION_RESOLVED_MASK 48L
/*
* Class: android_widget_ProgressBar
* Method: native_constructor
* Signature: (Landroid/util/AttributeSet;)V
*/
JNIEXPORT void JNICALL Java_android_widget_ProgressBar_native_1constructor__Landroid_util_AttributeSet_2
(JNIEnv *, jobject, jobject);
/*
* Class: android_widget_ProgressBar
* Method: native_constructor
* Signature: (Landroid/content/Context;)V
*/
JNIEXPORT void JNICALL Java_android_widget_ProgressBar_native_1constructor__Landroid_content_Context_2
(JNIEnv *, jobject, jobject);
#ifdef __cplusplus
}
#endif
#endif

View File

@@ -149,29 +149,79 @@ extern "C" {
#define android_widget_RelativeLayout_PFLAG2_LAYOUT_DIRECTION_RESOLVED 32L
#undef android_widget_RelativeLayout_PFLAG2_LAYOUT_DIRECTION_RESOLVED_MASK
#define android_widget_RelativeLayout_PFLAG2_LAYOUT_DIRECTION_RESOLVED_MASK 48L
#undef android_widget_RelativeLayout_STATUS_BAR_HIDDEN
#define android_widget_RelativeLayout_STATUS_BAR_HIDDEN 1L
#undef android_widget_RelativeLayout_STATUS_BAR_VISIBLE
#define android_widget_RelativeLayout_STATUS_BAR_VISIBLE 0L
#undef android_widget_RelativeLayout_SYSTEM_UI_FLAG_FULLSCREEN
#define android_widget_RelativeLayout_SYSTEM_UI_FLAG_FULLSCREEN 4L
#undef android_widget_RelativeLayout_SYSTEM_UI_FLAG_HIDE_NAVIGATION
#define android_widget_RelativeLayout_SYSTEM_UI_FLAG_HIDE_NAVIGATION 2L
#undef android_widget_RelativeLayout_SYSTEM_UI_FLAG_IMMERSIVE
#define android_widget_RelativeLayout_SYSTEM_UI_FLAG_IMMERSIVE 2048L
#undef android_widget_RelativeLayout_SYSTEM_UI_FLAG_IMMERSIVE_STICKY
#define android_widget_RelativeLayout_SYSTEM_UI_FLAG_IMMERSIVE_STICKY 4096L
#undef android_widget_RelativeLayout_SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
#define android_widget_RelativeLayout_SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN 1024L
#undef android_widget_RelativeLayout_SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
#define android_widget_RelativeLayout_SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION 512L
#undef android_widget_RelativeLayout_SYSTEM_UI_FLAG_LAYOUT_STABLE
#define android_widget_RelativeLayout_SYSTEM_UI_FLAG_LAYOUT_STABLE 256L
#undef android_widget_RelativeLayout_SYSTEM_UI_FLAG_LOW_PROFILE
#define android_widget_RelativeLayout_SYSTEM_UI_FLAG_LOW_PROFILE 1L
#undef android_widget_RelativeLayout_SYSTEM_UI_FLAG_VISIBLE
#define android_widget_RelativeLayout_SYSTEM_UI_FLAG_VISIBLE 0L
#undef android_widget_RelativeLayout_SYSTEM_UI_LAYOUT_FLAGS
#define android_widget_RelativeLayout_SYSTEM_UI_LAYOUT_FLAGS 1536L
#undef android_widget_RelativeLayout_TEXT_ALIGNMENT_CENTER
#define android_widget_RelativeLayout_TEXT_ALIGNMENT_CENTER 4L
#undef android_widget_RelativeLayout_TEXT_ALIGNMENT_GRAVITY
#define android_widget_RelativeLayout_TEXT_ALIGNMENT_GRAVITY 1L
#undef android_widget_RelativeLayout_TEXT_ALIGNMENT_INHERIT
#define android_widget_RelativeLayout_TEXT_ALIGNMENT_INHERIT 0L
#undef android_widget_RelativeLayout_TEXT_ALIGNMENT_TEXT_END
#define android_widget_RelativeLayout_TEXT_ALIGNMENT_TEXT_END 3L
#undef android_widget_RelativeLayout_TEXT_ALIGNMENT_TEXT_START
#define android_widget_RelativeLayout_TEXT_ALIGNMENT_TEXT_START 2L
#undef android_widget_RelativeLayout_TEXT_ALIGNMENT_VIEW_END
#define android_widget_RelativeLayout_TEXT_ALIGNMENT_VIEW_END 6L
#undef android_widget_RelativeLayout_TEXT_ALIGNMENT_VIEW_START
#define android_widget_RelativeLayout_TEXT_ALIGNMENT_VIEW_START 5L
#undef android_widget_RelativeLayout_TEXT_DIRECTION_ANY_RTL
#define android_widget_RelativeLayout_TEXT_DIRECTION_ANY_RTL 2L
#undef android_widget_RelativeLayout_TEXT_DIRECTION_FIRST_STRONG
#define android_widget_RelativeLayout_TEXT_DIRECTION_FIRST_STRONG 1L
#undef android_widget_RelativeLayout_TEXT_DIRECTION_INHERIT
#define android_widget_RelativeLayout_TEXT_DIRECTION_INHERIT 0L
#undef android_widget_RelativeLayout_TEXT_DIRECTION_LOCALE
#define android_widget_RelativeLayout_TEXT_DIRECTION_LOCALE 5L
#undef android_widget_RelativeLayout_TEXT_DIRECTION_LTR
#define android_widget_RelativeLayout_TEXT_DIRECTION_LTR 3L
#undef android_widget_RelativeLayout_TEXT_DIRECTION_RTL
#define android_widget_RelativeLayout_TEXT_DIRECTION_RTL 4L
/*
* Class: android_widget_RelativeLayout
* Method: native_constructor
* Signature: (Landroid/util/AttributeSet;)V
* Signature: (Landroid/content/Context;Landroid/util/AttributeSet;)J
*/
JNIEXPORT void JNICALL Java_android_widget_RelativeLayout_native_1constructor__Landroid_util_AttributeSet_2
(JNIEnv *, jobject, jobject);
JNIEXPORT jlong JNICALL Java_android_widget_RelativeLayout_native_1constructor
(JNIEnv *, jobject, jobject, jobject);
/*
* Class: android_widget_RelativeLayout
* Method: native_constructor
* Signature: (Landroid/content/Context;)V
* Method: native_addView
* Signature: (JJILandroid/view/ViewGroup/LayoutParams;)V
*/
JNIEXPORT void JNICALL Java_android_widget_RelativeLayout_native_1constructor__Landroid_content_Context_2
(JNIEnv *, jobject, jobject);
JNIEXPORT void JNICALL Java_android_widget_RelativeLayout_native_1addView
(JNIEnv *, jobject, jlong, jlong, jint, jobject);
/*
* Class: android_widget_RelativeLayout
* Method: addView
* Signature: (Landroid/view/View;ILandroid/view/ViewGroup/LayoutParams;)V
* Method: native_removeView
* Signature: (JJ)V
*/
JNIEXPORT void JNICALL Java_android_widget_RelativeLayout_addView
(JNIEnv *, jobject, jobject, jint, jobject);
JNIEXPORT void JNICALL Java_android_widget_RelativeLayout_native_1removeView
(JNIEnv *, jobject, jlong, jlong);
#ifdef __cplusplus
}

View File

@@ -149,45 +149,79 @@ extern "C" {
#define android_widget_ScrollView_PFLAG2_LAYOUT_DIRECTION_RESOLVED 32L
#undef android_widget_ScrollView_PFLAG2_LAYOUT_DIRECTION_RESOLVED_MASK
#define android_widget_ScrollView_PFLAG2_LAYOUT_DIRECTION_RESOLVED_MASK 48L
#undef android_widget_ScrollView_STATUS_BAR_HIDDEN
#define android_widget_ScrollView_STATUS_BAR_HIDDEN 1L
#undef android_widget_ScrollView_STATUS_BAR_VISIBLE
#define android_widget_ScrollView_STATUS_BAR_VISIBLE 0L
#undef android_widget_ScrollView_SYSTEM_UI_FLAG_FULLSCREEN
#define android_widget_ScrollView_SYSTEM_UI_FLAG_FULLSCREEN 4L
#undef android_widget_ScrollView_SYSTEM_UI_FLAG_HIDE_NAVIGATION
#define android_widget_ScrollView_SYSTEM_UI_FLAG_HIDE_NAVIGATION 2L
#undef android_widget_ScrollView_SYSTEM_UI_FLAG_IMMERSIVE
#define android_widget_ScrollView_SYSTEM_UI_FLAG_IMMERSIVE 2048L
#undef android_widget_ScrollView_SYSTEM_UI_FLAG_IMMERSIVE_STICKY
#define android_widget_ScrollView_SYSTEM_UI_FLAG_IMMERSIVE_STICKY 4096L
#undef android_widget_ScrollView_SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
#define android_widget_ScrollView_SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN 1024L
#undef android_widget_ScrollView_SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
#define android_widget_ScrollView_SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION 512L
#undef android_widget_ScrollView_SYSTEM_UI_FLAG_LAYOUT_STABLE
#define android_widget_ScrollView_SYSTEM_UI_FLAG_LAYOUT_STABLE 256L
#undef android_widget_ScrollView_SYSTEM_UI_FLAG_LOW_PROFILE
#define android_widget_ScrollView_SYSTEM_UI_FLAG_LOW_PROFILE 1L
#undef android_widget_ScrollView_SYSTEM_UI_FLAG_VISIBLE
#define android_widget_ScrollView_SYSTEM_UI_FLAG_VISIBLE 0L
#undef android_widget_ScrollView_SYSTEM_UI_LAYOUT_FLAGS
#define android_widget_ScrollView_SYSTEM_UI_LAYOUT_FLAGS 1536L
#undef android_widget_ScrollView_TEXT_ALIGNMENT_CENTER
#define android_widget_ScrollView_TEXT_ALIGNMENT_CENTER 4L
#undef android_widget_ScrollView_TEXT_ALIGNMENT_GRAVITY
#define android_widget_ScrollView_TEXT_ALIGNMENT_GRAVITY 1L
#undef android_widget_ScrollView_TEXT_ALIGNMENT_INHERIT
#define android_widget_ScrollView_TEXT_ALIGNMENT_INHERIT 0L
#undef android_widget_ScrollView_TEXT_ALIGNMENT_TEXT_END
#define android_widget_ScrollView_TEXT_ALIGNMENT_TEXT_END 3L
#undef android_widget_ScrollView_TEXT_ALIGNMENT_TEXT_START
#define android_widget_ScrollView_TEXT_ALIGNMENT_TEXT_START 2L
#undef android_widget_ScrollView_TEXT_ALIGNMENT_VIEW_END
#define android_widget_ScrollView_TEXT_ALIGNMENT_VIEW_END 6L
#undef android_widget_ScrollView_TEXT_ALIGNMENT_VIEW_START
#define android_widget_ScrollView_TEXT_ALIGNMENT_VIEW_START 5L
#undef android_widget_ScrollView_TEXT_DIRECTION_ANY_RTL
#define android_widget_ScrollView_TEXT_DIRECTION_ANY_RTL 2L
#undef android_widget_ScrollView_TEXT_DIRECTION_FIRST_STRONG
#define android_widget_ScrollView_TEXT_DIRECTION_FIRST_STRONG 1L
#undef android_widget_ScrollView_TEXT_DIRECTION_INHERIT
#define android_widget_ScrollView_TEXT_DIRECTION_INHERIT 0L
#undef android_widget_ScrollView_TEXT_DIRECTION_LOCALE
#define android_widget_ScrollView_TEXT_DIRECTION_LOCALE 5L
#undef android_widget_ScrollView_TEXT_DIRECTION_LTR
#define android_widget_ScrollView_TEXT_DIRECTION_LTR 3L
#undef android_widget_ScrollView_TEXT_DIRECTION_RTL
#define android_widget_ScrollView_TEXT_DIRECTION_RTL 4L
/*
* Class: android_widget_ScrollView
* Method: native_constructor
* Signature: (Landroid/util/AttributeSet;)V
* Signature: (Landroid/content/Context;Landroid/util/AttributeSet;)J
*/
JNIEXPORT void JNICALL Java_android_widget_ScrollView_native_1constructor__Landroid_util_AttributeSet_2
(JNIEnv *, jobject, jobject);
JNIEXPORT jlong JNICALL Java_android_widget_ScrollView_native_1constructor
(JNIEnv *, jobject, jobject, jobject);
/*
* Class: android_widget_ScrollView
* Method: native_constructor
* Signature: (Landroid/content/Context;)V
* Method: native_addView
* Signature: (JJILandroid/view/ViewGroup/LayoutParams;)V
*/
JNIEXPORT void JNICALL Java_android_widget_ScrollView_native_1constructor__Landroid_content_Context_2
(JNIEnv *, jobject, jobject);
JNIEXPORT void JNICALL Java_android_widget_ScrollView_native_1addView
(JNIEnv *, jobject, jlong, jlong, jint, jobject);
/*
* Class: android_widget_ScrollView
* Method: addView
* Signature: (Landroid/view/View;ILandroid/view/ViewGroup/LayoutParams;)V
* Method: native_removeView
* Signature: (JJ)V
*/
JNIEXPORT void JNICALL Java_android_widget_ScrollView_addView
(JNIEnv *, jobject, jobject, jint, jobject);
/*
* Class: android_widget_ScrollView
* Method: removeView
* Signature: (Landroid/view/View;)V
*/
JNIEXPORT void JNICALL Java_android_widget_ScrollView_removeView
(JNIEnv *, jobject, jobject);
/*
* Class: android_widget_ScrollView
* Method: removeAllViews
* Signature: ()V
*/
JNIEXPORT void JNICALL Java_android_widget_ScrollView_removeAllViews
(JNIEnv *, jobject);
JNIEXPORT void JNICALL Java_android_widget_ScrollView_native_1removeView
(JNIEnv *, jobject, jlong, jlong);
#ifdef __cplusplus
}

View File

@@ -202,18 +202,10 @@ extern "C" {
/*
* Class: android_widget_TextView
* Method: native_constructor
* Signature: (Landroid/util/AttributeSet;)V
* Signature: (Landroid/content/Context;Landroid/util/AttributeSet;)J
*/
JNIEXPORT void JNICALL Java_android_widget_TextView_native_1constructor__Landroid_util_AttributeSet_2
(JNIEnv *, jobject, jobject);
/*
* Class: android_widget_TextView
* Method: native_constructor
* Signature: (Landroid/content/Context;)V
*/
JNIEXPORT void JNICALL Java_android_widget_TextView_native_1constructor__Landroid_content_Context_2
(JNIEnv *, jobject, jobject);
JNIEXPORT jlong JNICALL Java_android_widget_TextView_native_1constructor
(JNIEnv *, jobject, jobject, jobject);
/*
* Class: android_widget_TextView

View File

@@ -15,6 +15,9 @@ const char * attribute_set_get_string(JNIEnv *env, jobject attrs, char *attribut
int attribute_set_get_int(JNIEnv *env, jobject attrs, char *attribute, char *schema, int default_value)
{
if (!attrs)
return default_value;
if(!schema)
schema = "http://schemas.android.com/apk/res/android";

View File

@@ -174,7 +174,7 @@ gboolean tick_callback(GtkWidget* widget, GdkFrameClock* frame_clock, gpointer u
return G_SOURCE_CONTINUE;
}
JNIEXPORT void JNICALL Java_android_view_View_native_1constructor(JNIEnv *env, jobject this, jobject Context)
JNIEXPORT jlong JNICALL Java_android_view_View_native_1constructor(JNIEnv *env, jobject this, jobject context, jobject attrs)
{
GtkWidget *wrapper = wrapper_widget_new();
GtkWidget *area = gtk_drawing_area_new();
@@ -183,7 +183,7 @@ JNIEXPORT void JNICALL Java_android_view_View_native_1constructor(JNIEnv *env, j
gtk_widget_add_tick_callback(area, tick_callback, NULL, NULL);
_SET_LONG_FIELD(this, "widget", (long)area);
return _INTPTR(area);
}
JNIEXPORT void JNICALL Java_android_view_View_nativeInvalidate(JNIEnv *env, jclass, jlong widget_ptr) {

View File

@@ -3,21 +3,32 @@
#include "../defines.h"
#include "../util.h"
#include "../widgets/WrapperWidget.h"
#include "../generated_headers/android_view_ViewGroup.h"
#include "../generated_headers/android_view_View.h"
JNIEXPORT void JNICALL Java_android_view_ViewGroup_addView(JNIEnv *env, jobject this, jobject child, jint index, jobject layout_params)
/**
* Should be overwritten by ViewGroup subclasses.
* Fall back to vertical GtkBox if subclass is not implemented yet
*/
JNIEXPORT jlong JNICALL Java_android_view_ViewGroup_native_1constructor(JNIEnv *env, jobject this, jobject context, jobject attrs)
{
GtkWidget *_child = gtk_widget_get_parent(GTK_WIDGET(_PTR(_GET_LONG_FIELD(child, "widget"))));
jint child_width = -1;
jint child_height = -1;
GtkWidget *wrapper = wrapper_widget_new();
GtkWidget *box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 1); // spacing of 1
wrapper_widget_set_child(WRAPPER_WIDGET(wrapper), box);
gtk_widget_set_name(GTK_WIDGET(box), "ViewGroup");
return _INTPTR(box);
}
JNIEXPORT void JNICALL Java_android_view_ViewGroup_native_1addView(JNIEnv *env, jobject this, jlong widget, jlong child, jint index, jobject layout_params)
{
if(layout_params) {
(*env)->CallVoidMethod(env, child, handle_cache.view.setLayoutParams, layout_params);
if((*env)->ExceptionCheck(env))
(*env)->ExceptionDescribe(env);
/*
GtkWidget *_child = gtk_widget_get_parent(GTK_WIDGET(_PTR(child)));
jint child_width = -1;
jint child_height = -1;
jint child_width = _GET_INT_FIELD(layout_params, "width");
jint child_height = _GET_INT_FIELD(layout_params, "height");
@@ -33,34 +44,10 @@ JNIEXPORT void JNICALL Java_android_view_ViewGroup_addView(JNIEnv *env, jobject
Java_android_view_View_setGravity(env, child, child_gravity);
}*/
}
_SET_OBJ_FIELD(child, "parent", "Landroid/view/ViewGroup;", this);
jobject children = _GET_OBJ_FIELD(this, "children", "Ljava/util/ArrayList;");
(*env)->CallVoidMethod(env, children, handle_cache.array_list.add, child);
gtk_box_append(GTK_BOX(_PTR(widget)), gtk_widget_get_parent(GTK_WIDGET(_PTR(child)))); // FIXME - ignores index argument
}
JNIEXPORT void JNICALL Java_android_view_ViewGroup_removeView(JNIEnv *env, jobject this, jobject child)
JNIEXPORT void JNICALL Java_android_view_ViewGroup_native_1removeView(JNIEnv *env, jobject this, jlong widget, jlong child)
{
_SET_OBJ_FIELD(child, "parent", "Landroid/view/ViewGroup;", NULL);
jobject children = _GET_OBJ_FIELD(this, "children", "Ljava/util/ArrayList;");
(*env)->CallVoidMethod(env, children, handle_cache.array_list.remove, child);
}
JNIEXPORT void JNICALL Java_android_view_ViewGroup_removeAllViews(JNIEnv *env, jobject this)
{
jobject children = _GET_OBJ_FIELD(this, "children", "Ljava/util/ArrayList;");
jint size = (*env)->CallIntMethod(env, children, handle_cache.array_list.size);
for(int i = 0; i < size; i++) {
jobject child = (*env)->CallObjectMethod(env, children, handle_cache.array_list.get, i);
_SET_OBJ_FIELD(child, "parent", "Landroid/view/ViewGroup;", NULL);
}
(*env)->CallVoidMethod(env, children, handle_cache.array_list.clear);
gtk_box_remove(GTK_BOX(_PTR(widget)), gtk_widget_get_parent(GTK_WIDGET(_PTR(child))));
}

View File

@@ -54,13 +54,13 @@ extern int FIXME__HEIGHT;
#define ___GL_TRACE___(message) glDebugMessageInsert(GL_DEBUG_SOURCE_THIRD_PARTY, GL_DEBUG_TYPE_MARKER, 0xdeadbeef, GL_DEBUG_SEVERITY_NOTIFICATION, strlen(message), message)
JNIEXPORT void JNICALL Java_android_opengl_GLSurfaceView_native_1constructor__Landroid_content_Context_2(JNIEnv *env, jobject this, jobject context)
JNIEXPORT jlong JNICALL Java_android_opengl_GLSurfaceView_native_1constructor(JNIEnv *env, jobject this, jobject context, jobject attrs)
{
GtkWidget *wrapper = wrapper_widget_new();
gtk_widget_set_vexpand(wrapper, TRUE);
GtkWidget *gl_area = gtk_gl_area_new();
wrapper_widget_set_child(WRAPPER_WIDGET(wrapper), gl_area);
_SET_LONG_FIELD(this, "widget", _INTPTR(gl_area));
return _INTPTR(gl_area);
}
//two triangles put together to make a square

View File

@@ -83,7 +83,7 @@ static void on_resize(GtkWidget* self, gint width, gint height, struct jni_callb
width, height);
}
JNIEXPORT void JNICALL Java_android_view_SurfaceView_native_1constructor(JNIEnv *env, jobject this, jobject context)
JNIEXPORT jlong JNICALL Java_android_view_SurfaceView_native_1constructor(JNIEnv *env, jobject this, jobject context, jobject attrs)
{
GtkWidget *wrapper = wrapper_widget_new();
GtkWidget *dummy = surface_view_widget_new();
@@ -103,5 +103,5 @@ JNIEXPORT void JNICALL Java_android_view_SurfaceView_native_1constructor(JNIEnv
g_signal_connect(dummy, "resize", G_CALLBACK(on_resize), callback_data);
_SET_LONG_FIELD(this, "widget", _INTPTR(dummy));
return _INTPTR(dummy);
}

View File

@@ -75,29 +75,19 @@ void frame_layout_widget_insert_child_at_index(FrameLayoutWidget *parent, GtkWid
// ---
JNIEXPORT void JNICALL Java_android_widget_FrameLayout_native_1constructor__Landroid_util_AttributeSet_2(JNIEnv *env, jobject this, jobject attrs)
JNIEXPORT jlong JNICALL Java_android_widget_FrameLayout_native_1constructor(JNIEnv *env, jobject this, jobject context, jobject attrs)
{
GtkWidget *wrapper = wrapper_widget_new();
GtkWidget *frame_layout = frame_layout_widget_new();
wrapper_widget_set_child(WRAPPER_WIDGET(wrapper), frame_layout);
gtk_widget_set_name(GTK_WIDGET(frame_layout), "FrameLayout");
_SET_LONG_FIELD(this, "widget", _INTPTR(frame_layout));
return _INTPTR(frame_layout);
}
JNIEXPORT void JNICALL Java_android_widget_FrameLayout_native_1constructor__Landroid_content_Context_2(JNIEnv *env, jobject this, jobject context) {
GtkWidget *wrapper = wrapper_widget_new();
GtkWidget *frame_layout = frame_layout_widget_new();
wrapper_widget_set_child(WRAPPER_WIDGET(wrapper), frame_layout);
gtk_widget_set_name(GTK_WIDGET(frame_layout), "FrameLayout");
_SET_LONG_FIELD(this, "widget", _INTPTR(frame_layout));
}
JNIEXPORT void JNICALL Java_android_widget_FrameLayout_addView(JNIEnv *env, jobject this, jobject child, jint index, jobject layout_params)
JNIEXPORT void JNICALL Java_android_widget_FrameLayout_native_1addView(JNIEnv *env, jobject this, jlong widget, jlong child, jint index, jobject layout_params)
{
Java_android_view_ViewGroup_addView(env, this, child, index, layout_params);
if(index >= 0)
frame_layout_widget_insert_child_at_index(FRAME_LAYOUT_WIDGET(_PTR(_GET_LONG_FIELD(this, "widget"))), gtk_widget_get_parent(GTK_WIDGET(_PTR(_GET_LONG_FIELD(child, "widget")))), index);
frame_layout_widget_insert_child_at_index(FRAME_LAYOUT_WIDGET(_PTR(widget)), gtk_widget_get_parent(GTK_WIDGET(_PTR(child))), index);
else
frame_layout_widget_insert_child(FRAME_LAYOUT_WIDGET(_PTR(_GET_LONG_FIELD(this, "widget"))), gtk_widget_get_parent(GTK_WIDGET(_PTR(_GET_LONG_FIELD(child, "widget")))));
frame_layout_widget_insert_child(FRAME_LAYOUT_WIDGET(_PTR(widget)), gtk_widget_get_parent(GTK_WIDGET(_PTR(child))));
}

View File

@@ -7,21 +7,13 @@
#include "../generated_headers/android_widget_ImageView.h"
JNIEXPORT void JNICALL Java_android_widget_ImageView_native_1constructor__Landroid_util_AttributeSet_2(JNIEnv *env, jobject this, jobject attrs)
JNIEXPORT jlong JNICALL Java_android_widget_ImageView_native_1constructor(JNIEnv *env, jobject this, jobject context, jobject attrs)
{
GtkWidget *wrapper = wrapper_widget_new();
GtkWidget *image = gtk_picture_new_for_resource("/org/gtk/libgtk/icons/16x16/status/image-missing.png"); // show "broken image" icon
wrapper_widget_set_child(WRAPPER_WIDGET(wrapper), image);
wrapper_widget_set_jobject(WRAPPER_WIDGET(wrapper), env, this);
_SET_LONG_FIELD(this, "widget", _INTPTR(image));}
JNIEXPORT void JNICALL Java_android_widget_ImageView_native_1constructor__Landroid_content_Context_2(JNIEnv *env, jobject this, jobject context)
{
GtkWidget *wrapper = wrapper_widget_new();
GtkWidget *image = gtk_picture_new_for_resource("/org/gtk/libgtk/icons/16x16/status/image-missing.png"); // show "broken image" icon
wrapper_widget_set_child(WRAPPER_WIDGET(wrapper), image);
wrapper_widget_set_jobject(WRAPPER_WIDGET(wrapper), env, this);
_SET_LONG_FIELD(this, "widget", _INTPTR(image));
return _INTPTR(image);
}
JNIEXPORT void JNICALL Java_android_widget_ImageView_native_1setPixbuf(JNIEnv *env, jobject this, jlong pixbuf_ptr)

View File

@@ -10,55 +10,32 @@
#include "../generated_headers/android_widget_LinearLayout.h"
#include "../generated_headers/android_view_ViewGroup.h"
JNIEXPORT void JNICALL Java_android_widget_LinearLayout_native_1constructor__Landroid_util_AttributeSet_2(JNIEnv *env, jobject this, jobject attrs)
JNIEXPORT jlong JNICALL Java_android_widget_LinearLayout_native_1constructor(JNIEnv *env, jobject this, jobject context, jobject attrs)
{
int orientation = attribute_set_get_int(env, attrs, "orientation", NULL, 0);
int orientation = attribute_set_get_int(env, attrs, "orientation", NULL, 1);
GtkWidget *wrapper = wrapper_widget_new();
GtkWidget *box = gtk_box_new(orientation ? GTK_ORIENTATION_VERTICAL : GTK_ORIENTATION_HORIZONTAL, 1); // spacing of 1
wrapper_widget_set_child(WRAPPER_WIDGET(wrapper), box);
gtk_widget_set_name(GTK_WIDGET(box), "LinearLayout");
_SET_LONG_FIELD(this, "widget", _INTPTR(box));
}
JNIEXPORT void JNICALL Java_android_widget_LinearLayout_native_1constructor__Landroid_content_Context_2(JNIEnv *env, jobject this, jobject context) {
GtkWidget *wrapper = wrapper_widget_new();
GtkWidget *box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); // spacing of 0
wrapper_widget_set_child(WRAPPER_WIDGET(wrapper), box);
gtk_widget_set_name(GTK_WIDGET(box), "LinearLayout");
gtk_widget_set_hexpand_set(box, true); // FIXME: to counteract expand on drawing areas
gtk_widget_set_vexpand_set(box, true); // XXX
_SET_LONG_FIELD(this, "widget", _INTPTR(box));
if (!attrs) {
gtk_widget_set_hexpand_set(box, true); // FIXME: to counteract expand on drawing areas
gtk_widget_set_vexpand_set(box, true); // XXX
}
return _INTPTR(box);
// struct ninepatch_t *ninepatch = ninepatch_new("/home/Mis012/Github_and_other_sources/org.happysanta.gd_29_src.tar.gz/res/drawable-mdpi/btn_br_down.9.png");
// g_object_set_data(G_OBJECT(wrapper), "background_ninepatch", ninepatch);
}
JNIEXPORT void JNICALL Java_android_widget_LinearLayout_addView(JNIEnv *env, jobject this, jobject child, jint index, jobject layout_params)
JNIEXPORT void JNICALL Java_android_widget_LinearLayout_native_1addView(JNIEnv *env, jobject this, jlong widget, jlong child, jint index, jobject layout_params)
{
Java_android_view_ViewGroup_addView(env, this, child, index, layout_params);
gtk_box_append(GTK_BOX(_PTR(_GET_LONG_FIELD(this, "widget"))), gtk_widget_get_parent(GTK_WIDGET(_PTR(_GET_LONG_FIELD(child, "widget"))))); // FIXME - ignores index argument
gtk_box_append(GTK_BOX(_PTR(widget)), gtk_widget_get_parent(GTK_WIDGET(_PTR(child)))); // FIXME - ignores index argument
}
JNIEXPORT void JNICALL Java_android_widget_LinearLayout_removeView(JNIEnv *env, jobject this, jobject child)
JNIEXPORT void JNICALL Java_android_widget_LinearLayout_native_1removeView(JNIEnv *env, jobject this, jlong widget, jlong child)
{
Java_android_view_ViewGroup_removeView(env, this, child);
gtk_box_remove(GTK_BOX(_PTR(_GET_LONG_FIELD(this, "widget"))), gtk_widget_get_parent(GTK_WIDGET(_PTR(_GET_LONG_FIELD(child, "widget")))));
}
JNIEXPORT void JNICALL Java_android_widget_LinearLayout_removeAllViews(JNIEnv *env, jobject this)
{
Java_android_view_ViewGroup_removeAllViews(env, this);
GtkBox *box = GTK_BOX(_PTR(_GET_LONG_FIELD(this, "widget")));
GtkWidget *child;
while((child = gtk_widget_get_first_child(GTK_WIDGET(box))) != NULL) {
gtk_box_remove(box, child);
}
gtk_box_remove(GTK_BOX(_PTR(widget)), gtk_widget_get_parent(GTK_WIDGET(_PTR(child))));
}
JNIEXPORT void JNICALL Java_android_widget_LinearLayout_setOrientation(JNIEnv *env, jobject this, jint orientation)

View File

@@ -10,7 +10,7 @@
// FIXME not a relative layout
JNIEXPORT void JNICALL Java_android_widget_RelativeLayout_native_1constructor__Landroid_util_AttributeSet_2(JNIEnv *env, jobject this, jobject attrs)
JNIEXPORT jlong JNICALL Java_android_widget_RelativeLayout_native_1constructor(JNIEnv *env, jobject this, jobject context, jobject attrs)
{
int orientation = attribute_set_get_int(env, attrs, "orientation", NULL, 1);
@@ -18,20 +18,15 @@ JNIEXPORT void JNICALL Java_android_widget_RelativeLayout_native_1constructor__L
GtkWidget *box = gtk_box_new(orientation ? GTK_ORIENTATION_VERTICAL : GTK_ORIENTATION_HORIZONTAL, 1); // spacing of 1
wrapper_widget_set_child(WRAPPER_WIDGET(wrapper), box);
gtk_widget_set_name(GTK_WIDGET(box), "RelativeLayout");
_SET_LONG_FIELD(this, "widget", _INTPTR(box));
return _INTPTR(box);
}
JNIEXPORT void JNICALL Java_android_widget_RelativeLayout_native_1constructor__Landroid_content_Context_2(JNIEnv *env, jobject this, jobject context) {
GtkWidget *wrapper = wrapper_widget_new();
GtkWidget *box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 1); // spacing of 1
wrapper_widget_set_child(WRAPPER_WIDGET(wrapper), box);
gtk_widget_set_name(GTK_WIDGET(box), "RelativeLayout");
_SET_LONG_FIELD(this, "widget", _INTPTR(box));
}
JNIEXPORT void JNICALL Java_android_widget_RelativeLayout_addView(JNIEnv *env, jobject this, jobject child, jint index, jobject layout_params)
JNIEXPORT void JNICALL Java_android_widget_RelativeLayout_native_1addView(JNIEnv *env, jobject this, jlong widget, jlong child, jint index, jobject layout_params)
{
Java_android_view_ViewGroup_addView(env, this, child, index, layout_params);
gtk_box_append(GTK_BOX(_PTR(_GET_LONG_FIELD(this, "widget"))), gtk_widget_get_parent(GTK_WIDGET(_PTR(_GET_LONG_FIELD(child, "widget")))));
gtk_box_append(GTK_BOX(_PTR(widget)), gtk_widget_get_parent(GTK_WIDGET(_PTR(child)))); // FIXME - ignores index argument
}
JNIEXPORT void JNICALL Java_android_widget_RelativeLayout_native_1removeView(JNIEnv *env, jobject this, jlong widget, jlong child)
{
gtk_box_remove(GTK_BOX(_PTR(widget)), gtk_widget_get_parent(GTK_WIDGET(_PTR(child))));
}

Some files were not shown because too many files have changed in this diff Show More