From 751a7a3cae7f1990262cdf6ba18b134af3d8bf16 Mon Sep 17 00:00:00 2001 From: Sergii Pylypenko Date: Wed, 16 Mar 2016 21:59:15 +0200 Subject: [PATCH] SDL: better menu to edit commandline parameters --- project/java/SettingsMenu.java | 1 + project/java/SettingsMenuMisc.java | 75 +++++++++++++++++------------ project/jni/application/bochs/bochs | 2 +- project/jni/sdl_main/sdl_main.c | 6 +++ 4 files changed, 51 insertions(+), 33 deletions(-) diff --git a/project/java/SettingsMenu.java b/project/java/SettingsMenu.java index c0a8705f0..c1ceddf12 100644 --- a/project/java/SettingsMenu.java +++ b/project/java/SettingsMenu.java @@ -247,6 +247,7 @@ class SettingsMenu new SettingsMenuKeyboard.RemapHwKeysConfig(), new SettingsMenuKeyboard.ScreenGesturesConfig(), new SettingsMenuMisc.VideoSettingsConfig(), + new SettingsMenuMisc.CommandlineConfig(), new SettingsMenuMisc.ResetToDefaultsConfig(), new OkButton(), }; diff --git a/project/java/SettingsMenuMisc.java b/project/java/SettingsMenuMisc.java index 521ca44b6..db950bd23 100644 --- a/project/java/SettingsMenuMisc.java +++ b/project/java/SettingsMenuMisc.java @@ -74,6 +74,7 @@ import android.hardware.SensorEventListener; import android.hardware.SensorEvent; import android.hardware.Sensor; import android.widget.Toast; +import android.text.InputType; class SettingsMenuMisc extends SettingsMenu @@ -148,38 +149,6 @@ class SettingsMenuMisc extends SettingsMenu { Globals.DataDir = edit.getText().toString(); dialog.dismiss(); - showCommandLineConfig(p); - } - }); - builder.setOnCancelListener(new DialogInterface.OnCancelListener() - { - public void onCancel(DialogInterface dialog) - { - goBack(p); - } - }); - AlertDialog alert = builder.create(); - alert.setOwnerActivity(p); - alert.show(); - } - static void showCommandLineConfig(final MainActivity p) - { - AlertDialog.Builder builder = new AlertDialog.Builder(p); - builder.setTitle(p.getResources().getString(R.string.storage_commandline)); - - final EditText edit = new EditText(p); - edit.setFocusableInTouchMode(true); - edit.setFocusable(true); - edit.setText(Globals.CommandLine); - builder.setView(edit); - - builder.setPositiveButton(p.getResources().getString(R.string.ok), new DialogInterface.OnClickListener() - { - public void onClick(DialogInterface dialog, int item) - { - Globals.CommandLine = edit.getText().toString(); - dialog.dismiss(); - goBack(p); } }); builder.setOnCancelListener(new DialogInterface.OnCancelListener() @@ -569,6 +538,48 @@ class SettingsMenuMisc extends SettingsMenu } } + static class CommandlineConfig extends Menu + { + String title(final MainActivity p) + { + return p.getResources().getString(R.string.storage_commandline); + } + void run (final MainActivity p) + { + AlertDialog.Builder builder = new AlertDialog.Builder(p); + builder.setTitle(p.getResources().getString(R.string.storage_commandline)); + + final EditText edit = new EditText(p); + edit.setFocusableInTouchMode(true); + edit.setFocusable(true); + edit.setText(Globals.CommandLine.replace(" ", "\n").replace(" ", " ")); + edit.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_MULTI_LINE | InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS); + edit.setMinLines(2); + //edit.setMaxLines(100); + builder.setView(edit); + + builder.setPositiveButton(p.getResources().getString(R.string.ok), new DialogInterface.OnClickListener() + { + public void onClick(DialogInterface dialog, int item) + { + Globals.CommandLine = edit.getText().toString().replace(" ", " ").replace("\n", " "); + dialog.dismiss(); + goBack(p); + } + }); + builder.setOnCancelListener(new DialogInterface.OnCancelListener() + { + public void onCancel(DialogInterface dialog) + { + goBack(p); + } + }); + AlertDialog alert = builder.create(); + alert.setOwnerActivity(p); + alert.show(); + } + } + static class ResetToDefaultsConfig extends Menu { String title(final MainActivity p) diff --git a/project/jni/application/bochs/bochs b/project/jni/application/bochs/bochs index 708b76591..b8c3ab277 160000 --- a/project/jni/application/bochs/bochs +++ b/project/jni/application/bochs/bochs @@ -1 +1 @@ -Subproject commit 708b765915235f3cfed51d0d67892b22343e7228 +Subproject commit b8c3ab2779e8e29ce5156eae589070a56d100a0c diff --git a/project/jni/sdl_main/sdl_main.c b/project/jni/sdl_main/sdl_main.c index 66619aabb..310e62ef5 100644 --- a/project/jni/sdl_main/sdl_main.c +++ b/project/jni/sdl_main/sdl_main.c @@ -129,6 +129,12 @@ JAVA_EXPORT_NAME(DemoRenderer_nativeInit) ( JNIEnv* env, jobject thiz, jstring } } + for (i = 0; i < argc; i++) + { + while( strchr(argv[i], '\t') != NULL ) + strchr(argv[i], '\t')[0] = ' '; + } + __android_log_print(ANDROID_LOG_INFO, "libSDL", "Calling SDL_main(\"%s\")", str); (*env)->ReleaseStringUTFChars(env, cmdline, jstr);