System File Chooser: introduced class SystemFileChooser as replacement for JFileChooser

This commit is contained in:
Karl Tauber
2025-01-06 18:01:50 +01:00
parent 9453d55abd
commit 91e8d04a9f
16 changed files with 1721 additions and 12 deletions

View File

@@ -71,6 +71,17 @@ tasks {
else -> emptyList()
}
} )
doFirst {
// check required Java version
if( JavaVersion.current() < JavaVersion.VERSION_11 ) {
println()
println( "WARNING: Java 11 or later required to build Linux native library (running ${System.getProperty( "java.version" )})" )
println( " Native library built with older Java versions throw following exception when running in Java 17+:" )
println( " java.lang.UnsatisfiedLinkError: .../libjawt.so: version `SUNWprivate_1.1' not found" )
println()
}
}
}
withType<LinkSharedLibrary>().configureEach {

View File

@@ -177,11 +177,11 @@ JNIEXPORT jobjectArray JNICALL Java_com_formdev_flatlaf_ui_FlatNativeLinuxLibrar
bool multiSelect = isOptionSet( FC_select_multiple );
GtkWidget* dialog = gtk_file_chooser_dialog_new(
(ctitle != NULL) ? ctitle
: (open ? (selectFolder ? (multiSelect ? _("Select Folders") : _("Select Folder"))
: (multiSelect ? _("Open Files") : _("Open File"))) : _("Save File")),
: (selectFolder ? (multiSelect ? _("Select Folders") : _("Select Folder"))
: (open ? ((multiSelect ? _("Open Files") : _("Open File"))) : _("Save File"))),
NULL, // can not use AWT X11 window as parent because GtkWindow is required
open ? (selectFolder ? GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER : GTK_FILE_CHOOSER_ACTION_OPEN)
: GTK_FILE_CHOOSER_ACTION_SAVE,
selectFolder ? GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER
: (open ? GTK_FILE_CHOOSER_ACTION_OPEN : GTK_FILE_CHOOSER_ACTION_SAVE),
_("_Cancel"), GTK_RESPONSE_CANCEL,
(cokButtonLabel != NULL) ? cokButtonLabel : (open ? _("_Open") : _("_Save")), GTK_RESPONSE_ACCEPT,
NULL ); // marks end of buttons