diff --git a/launcher-gtk/src/main/java/io/gitlab/jfronny/inceptum/gtk/control/Dropdown.java b/launcher-gtk/src/main/java/io/gitlab/jfronny/inceptum/gtk/control/Dropdown.java deleted file mode 100644 index eca64ab..0000000 --- a/launcher-gtk/src/main/java/io/gitlab/jfronny/inceptum/gtk/control/Dropdown.java +++ /dev/null @@ -1,49 +0,0 @@ -package io.gitlab.jfronny.inceptum.gtk.control; - -import io.gitlab.jfronny.commons.throwable.ThrowingRunnable; -import io.gitlab.jfronny.inceptum.gtk.menu.MenuBuilder; -import org.gtk.gtk.MenuButton; - -import java.util.LinkedList; -import java.util.List; -import java.util.function.*; - -public class Dropdown extends MenuButton { - private final T[] source; - private final List> onChange = new LinkedList<>(); - private int selected; - - public Dropdown(T[] source, int def, Function stringify) { - this.source = source; - MenuBuilder builder = MenuBuilder.create(this, "nil"); - this.selected = def; - for (int i = 0; i < source.length; i++) { - String n = stringify.apply(source[i]); - if (def == i) label = n; - builder.literalButton("" + i, n, new LB(i, n)); - } - } - - public void onChanged(Consumer action) { - onChange.add(action); - } - - private class LB implements ThrowingRunnable { - private final int i; - private final String n; - - public LB(int i, String n) { - this.i = i; - this.n = n; - } - - @Override - public void run() throws RuntimeException { - if (selected != i) { - selected = i; - for (Consumer action : onChange) action.accept(source[i]); - Dropdown.this.label = n; - } - } - } -} diff --git a/launcher-gtk/src/main/java/io/gitlab/jfronny/inceptum/gtk/control/IRow.java b/launcher-gtk/src/main/java/io/gitlab/jfronny/inceptum/gtk/control/IRow.java index 79bfc34..b859db7 100644 --- a/launcher-gtk/src/main/java/io/gitlab/jfronny/inceptum/gtk/control/IRow.java +++ b/launcher-gtk/src/main/java/io/gitlab/jfronny/inceptum/gtk/control/IRow.java @@ -48,17 +48,21 @@ public class IRow extends Box { btn.onNotify("selected", pspec -> { changed.accept(btn.selected); }); + btn.expression = new PropertyExpression(StringObject.type, null, "string"); append(btn); return btn; } - public CheckButton setCheckbox(@PropertyKey(resourceBundle = I18n.BUNDLE) String text, boolean value, Consumer changed) { + public Switch setCheckbox(boolean value, Consumer changed) { firstChild.hexpand = true; - CheckButton btn = CheckButton.newWithLabel(I18n.get(text)); + Switch btn = new Switch(); btn.valign = Align.CENTER; btn.halign = Align.END; btn.active = value; - btn.onToggled(() -> changed.accept(btn.active)); + btn.onStateSet(state -> { + changed.accept(state); + return false; + }); append(btn); return btn; } diff --git a/launcher-gtk/src/main/java/io/gitlab/jfronny/inceptum/gtk/window/LauncherSettingsWindow.java b/launcher-gtk/src/main/java/io/gitlab/jfronny/inceptum/gtk/window/LauncherSettingsWindow.java index 737f5bf..df4911c 100644 --- a/launcher-gtk/src/main/java/io/gitlab/jfronny/inceptum/gtk/window/LauncherSettingsWindow.java +++ b/launcher-gtk/src/main/java/io/gitlab/jfronny/inceptum/gtk/window/LauncherSettingsWindow.java @@ -23,7 +23,7 @@ public class LauncherSettingsWindow extends Window { { IRow row = new IRow("settings.snapshots", "settings.snapshots.subtitle"); listBox.append(row); - row.setCheckbox("settings.snapshots", InceptumConfig.snapshots, b -> { + row.setCheckbox(InceptumConfig.snapshots, b -> { InceptumConfig.snapshots = b; InceptumConfig.saveConfig(); }); diff --git a/launcher-gtk/src/main/java/io/gitlab/jfronny/inceptum/gtk/window/edit/GeneralTab.java b/launcher-gtk/src/main/java/io/gitlab/jfronny/inceptum/gtk/window/edit/GeneralTab.java index 2d697e4..7eabbaf 100644 --- a/launcher-gtk/src/main/java/io/gitlab/jfronny/inceptum/gtk/window/edit/GeneralTab.java +++ b/launcher-gtk/src/main/java/io/gitlab/jfronny/inceptum/gtk/window/edit/GeneralTab.java @@ -52,7 +52,7 @@ public class GeneralTab extends SettingsTab { section("instance.settings.general.game", section -> { { var ref = new Object() { - CheckButton fabricEnabled = null; + Switch fabricEnabled = null; Runnable versionChanged = null; DropDown fabricVersion = null; String defaultFabric = null; @@ -74,11 +74,11 @@ public class GeneralTab extends SettingsTab { : versions[i]; instance.writeMeta(); ref.versionChanged.run(); - }); + }).enableSearch = true; var fabricRow = section.row("instance.settings.general.game.fabric.enabled", "instance.settings.general.game.fabric.enabled.subtitle"); var loaderRow = section.row("instance.settings.general.game.fabric.version", "instance.settings.general.game.fabric.version.subtitle"); loaderRow.visible = instance.isFabric; - ref.fabricEnabled = fabricRow.setCheckbox("instance.settings.general.game.fabric.enabled", instance.isFabric, bl -> { + ref.fabricEnabled = fabricRow.setCheckbox(instance.isFabric, bl -> { if (bl) { if (ref.fabricVersions != null && ref.fabricVersions.length != 0 && ref.defaultFabric != null) { instance.meta.gameVersion = GameVersionParser.createVersionWithFabric(instance.gameVersion, ref.defaultFabric); @@ -116,6 +116,7 @@ public class GeneralTab extends SettingsTab { instance.meta.gameVersion = i == -1 ? instance.gameVersion : GameVersionParser.createVersionWithFabric(instance.gameVersion, ref.fabricVersions[i]); instance.writeMeta(); }); + ref.fabricVersion.enableSearch = true; } { var row = section.row("instance.settings.general.game.java", "instance.settings.general.game.java.subtitle"); diff --git a/launcher-gtk/src/main/resources/inceptum.properties b/launcher-gtk/src/main/resources/inceptum.properties index b96b938..86961ca 100644 --- a/launcher-gtk/src/main/resources/inceptum.properties +++ b/launcher-gtk/src/main/resources/inceptum.properties @@ -9,7 +9,7 @@ menu.account.new=New menu.file=File menu.file.exit=Exit menu.file.new=New Instance -menu.file.redownload=Re-download resources +menu.file.redownload=Re-Download Resources menu.help=Help menu.help.about=About menu.help.log=Log