From 0a3ad9a8d8177f22d66e1c9688063b69e4414485 Mon Sep 17 00:00:00 2001 From: David Cole Date: Thu, 22 Jul 2021 19:35:29 -0400 Subject: [PATCH] Added dark mode --- src/main/java/com/BlendGUI.java | 45 +++++++++++++++++++++++++-------- src/main/java/com/dark.css | 26 +++++++++++++++++++ 2 files changed, 61 insertions(+), 10 deletions(-) create mode 100644 src/main/java/com/dark.css diff --git a/src/main/java/com/BlendGUI.java b/src/main/java/com/BlendGUI.java index 7530880..9916b1a 100644 --- a/src/main/java/com/BlendGUI.java +++ b/src/main/java/com/BlendGUI.java @@ -47,8 +47,9 @@ public class BlendGUI extends Application { - Logger log = Logger.getLogger(BlendGUI.class.getSimpleName()); + String currentTheme = "LIGHT"; + Logger log = Logger.getLogger(BlendGUI.class.getSimpleName()); String defaultFont = "Arial"; protected static String currentNick; @@ -147,9 +148,7 @@ public void start(Stage stage) throws Exception { Menu menuFile = new Menu("File"); MenuItem saveItem = new MenuItem("Save"); - saveItem.setOnAction( e -> { - trySave(stage, codeFields); - }); + saveItem.setOnAction( e -> trySave(stage, codeFields)); MenuItem loadItem = new MenuItem("Load"); loadItem.setOnAction( e -> { @@ -166,7 +165,7 @@ public void start(Stage stage) throws Exception { // Menu - Edit - Menu menuEdit = new Menu("Tools"); + Menu menuTools = new Menu("Tools"); MenuItem copyItem = new MenuItem("Copy To Clipboard"); copyItem.setOnAction( e -> { @@ -177,9 +176,11 @@ public void start(Stage stage) throws Exception { } }); - menuEdit.getItems().add(copyItem); + MenuItem programTheme = new MenuItem("Dark Mode"); - menuBar.getMenus().addAll(menuFile, menuEdit); + menuTools.getItems().addAll(copyItem, programTheme); + + menuBar.getMenus().addAll(menuFile, menuTools); VBox mainBox = new VBox(); @@ -296,12 +297,13 @@ public void start(Stage stage) throws Exception { mainBox.getChildren().addAll(codesAndPicker, nickInput, previewCopyPane); - VBox emptyBox = new VBox(); - emptyBox.setMaxSize(0, 0); - Scene mainScene = new Scene(mainBox); ((VBox)mainScene.getRoot()).getChildren().addAll(menuBar); + programTheme.setOnAction(e -> { + changeTheme(programTheme, mainScene); + }); + menuBar.toBack(); mainBox.toFront(); @@ -480,6 +482,29 @@ public String generateRandomHex(){ return rndHex; } + public void changeTheme(MenuItem programTheme, Scene mainScene){ + + if(currentTheme.equals("LIGHT")){ + goDark(mainScene, programTheme); + currentTheme = "DARK"; + } + else{ + goLight(mainScene, programTheme); + currentTheme = "LIGHT"; + } + + } + + public void goDark(Scene mainScene, MenuItem programTheme){ + mainScene.getStylesheets().add(getClass().getResource("dark.css").toString()); + programTheme.setText("Light Mode"); + } + + public void goLight(Scene mainScene, MenuItem programTheme){ + mainScene.getStylesheets().remove(getClass().getResource("dark.css").toString()); + programTheme.setText("Dark Mode"); + } + public static void main(String[] args) { launch(); } diff --git a/src/main/java/com/dark.css b/src/main/java/com/dark.css new file mode 100644 index 0000000..2ab3a99 --- /dev/null +++ b/src/main/java/com/dark.css @@ -0,0 +1,26 @@ +.root { + -fx-base: #3f474f; + -fx-accent: #e7eff7 ; + -fx-default-button: #7f878f ; + -fx-focus-color: #efefef; + -fx-faint-focus-color: #efefef22; + -fx-focused-text-base-color : ladder( + -fx-selection-bar, + -fx-light-text-color 45%, + -fx-dark-text-color 46%, + -fx-dark-text-color 59%, + -fx-mid-text-color 60% + ); + -fx-focused-mark-color : -fx-focused-text-base-color ; + +} + +.text-input:focused { + -fx-highlight-text-fill: ladder( + -fx-highlight-fill, + -fx-light-text-color 45%, + -fx-dark-text-color 46%, + -fx-dark-text-color 59%, + -fx-mid-text-color 60% + ); +} \ No newline at end of file