2022-10-02 23:06:56 +02:00
|
|
|
#include <gtk/gtk.h>
|
|
|
|
|
|
|
|
|
|
#include "../defines.h"
|
|
|
|
|
#include "../util.h"
|
|
|
|
|
|
|
|
|
|
#include "WrapperWidget.h"
|
|
|
|
|
|
|
|
|
|
#include "../generated_headers/android_widget_RelativeLayout.h"
|
|
|
|
|
#include "../generated_headers/android_view_ViewGroup.h"
|
|
|
|
|
|
|
|
|
|
// FIXME not a relative layout
|
|
|
|
|
|
2023-08-17 12:59:37 +02:00
|
|
|
JNIEXPORT jlong JNICALL Java_android_widget_RelativeLayout_native_1constructor(JNIEnv *env, jobject this, jobject context, jobject attrs)
|
2022-10-02 23:06:56 +02:00
|
|
|
{
|
2023-06-18 11:22:23 +02:00
|
|
|
int orientation = attribute_set_get_int(env, attrs, "orientation", NULL, 1);
|
2022-10-02 23:06:56 +02:00
|
|
|
|
2023-08-22 13:49:09 +02:00
|
|
|
GtkWidget *wrapper = g_object_ref(wrapper_widget_new());
|
2022-10-02 23:06:56 +02:00
|
|
|
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");
|
2023-08-17 12:59:37 +02:00
|
|
|
return _INTPTR(box);
|
2022-10-02 23:06:56 +02:00
|
|
|
}
|
|
|
|
|
|
2023-08-17 12:59:37 +02:00
|
|
|
JNIEXPORT void JNICALL Java_android_widget_RelativeLayout_native_1addView(JNIEnv *env, jobject this, jlong widget, jlong child, jint index, jobject layout_params)
|
|
|
|
|
{
|
|
|
|
|
gtk_box_append(GTK_BOX(_PTR(widget)), gtk_widget_get_parent(GTK_WIDGET(_PTR(child)))); // FIXME - ignores index argument
|
2022-10-02 23:06:56 +02:00
|
|
|
}
|
|
|
|
|
|
2023-08-17 12:59:37 +02:00
|
|
|
JNIEXPORT void JNICALL Java_android_widget_RelativeLayout_native_1removeView(JNIEnv *env, jobject this, jlong widget, jlong child)
|
2022-10-02 23:06:56 +02:00
|
|
|
{
|
2023-08-17 12:59:37 +02:00
|
|
|
gtk_box_remove(GTK_BOX(_PTR(widget)), gtk_widget_get_parent(GTK_WIDGET(_PTR(child))));
|
2022-10-02 23:06:56 +02:00
|
|
|
}
|