diff options
author | sowgro <tpoke.ferrari@gmail.com> | 2024-09-05 22:27:14 -0400 |
---|---|---|
committer | sowgro <tpoke.ferrari@gmail.com> | 2024-09-05 22:27:14 -0400 |
commit | a645b476202bd5b44ab5c22253a70269409b5674 (patch) | |
tree | 39a45622e6b9e8325a7bf13f626b902e7fed0a65 /src/main/java/net/sowgro/npehero/gui | |
parent | d685d397573c43194fede9b2bbd3aee76d2cd9f8 (diff) | |
download | NPEhero-a645b476202bd5b44ab5c22253a70269409b5674.tar.gz NPEhero-a645b476202bd5b44ab5c22253a70269409b5674.tar.bz2 NPEhero-a645b476202bd5b44ab5c22253a70269409b5674.zip |
Add gui scale and other fixes
- add gui scaling and options in settings
- song with endTime of 0 will now properly get time from song length
- suppress unchecked warnings in levelapi
Diffstat (limited to 'src/main/java/net/sowgro/npehero/gui')
-rwxr-xr-x | src/main/java/net/sowgro/npehero/gui/SettingsEditor.java | 36 |
1 files changed, 30 insertions, 6 deletions
diff --git a/src/main/java/net/sowgro/npehero/gui/SettingsEditor.java b/src/main/java/net/sowgro/npehero/gui/SettingsEditor.java index f83a8a4..e89dbc9 100755 --- a/src/main/java/net/sowgro/npehero/gui/SettingsEditor.java +++ b/src/main/java/net/sowgro/npehero/gui/SettingsEditor.java @@ -2,9 +2,7 @@ package net.sowgro.npehero.gui; import javafx.geometry.Insets; import javafx.geometry.Pos; -import javafx.scene.control.Button; -import javafx.scene.control.CheckBox; -import javafx.scene.control.Slider; +import javafx.scene.control.*; import javafx.scene.layout.BorderPane; import javafx.scene.layout.HBox; import javafx.scene.layout.Pane; @@ -89,6 +87,33 @@ public class SettingsEditor extends Page controlsBox.getChildren().addAll(controlsLabel, controlsButton); controlsBox.setPadding(new Insets(10)); + Label scaleLabel = new Label("UI Scale"); + + ToggleButton[] scaleOptions = new ToggleButton[4]; + for (int i = 0; i < scaleOptions.length; i++) { + var val = i * 0.5 + 0.5; + ToggleButton tb = new ToggleButton((int)(val * 100) + "%"); + tb.setUserData(val); + tb.getStyleClass().remove("radio-button"); + tb.getStyleClass().add("button"); + if (val == Settings.guiScale.get()) { + tb.setSelected(true); + } + scaleOptions[i] = tb; + } + + ToggleGroup tg = new ToggleGroup(); + tg.getToggles().addAll(scaleOptions); + tg.selectedToggleProperty().addListener((_, _, newt) -> { + Settings.guiScale.set((Double)newt.getUserData()); + }); + + HBox scaleSlider = new HBox(scaleOptions); + + VBox scaleBox = new VBox(scaleLabel, scaleSlider); + scaleBox.getStyleClass().add("box"); + scaleBox.setPadding(new Insets(10)); + Button exit = new Button(); exit.setText("Back"); exit.setOnAction(e -> { @@ -107,9 +132,8 @@ public class SettingsEditor extends Page VBox options = new VBox(); options.setSpacing(10); options.setAlignment(Pos.CENTER); - options.getChildren().addAll(musicBox,SFXBox,fullBox,controlsBox,buttonBox); - options.maxWidthProperty().bind(content.prefWidthProperty().multiply(0.25)); - options.setMinWidth(400); + options.getChildren().addAll(musicBox,SFXBox,fullBox,controlsBox, scaleBox, buttonBox); +// options.setPrefWidth(450); options.prefHeightProperty().bind(content.prefHeightProperty()); content.getChildren().add(options); |