From 0b762eba0d09502010ae182842b671cb16f40a4a Mon Sep 17 00:00:00 2001 From: 0xb00bface <0xboobface@gmail.com> Date: Sun, 22 Aug 2021 11:16:46 +0200 Subject: [PATCH] Add combobox to select a font ... no actual functionality behinfd it, yet --- .../java/ctbrec/ui/settings/SettingsTab.java | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/client/src/main/java/ctbrec/ui/settings/SettingsTab.java b/client/src/main/java/ctbrec/ui/settings/SettingsTab.java index d3d692f9..8bf86c6e 100644 --- a/client/src/main/java/ctbrec/ui/settings/SettingsTab.java +++ b/client/src/main/java/ctbrec/ui/settings/SettingsTab.java @@ -50,11 +50,14 @@ import javafx.beans.property.SimpleLongProperty; import javafx.beans.property.SimpleStringProperty; import javafx.beans.value.ObservableValue; import javafx.collections.FXCollections; +import javafx.collections.ObservableList; import javafx.geometry.Insets; import javafx.geometry.Pos; import javafx.scene.Node; import javafx.scene.control.Button; +import javafx.scene.control.ComboBox; import javafx.scene.control.Label; +import javafx.scene.control.ListCell; import javafx.scene.control.Tab; import javafx.scene.control.TextInputDialog; import javafx.scene.layout.Background; @@ -68,6 +71,7 @@ import javafx.scene.layout.GridPane; import javafx.scene.layout.Region; import javafx.scene.layout.StackPane; import javafx.scene.paint.Color; +import javafx.scene.text.Font; import javafx.util.Duration; public class SettingsTab extends Tab implements TabSelectionListener { @@ -229,6 +233,8 @@ public class SettingsTab extends Tab implements TabSelectionListener { Setting.of("Total model count in title", totalModelCountInTitle, "Show the total number of models in the title bar"), Setting.of("Start Tab", startTab), Setting.of("Colors (Base / Accent)", new ColorSettingsPane(Config.getInstance())).needsRestart() + //, + //Setting.of("Font", buildFontFaceCombo()).needsRestart() ), Group.of("Player", Setting.of("Player", mediaPlayer), @@ -611,4 +617,29 @@ public class SettingsTab extends Tab implements TabSelectionListener { }; } } + + private ComboBox buildFontFaceCombo() { + ObservableList lst = FXCollections.observableList(javafx.scene.text.Font.getFamilies()); + ComboBox cb = new ComboBox<>(lst); + cb.getSelectionModel().select(0); + cb.setCellFactory((listview -> new ListCell() { + @Override + protected void updateItem(String family, boolean empty) { + super.updateItem(family, empty); + if (empty) { + setText(null); + } else { + setFont(Font.font(family)); + setText(family); + } + } + })); + cb.setOnAction(evt -> { + // TODO write a css file with the font setting + // System.out.println(evt); + // Font font = Font.font(cb.getSelectionModel().getSelectedItem()); + // SettingsTab.this.getTabPane().getScene().getStylesheets().add(".root {-fx-font: 24 '" + font.getFamily() + "';}"); + }); + return cb; + } }