2022-10-02 23:06:56 +02:00
|
|
|
#ifndef WRAPPER_WIDGET_H
|
|
|
|
|
#define WRAPPER_WIDGET_H
|
|
|
|
|
|
2023-07-14 17:53:12 +02:00
|
|
|
#include <jni.h>
|
2023-10-28 08:04:00 +02:00
|
|
|
#include <gtk/gtk.h>
|
2023-07-14 17:53:12 +02:00
|
|
|
|
2022-10-02 23:06:56 +02:00
|
|
|
G_DECLARE_FINAL_TYPE (WrapperWidget, wrapper_widget, WRAPPER, WIDGET, GtkWidget)
|
|
|
|
|
|
|
|
|
|
struct _WrapperWidget
|
|
|
|
|
{
|
|
|
|
|
GtkWidget parent_instance;
|
2023-10-31 23:14:47 +01:00
|
|
|
GtkWidget *child;
|
|
|
|
|
GtkWidget *sk_area;
|
2023-12-29 16:55:11 +01:00
|
|
|
GtkWidget *background;
|
2023-07-14 17:53:12 +02:00
|
|
|
JavaVM *jvm;
|
|
|
|
|
jobject jobj;
|
|
|
|
|
jobject canvas;
|
|
|
|
|
jmethodID draw_method;
|
|
|
|
|
jmethodID measure_method;
|
2023-10-30 22:37:48 +01:00
|
|
|
jmethodID computeScroll_method;
|
2023-11-10 23:36:57 +01:00
|
|
|
int layout_width;
|
|
|
|
|
int layout_height;
|
2024-05-06 06:35:47 +02:00
|
|
|
int real_width;
|
|
|
|
|
int real_height;
|
|
|
|
|
gboolean needs_allocation;
|
2022-10-02 23:06:56 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
struct _WrapperWidgetClass
|
|
|
|
|
{
|
|
|
|
|
GtkWidgetClass parent_class;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
GtkWidget * wrapper_widget_new(void);
|
|
|
|
|
void wrapper_widget_set_child(WrapperWidget *parent, GtkWidget *child);
|
2023-07-14 17:53:12 +02:00
|
|
|
void wrapper_widget_set_jobject(WrapperWidget *wrapper, JNIEnv *env, jobject jobj);
|
2023-10-31 23:14:47 +01:00
|
|
|
void wrapper_widget_queue_draw(WrapperWidget *wrapper);
|
2023-11-10 23:36:57 +01:00
|
|
|
void wrapper_widget_set_layout_params(WrapperWidget *wrapper, int width, int height);
|
2023-12-29 16:55:11 +01:00
|
|
|
void wrapper_widget_set_background(WrapperWidget *wrapper, GdkPaintable *paintable);
|
2022-10-02 23:06:56 +02:00
|
|
|
|
2023-10-28 08:04:00 +02:00
|
|
|
void _setOnTouchListener(JNIEnv *env, jobject this, GtkWidget *widget, jobject on_touch_listener);
|
|
|
|
|
|
2022-10-02 23:06:56 +02:00
|
|
|
#endif
|