You've already forked android_translation_layer
mirror of
https://gitlab.com/android_translation_layer/android_translation_layer.git
synced 2025-10-27 11:48:10 -07:00
ScrollView: use GtkScrolledWindow for implementation
This commit is contained in:
@@ -207,6 +207,22 @@ extern "C" {
|
||||
JNIEXPORT jlong JNICALL Java_android_widget_ScrollView_native_1constructor
|
||||
(JNIEnv *, jobject, jobject, jobject);
|
||||
|
||||
/*
|
||||
* Class: android_widget_ScrollView
|
||||
* Method: native_addView
|
||||
* Signature: (JJILandroid/view/ViewGroup/LayoutParams;)V
|
||||
*/
|
||||
JNIEXPORT void JNICALL Java_android_widget_ScrollView_native_1addView
|
||||
(JNIEnv *, jobject, jlong, jlong, jint, jobject);
|
||||
|
||||
/*
|
||||
* Class: android_widget_ScrollView
|
||||
* Method: native_removeView
|
||||
* Signature: (JJ)V
|
||||
*/
|
||||
JNIEXPORT void JNICALL Java_android_widget_ScrollView_native_1removeView
|
||||
(JNIEnv *, jobject, jlong, jlong);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -6,17 +6,27 @@
|
||||
#include "WrapperWidget.h"
|
||||
|
||||
#include "../generated_headers/android_widget_ScrollView.h"
|
||||
#include "../generated_headers/android_view_ViewGroup.h"
|
||||
|
||||
// FIXME not a scrollview
|
||||
|
||||
JNIEXPORT jlong JNICALL Java_android_widget_ScrollView_native_1constructor(JNIEnv *env, jobject this, jobject context, jobject attrs)
|
||||
{
|
||||
int orientation = attribute_set_get_int(env, attrs, "orientation", NULL, 0);
|
||||
|
||||
GtkWidget *wrapper = g_object_ref(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), "ScrollView");
|
||||
return _INTPTR(box);
|
||||
GtkWidget *scrolled_window = gtk_scrolled_window_new();
|
||||
wrapper_widget_set_child(WRAPPER_WIDGET(wrapper), scrolled_window);
|
||||
gtk_widget_set_name(scrolled_window, "ScrollView");
|
||||
return _INTPTR(scrolled_window);
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL Java_android_widget_ScrollView_native_1addView(JNIEnv *env, jobject this, jlong widget_ptr, jlong child_ptr, jint index, jobject params)
|
||||
{
|
||||
GtkScrolledWindow *widget = _PTR(widget_ptr);
|
||||
GtkWidget *child = gtk_widget_get_parent(_PTR(child_ptr));
|
||||
|
||||
gtk_scrolled_window_set_child(widget, child);
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL Java_android_widget_ScrollView_native_1removeView(JNIEnv *env, jobject this, jlong widget_ptr, jlong child_ptr)
|
||||
{
|
||||
GtkScrolledWindow *widget = _PTR(widget_ptr);
|
||||
|
||||
gtk_scrolled_window_set_child(widget, NULL);
|
||||
}
|
||||
|
||||
@@ -15,6 +15,10 @@ public class ScrollView extends ViewGroup {
|
||||
|
||||
@Override
|
||||
protected native long native_constructor(Context context, AttributeSet attrs);
|
||||
@Override
|
||||
protected native void native_addView(long widget, long child, int index, LayoutParams params);
|
||||
@Override
|
||||
protected native void native_removeView(long widget, long child);
|
||||
|
||||
public void setFillViewport(boolean fillViewport) {}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user