Skip to content

Commit

Permalink
Make new GTK4 Dialog dynamic loaded for pre GTK 4.10
Browse files Browse the repository at this point in the history
  • Loading branch information
laeubi committed Oct 9, 2024
1 parent 8feeb23 commit 1843062
Show file tree
Hide file tree
Showing 3 changed files with 147 additions and 0 deletions.
128 changes: 128 additions & 0 deletions bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/gtk4.c
Original file line number Diff line number Diff line change
Expand Up @@ -662,7 +662,15 @@ JNIEXPORT jlong JNICALL GTK4_NATIVE(gtk_1file_1dialog_1get_1default_1filter)
{
jlong rc = 0;
GTK4_NATIVE_ENTER(env, that, gtk_1file_1dialog_1get_1default_1filter_FUNC);
/*
rc = (jlong)gtk_file_dialog_get_default_filter((GtkFileDialog *)arg0);
*/
{
GTK4_LOAD_FUNCTION(fp, gtk_file_dialog_get_default_filter)
if (fp) {
rc = (jlong)((jlong (CALLING_CONVENTION*)(GtkFileDialog *))fp)((GtkFileDialog *)arg0);
}
}
GTK4_NATIVE_EXIT(env, that, gtk_1file_1dialog_1get_1default_1filter_FUNC);
return rc;
}
Expand All @@ -674,7 +682,15 @@ JNIEXPORT jlong JNICALL GTK4_NATIVE(gtk_1file_1dialog_1new)
{
jlong rc = 0;
GTK4_NATIVE_ENTER(env, that, gtk_1file_1dialog_1new_FUNC);
/*
rc = (jlong)gtk_file_dialog_new();
*/
{
GTK4_LOAD_FUNCTION(fp, gtk_file_dialog_new)
if (fp) {
rc = (jlong)((jlong (CALLING_CONVENTION*)())fp)();
}
}
GTK4_NATIVE_EXIT(env, that, gtk_1file_1dialog_1new_FUNC);
return rc;
}
Expand All @@ -685,7 +701,15 @@ JNIEXPORT void JNICALL GTK4_NATIVE(gtk_1file_1dialog_1open)
(JNIEnv *env, jclass that, jlong arg0, jlong arg1, jlong arg2, jlong arg3, jlong arg4)
{
GTK4_NATIVE_ENTER(env, that, gtk_1file_1dialog_1open_FUNC);
/*
gtk_file_dialog_open((GtkFileDialog *)arg0, (GtkWindow *)arg1, (GCancellable *)arg2, (GAsyncReadyCallback)arg3, (gpointer)arg4);
*/
{
GTK4_LOAD_FUNCTION(fp, gtk_file_dialog_open)
if (fp) {
((void (CALLING_CONVENTION*)(GtkFileDialog *, GtkWindow *, GCancellable *, GAsyncReadyCallback, gpointer))fp)((GtkFileDialog *)arg0, (GtkWindow *)arg1, (GCancellable *)arg2, (GAsyncReadyCallback)arg3, (gpointer)arg4);
}
}
GTK4_NATIVE_EXIT(env, that, gtk_1file_1dialog_1open_FUNC);
}
#endif
Expand All @@ -698,7 +722,15 @@ JNIEXPORT jlong JNICALL GTK4_NATIVE(gtk_1file_1dialog_1open_1finish)
jlong rc = 0;
GTK4_NATIVE_ENTER(env, that, gtk_1file_1dialog_1open_1finish_FUNC);
if (arg2) if ((lparg2 = (*env)->GetLongArrayElements(env, arg2, NULL)) == NULL) goto fail;
/*
rc = (jlong)gtk_file_dialog_open_finish((GtkFileDialog *)arg0, (GAsyncResult *)arg1, (GError **)lparg2);
*/
{
GTK4_LOAD_FUNCTION(fp, gtk_file_dialog_open_finish)
if (fp) {
rc = (jlong)((jlong (CALLING_CONVENTION*)(GtkFileDialog *, GAsyncResult *, GError **))fp)((GtkFileDialog *)arg0, (GAsyncResult *)arg1, (GError **)lparg2);
}
}
fail:
if (arg2 && lparg2) (*env)->ReleaseLongArrayElements(env, arg2, lparg2, 0);
GTK4_NATIVE_EXIT(env, that, gtk_1file_1dialog_1open_1finish_FUNC);
Expand All @@ -711,7 +743,15 @@ JNIEXPORT void JNICALL GTK4_NATIVE(gtk_1file_1dialog_1open_1multiple)
(JNIEnv *env, jclass that, jlong arg0, jlong arg1, jlong arg2, jlong arg3, jlong arg4)
{
GTK4_NATIVE_ENTER(env, that, gtk_1file_1dialog_1open_1multiple_FUNC);
/*
gtk_file_dialog_open_multiple((GtkFileDialog *)arg0, (GtkWindow *)arg1, (GCancellable *)arg2, (GAsyncReadyCallback)arg3, (gpointer)arg4);
*/
{
GTK4_LOAD_FUNCTION(fp, gtk_file_dialog_open_multiple)
if (fp) {
((void (CALLING_CONVENTION*)(GtkFileDialog *, GtkWindow *, GCancellable *, GAsyncReadyCallback, gpointer))fp)((GtkFileDialog *)arg0, (GtkWindow *)arg1, (GCancellable *)arg2, (GAsyncReadyCallback)arg3, (gpointer)arg4);
}
}
GTK4_NATIVE_EXIT(env, that, gtk_1file_1dialog_1open_1multiple_FUNC);
}
#endif
Expand All @@ -724,7 +764,15 @@ JNIEXPORT jlong JNICALL GTK4_NATIVE(gtk_1file_1dialog_1open_1multiple_1finish)
jlong rc = 0;
GTK4_NATIVE_ENTER(env, that, gtk_1file_1dialog_1open_1multiple_1finish_FUNC);
if (arg2) if ((lparg2 = (*env)->GetLongArrayElements(env, arg2, NULL)) == NULL) goto fail;
/*
rc = (jlong)gtk_file_dialog_open_multiple_finish((GtkFileDialog *)arg0, (GAsyncResult *)arg1, (GError **)lparg2);
*/
{
GTK4_LOAD_FUNCTION(fp, gtk_file_dialog_open_multiple_finish)
if (fp) {
rc = (jlong)((jlong (CALLING_CONVENTION*)(GtkFileDialog *, GAsyncResult *, GError **))fp)((GtkFileDialog *)arg0, (GAsyncResult *)arg1, (GError **)lparg2);
}
}
fail:
if (arg2 && lparg2) (*env)->ReleaseLongArrayElements(env, arg2, lparg2, 0);
GTK4_NATIVE_EXIT(env, that, gtk_1file_1dialog_1open_1multiple_1finish_FUNC);
Expand All @@ -737,7 +785,15 @@ JNIEXPORT void JNICALL GTK4_NATIVE(gtk_1file_1dialog_1save)
(JNIEnv *env, jclass that, jlong arg0, jlong arg1, jlong arg2, jlong arg3, jlong arg4)
{
GTK4_NATIVE_ENTER(env, that, gtk_1file_1dialog_1save_FUNC);
/*
gtk_file_dialog_save((GtkFileDialog *)arg0, (GtkWindow *)arg1, (GCancellable *)arg2, (GAsyncReadyCallback)arg3, (gpointer)arg4);
*/
{
GTK4_LOAD_FUNCTION(fp, gtk_file_dialog_save)
if (fp) {
((void (CALLING_CONVENTION*)(GtkFileDialog *, GtkWindow *, GCancellable *, GAsyncReadyCallback, gpointer))fp)((GtkFileDialog *)arg0, (GtkWindow *)arg1, (GCancellable *)arg2, (GAsyncReadyCallback)arg3, (gpointer)arg4);
}
}
GTK4_NATIVE_EXIT(env, that, gtk_1file_1dialog_1save_FUNC);
}
#endif
Expand All @@ -750,7 +806,15 @@ JNIEXPORT jlong JNICALL GTK4_NATIVE(gtk_1file_1dialog_1save_1finish)
jlong rc = 0;
GTK4_NATIVE_ENTER(env, that, gtk_1file_1dialog_1save_1finish_FUNC);
if (arg2) if ((lparg2 = (*env)->GetLongArrayElements(env, arg2, NULL)) == NULL) goto fail;
/*
rc = (jlong)gtk_file_dialog_save_finish((GtkFileDialog *)arg0, (GAsyncResult *)arg1, (GError **)lparg2);
*/
{
GTK4_LOAD_FUNCTION(fp, gtk_file_dialog_save_finish)
if (fp) {
rc = (jlong)((jlong (CALLING_CONVENTION*)(GtkFileDialog *, GAsyncResult *, GError **))fp)((GtkFileDialog *)arg0, (GAsyncResult *)arg1, (GError **)lparg2);
}
}
fail:
if (arg2 && lparg2) (*env)->ReleaseLongArrayElements(env, arg2, lparg2, 0);
GTK4_NATIVE_EXIT(env, that, gtk_1file_1dialog_1save_1finish_FUNC);
Expand All @@ -763,7 +827,15 @@ JNIEXPORT void JNICALL GTK4_NATIVE(gtk_1file_1dialog_1select_1folder)
(JNIEnv *env, jclass that, jlong arg0, jlong arg1, jlong arg2, jlong arg3, jlong arg4)
{
GTK4_NATIVE_ENTER(env, that, gtk_1file_1dialog_1select_1folder_FUNC);
/*
gtk_file_dialog_select_folder((GtkFileDialog *)arg0, (GtkWindow *)arg1, (GCancellable *)arg2, (GAsyncReadyCallback)arg3, (gpointer)arg4);
*/
{
GTK4_LOAD_FUNCTION(fp, gtk_file_dialog_select_folder)
if (fp) {
((void (CALLING_CONVENTION*)(GtkFileDialog *, GtkWindow *, GCancellable *, GAsyncReadyCallback, gpointer))fp)((GtkFileDialog *)arg0, (GtkWindow *)arg1, (GCancellable *)arg2, (GAsyncReadyCallback)arg3, (gpointer)arg4);
}
}
GTK4_NATIVE_EXIT(env, that, gtk_1file_1dialog_1select_1folder_FUNC);
}
#endif
Expand All @@ -776,7 +848,15 @@ JNIEXPORT jlong JNICALL GTK4_NATIVE(gtk_1file_1dialog_1select_1folder_1finish)
jlong rc = 0;
GTK4_NATIVE_ENTER(env, that, gtk_1file_1dialog_1select_1folder_1finish_FUNC);
if (arg2) if ((lparg2 = (*env)->GetLongArrayElements(env, arg2, NULL)) == NULL) goto fail;
/*
rc = (jlong)gtk_file_dialog_select_folder_finish((GtkFileDialog *)arg0, (GAsyncResult *)arg1, (GError **)lparg2);
*/
{
GTK4_LOAD_FUNCTION(fp, gtk_file_dialog_select_folder_finish)
if (fp) {
rc = (jlong)((jlong (CALLING_CONVENTION*)(GtkFileDialog *, GAsyncResult *, GError **))fp)((GtkFileDialog *)arg0, (GAsyncResult *)arg1, (GError **)lparg2);
}
}
fail:
if (arg2 && lparg2) (*env)->ReleaseLongArrayElements(env, arg2, lparg2, 0);
GTK4_NATIVE_EXIT(env, that, gtk_1file_1dialog_1select_1folder_1finish_FUNC);
Expand All @@ -789,7 +869,15 @@ JNIEXPORT void JNICALL GTK4_NATIVE(gtk_1file_1dialog_1set_1default_1filter)
(JNIEnv *env, jclass that, jlong arg0, jlong arg1)
{
GTK4_NATIVE_ENTER(env, that, gtk_1file_1dialog_1set_1default_1filter_FUNC);
/*
gtk_file_dialog_set_default_filter((GtkFileDialog *)arg0, (GtkFileFilter *)arg1);
*/
{
GTK4_LOAD_FUNCTION(fp, gtk_file_dialog_set_default_filter)
if (fp) {
((void (CALLING_CONVENTION*)(GtkFileDialog *, GtkFileFilter *))fp)((GtkFileDialog *)arg0, (GtkFileFilter *)arg1);
}
}
GTK4_NATIVE_EXIT(env, that, gtk_1file_1dialog_1set_1default_1filter_FUNC);
}
#endif
Expand All @@ -799,7 +887,15 @@ JNIEXPORT void JNICALL GTK4_NATIVE(gtk_1file_1dialog_1set_1filters)
(JNIEnv *env, jclass that, jlong arg0, jlong arg1)
{
GTK4_NATIVE_ENTER(env, that, gtk_1file_1dialog_1set_1filters_FUNC);
/*
gtk_file_dialog_set_filters((GtkFileDialog *)arg0, (GListModel *)arg1);
*/
{
GTK4_LOAD_FUNCTION(fp, gtk_file_dialog_set_filters)
if (fp) {
((void (CALLING_CONVENTION*)(GtkFileDialog *, GListModel *))fp)((GtkFileDialog *)arg0, (GListModel *)arg1);
}
}
GTK4_NATIVE_EXIT(env, that, gtk_1file_1dialog_1set_1filters_FUNC);
}
#endif
Expand All @@ -809,7 +905,15 @@ JNIEXPORT void JNICALL GTK4_NATIVE(gtk_1file_1dialog_1set_1initial_1file)
(JNIEnv *env, jclass that, jlong arg0, jlong arg1)
{
GTK4_NATIVE_ENTER(env, that, gtk_1file_1dialog_1set_1initial_1file_FUNC);
/*
gtk_file_dialog_set_initial_file((GtkFileDialog *)arg0, (GFile *)arg1);
*/
{
GTK4_LOAD_FUNCTION(fp, gtk_file_dialog_set_initial_file)
if (fp) {
((void (CALLING_CONVENTION*)(GtkFileDialog *, GFile *))fp)((GtkFileDialog *)arg0, (GFile *)arg1);
}
}
GTK4_NATIVE_EXIT(env, that, gtk_1file_1dialog_1set_1initial_1file_FUNC);
}
#endif
Expand All @@ -819,7 +923,15 @@ JNIEXPORT void JNICALL GTK4_NATIVE(gtk_1file_1dialog_1set_1initial_1folder)
(JNIEnv *env, jclass that, jlong arg0, jlong arg1)
{
GTK4_NATIVE_ENTER(env, that, gtk_1file_1dialog_1set_1initial_1folder_FUNC);
/*
gtk_file_dialog_set_initial_folder((GtkFileDialog *)arg0, (GFile *)arg1);
*/
{
GTK4_LOAD_FUNCTION(fp, gtk_file_dialog_set_initial_folder)
if (fp) {
((void (CALLING_CONVENTION*)(GtkFileDialog *, GFile *))fp)((GtkFileDialog *)arg0, (GFile *)arg1);
}
}
GTK4_NATIVE_EXIT(env, that, gtk_1file_1dialog_1set_1initial_1folder_FUNC);
}
#endif
Expand All @@ -831,7 +943,15 @@ JNIEXPORT void JNICALL GTK4_NATIVE(gtk_1file_1dialog_1set_1initial_1name)
jbyte *lparg1=NULL;
GTK4_NATIVE_ENTER(env, that, gtk_1file_1dialog_1set_1initial_1name_FUNC);
if (arg1) if ((lparg1 = (*env)->GetByteArrayElements(env, arg1, NULL)) == NULL) goto fail;
/*
gtk_file_dialog_set_initial_name((GtkFileDialog *)arg0, (char *)lparg1);
*/
{
GTK4_LOAD_FUNCTION(fp, gtk_file_dialog_set_initial_name)
if (fp) {
((void (CALLING_CONVENTION*)(GtkFileDialog *, char *))fp)((GtkFileDialog *)arg0, (char *)lparg1);
}
}
fail:
if (arg1 && lparg1) (*env)->ReleaseByteArrayElements(env, arg1, lparg1, 0);
GTK4_NATIVE_EXIT(env, that, gtk_1file_1dialog_1set_1initial_1name_FUNC);
Expand All @@ -845,7 +965,15 @@ JNIEXPORT void JNICALL GTK4_NATIVE(gtk_1file_1dialog_1set_1title)
jbyte *lparg1=NULL;
GTK4_NATIVE_ENTER(env, that, gtk_1file_1dialog_1set_1title_FUNC);
if (arg1) if ((lparg1 = (*env)->GetByteArrayElements(env, arg1, NULL)) == NULL) goto fail;
/*
gtk_file_dialog_set_title((GtkFileDialog *)arg0, (char *)lparg1);
*/
{
GTK4_LOAD_FUNCTION(fp, gtk_file_dialog_set_title)
if (fp) {
((void (CALLING_CONVENTION*)(GtkFileDialog *, char *))fp)((GtkFileDialog *)arg0, (char *)lparg1);
}
}
fail:
if (arg1 && lparg1) (*env)->ReleaseByteArrayElements(env, arg1, lparg1, 0);
GTK4_NATIVE_EXIT(env, that, gtk_1file_1dialog_1set_1title_FUNC);
Expand Down
3 changes: 3 additions & 0 deletions bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/gtk4.h
Original file line number Diff line number Diff line change
Expand Up @@ -22,4 +22,7 @@

#include <gtk/gtk.h>

// Hard-link code generated from GTK4.java to LIB_GTK
#define GTK4_LOAD_FUNCTION(var, name) LOAD_FUNCTION_LIB(var, LIB_GTK, name)

#endif /* INC_gtk4_H */
Original file line number Diff line number Diff line change
Expand Up @@ -175,8 +175,10 @@ public class GTK4 {
public static final native long gdk_content_formats_builder_free_to_formats(long builder);

/* GtkFileDialog */
/** @method flags=dynamic **/
public static final native long gtk_file_dialog_new();
/**
* @method flags=dynamic
* @param self cast=(GtkFileDialog *)
* @param parent cast=(GtkWindow *)
* @param cancellable cast=(GCancellable *)
Expand All @@ -185,46 +187,55 @@ public class GTK4 {
*/
public static final native void gtk_file_dialog_select_folder(long self, long parent, long cancellable, long callback, long user_data);
/**
* @method flags=dynamic
* @param self cast=(GtkFileDialog *)
* @param result cast=(GAsyncResult *)
* @param error cast=(GError **)
*/
public static final native long gtk_file_dialog_select_folder_finish(long self, long result, long[] error);
/**
* @method flags=dynamic
* @param self cast=(GtkFileDialog *)
* @param folder cast=(GFile *)
*/
public static final native void gtk_file_dialog_set_initial_folder(long self, long folder);
/**
* @method flags=dynamic
* @param self cast=(GtkFileDialog *)
* @param title cast=(char *)
*/
public static final native void gtk_file_dialog_set_initial_name(long self, byte[] title);
/**
* @method flags=dynamic
* @param self cast=(GtkFileDialog *)
* @param file cast=(GFile *)
*/
public static final native void gtk_file_dialog_set_initial_file(long self, long file);
/**
* @method flags=dynamic
* @param self cast=(GtkFileDialog *)
* @param title cast=(char *)
*/
public static final native void gtk_file_dialog_set_title(long self, byte[] title);
/**
* @method flags=dynamic
* @param self cast=(GtkFileDialog *)
* @param filter cast=(GtkFileFilter *)
*/
public static final native void gtk_file_dialog_set_default_filter(long self, long filter);
/**
* @method flags=dynamic
* @param self cast=(GtkFileDialog *)
* @param filters cast=(GListModel *)
*/
public static final native void gtk_file_dialog_set_filters(long self, long filters);
/**
* @method flags=dynamic
* @param self cast=(GtkFileDialog *)
*/
public static final native long gtk_file_dialog_get_default_filter(long self);
/**
* @method flags=dynamic
* @param self cast=(GtkFileDialog *)
* @param parent cast=(GtkWindow *)
* @param cancellable cast=(GCancellable *)
Expand All @@ -233,6 +244,7 @@ public class GTK4 {
*/
public static final native void gtk_file_dialog_open_multiple(long self, long parent, long cancellable, long callback, long user_data);
/**
* @method flags=dynamic
* @param self cast=(GtkFileDialog *)
* @param result cast=(GAsyncResult *)
* @param error cast=(GError **)
Expand All @@ -244,15 +256,18 @@ public class GTK4 {
* @param cancellable cast=(GCancellable *)
* @param callback cast=(GAsyncReadyCallback)
* @param user_data cast=(gpointer)
* @method flags=dynamic
*/
public static final native void gtk_file_dialog_open(long self, long parent, long cancellable, long callback, long user_data);
/**
* @method flags=dynamic
* @param self cast=(GtkFileDialog *)
* @param result cast=(GAsyncResult *)
* @param error cast=(GError **)
*/
public static final native long gtk_file_dialog_open_finish(long self, long result, long[] error);
/**
* @method flags=dynamic
* @param self cast=(GtkFileDialog *)
* @param parent cast=(GtkWindow *)
* @param cancellable cast=(GCancellable *)
Expand All @@ -261,6 +276,7 @@ public class GTK4 {
*/
public static final native void gtk_file_dialog_save(long self, long parent, long cancellable, long callback, long user_data);
/**
* @method flags=dynamic
* @param self cast=(GtkFileDialog *)
* @param result cast=(GAsyncResult *)
* @param error cast=(GError **)
Expand Down

0 comments on commit 1843062

Please sign in to comment.