aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/net/sowgro/npehero/gui
diff options
context:
space:
mode:
authorsowgro <tpoke.ferrari@gmail.com>2024-09-05 22:27:14 -0400
committersowgro <tpoke.ferrari@gmail.com>2024-09-05 22:27:14 -0400
commita645b476202bd5b44ab5c22253a70269409b5674 (patch)
tree39a45622e6b9e8325a7bf13f626b902e7fed0a65 /src/main/java/net/sowgro/npehero/gui
parentd685d397573c43194fede9b2bbd3aee76d2cd9f8 (diff)
downloadNPEhero-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-xsrc/main/java/net/sowgro/npehero/gui/SettingsEditor.java36
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);