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
ImageView: handle setScaleType where it maps trivially to Gtk
This commit is contained in:
@@ -7,6 +7,15 @@
|
||||
|
||||
#include "../generated_headers/android_widget_ImageView.h"
|
||||
|
||||
#define SCALE_TYPE_MATRIX 0
|
||||
#define SCALE_TYPE_FIT_XY 1
|
||||
#define SCALE_TYPE_FIT_START 2
|
||||
#define SCALE_TYPE_FIT_CENTER 3
|
||||
#define SCALE_TYPE_FIT_END 4
|
||||
#define SCALE_TYPE_CENTER 5
|
||||
#define SCALE_TYPE_CENTER_CROP 6
|
||||
#define SCALE_TYPE_CENTER_INSIDE 7
|
||||
|
||||
JNIEXPORT jlong JNICALL Java_android_widget_ImageView_native_1constructor(JNIEnv *env, jobject this, jobject context, jobject attrs)
|
||||
{
|
||||
GtkWidget *wrapper = g_object_ref(wrapper_widget_new());
|
||||
@@ -29,3 +38,24 @@ JNIEXPORT void JNICALL Java_android_widget_ImageView_native_1setDrawable(JNIEnv
|
||||
GdkPaintable *paintable = _PTR(paintable_ptr);
|
||||
gtk_picture_set_paintable(picture, paintable);
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL Java_android_widget_ImageView_native_1setScaleType(JNIEnv *env, jobject this, jlong widget_ptr, jint scale_type)
|
||||
{
|
||||
GtkPicture *picture = _PTR(widget_ptr);
|
||||
/* TODO: somehow handle all the types */
|
||||
switch (scale_type) {
|
||||
case SCALE_TYPE_FIT_XY:
|
||||
gtk_picture_set_content_fit(picture, GTK_CONTENT_FIT_FILL);
|
||||
break;
|
||||
case SCALE_TYPE_CENTER:
|
||||
/* should probably let it overflow instead */
|
||||
gtk_picture_set_content_fit(picture, GTK_CONTENT_FIT_SCALE_DOWN);
|
||||
break;
|
||||
case SCALE_TYPE_CENTER_CROP:
|
||||
gtk_picture_set_content_fit(picture, GTK_CONTENT_FIT_COVER);
|
||||
break;
|
||||
case SCALE_TYPE_CENTER_INSIDE:
|
||||
gtk_picture_set_content_fit(picture, GTK_CONTENT_FIT_CONTAIN);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user