From 1ef37aa224d9c3ebeebd53d3133e0187e7605efa Mon Sep 17 00:00:00 2001 From: Dmitry Isaenko Date: Thu, 17 Oct 2019 07:20:10 +0300 Subject: [PATCH] Game Button UI drafts added; refactoring wired moments. --- .../Controllers/GameModeController.java | 47 +++ .../java/logiled/Controllers/LoCodepage.java | 118 ++++++ .../java/logiled/Controllers/LoEffects.java | 2 +- .../logiled/Controllers/MainController.java | 13 + .../java/logiled/Controllers/RuleBox.java | 134 +------ src/main/java/logiled/USB/EffectsThread.java | 4 +- src/main/java/logiled/USB/GameModeThread.java | 7 +- src/main/java/logiled/USB/KeyLedThread.java | 11 +- src/main/resources/GameModePane.fxml | 338 ++++++++++++++++++ src/main/resources/Main.fxml | 12 + src/main/resources/light.css | 32 +- src/main/resources/locale.properties | 1 + src/main/resources/locale_rus.properties | 1 + 13 files changed, 586 insertions(+), 134 deletions(-) create mode 100644 src/main/java/logiled/Controllers/GameModeController.java create mode 100644 src/main/java/logiled/Controllers/LoCodepage.java create mode 100644 src/main/resources/GameModePane.fxml diff --git a/src/main/java/logiled/Controllers/GameModeController.java b/src/main/java/logiled/Controllers/GameModeController.java new file mode 100644 index 0000000..8edd318 --- /dev/null +++ b/src/main/java/logiled/Controllers/GameModeController.java @@ -0,0 +1,47 @@ +package logiled.Controllers; + +import javafx.event.ActionEvent; +import javafx.fxml.FXML; +import javafx.fxml.Initializable; +import javafx.scene.control.Button; +import javafx.scene.control.ToggleButton; + +import java.net.URL; +import java.util.*; + +public class GameModeController implements Initializable { + + @FXML + private Button resetBtn; + + private List keySet; + + + @Override + public void initialize(URL url, ResourceBundle resourceBundle) { + keySet = new ArrayList<>(); + resetBtn.setOnAction(ActionEvent -> { + for (String keyID : keySet) { + ((ToggleButton) resetBtn.getScene().lookup("#"+keyID)).setSelected(false); + } + keySet.clear(); + }); + } + + @FXML + private void toggleBntAction(ActionEvent event) { + ToggleButton btn = (ToggleButton) event.getSource(); + if (btn.isSelected()) + keySet.add(btn.getId()); + else + keySet.remove(btn.getId()); + } + + public List getKeys() { + List listCodes = new ArrayList<>(); + for (String keyId : keySet) + listCodes.add(LoCodepage.valueOf(keyId).getValue()); + + return listCodes; + } +} \ No newline at end of file diff --git a/src/main/java/logiled/Controllers/LoCodepage.java b/src/main/java/logiled/Controllers/LoCodepage.java new file mode 100644 index 0000000..005d95d --- /dev/null +++ b/src/main/java/logiled/Controllers/LoCodepage.java @@ -0,0 +1,118 @@ +package logiled.Controllers; + +public enum LoCodepage { + l_game ((byte) 0x2), + l_caps ((byte) 0x3), + k_a ((byte) 0x4), + k_b ((byte) 0x5), + k_c ((byte) 0x6), + k_d ((byte) 0x7), + k_e ((byte) 0x8), + k_f ((byte) 0x9), + k_g ((byte) 0xA), + k_h ((byte) 0xB), + k_i ((byte) 0xC), + k_j ((byte) 0xD), + k_k ((byte) 0xE), + k_l ((byte) 0xF), + k_m ((byte) 0x10), + k_n ((byte) 0x11), + k_o ((byte) 0x12), + k_p ((byte) 0x13), + k_q ((byte) 0x14), + k_r ((byte) 0x15), + k_s ((byte) 0x16), + k_t ((byte) 0x17), + k_u ((byte) 0x18), + k_v ((byte) 0x19), + k_w ((byte) 0x1A), + k_x ((byte) 0x1B), + k_y ((byte) 0x1C), + k_z ((byte) 0x1D), + k_1 ((byte) 0x1E), + k_2 ((byte) 0x1F), + k_3 ((byte) 0x20), + k_4 ((byte) 0x21), + k_5 ((byte) 0x22), + k_6 ((byte) 0x23), + k_7 ((byte) 0x24), + k_8 ((byte) 0x25), + k_9 ((byte) 0x26), + k_0 ((byte) 0x27), + k_enter ((byte) 0x28), + k_esc ((byte) 0x29), + k_backspace ((byte) 0x2a), + k_tab ((byte) 0x2b), + k_space ((byte) 0x2c), + k_dash ((byte) 0x2d), + k_equal ((byte) 0x2e), + k_bracket_open ((byte) 0x2f), + k_bracket_close ((byte) 0x30), + k_backslash ((byte) 0x32), + k_semicolon ((byte) 0x33), + k_quotation ((byte) 0x34), + k_tilde ((byte) 0x35), + k_comma ((byte) 0x36), + k_dot ((byte) 0x37), + k_shash ((byte) 0x38), + k_caps ((byte) 0x39), + k_f1 ((byte) 0x3a), + k_f2 ((byte) 0x3b), + k_f3 ((byte) 0x3c), + k_f4 ((byte) 0x3d), + k_f5 ((byte) 0x3e), + k_f6 ((byte) 0x3f), + k_f7 ((byte) 0x40), + k_f8 ((byte) 0x41), + k_f9 ((byte) 0x42), + k_f10 ((byte) 0x43), + k_f11 ((byte) 0x44), + k_f12 ((byte) 0x45), + k_prtscr ((byte) 0x46), + k_scrl ((byte) 0x47), + k_pause ((byte) 0x48), + k_ins ((byte) 0x49), + k_home ((byte) 0x4a), + k_pg_up ((byte) 0x4b), + k_del ((byte) 0x4c), + k_end ((byte) 0x4d), + k_pg_dn ((byte) 0x4e), + k_arr_right ((byte) 0x4f), + k_arr_left ((byte) 0x50), + k_arr_down ((byte) 0x51), + k_arr_up ((byte) 0x52), + k_num ((byte) 0x53), + k_num_slash ((byte) 0x54), + k_num_asterisk ((byte) 0x55), + k_num_minus ((byte) 0x56), + k_num_plus ((byte) 0x57), + k_num_enter ((byte) 0x58), + k_num_1 ((byte) 0x59), + k_num_2 ((byte) 0x5a), + k_num_3 ((byte) 0x5b), + k_num_4 ((byte) 0x5c), + k_num_5 ((byte) 0x5d), + k_num_6 ((byte) 0x5e), + k_num_7 ((byte) 0x5f), + k_num_8 ((byte) 0x60), + k_num_9 ((byte) 0x61), + k_num_0 ((byte) 0x62), + k_num_period ((byte) 0x63), + k_menu ((byte) 0x65), + k_l_ctrl ((byte) 0xe0), + k_l_shift ((byte) 0xe1), + k_l_alt ((byte) 0xe2), + k_win ((byte) 0xe3), + k_r_ctrl ((byte) 0xe4), + k_r_shift ((byte) 0xe5), + k_r_alt ((byte) 0xe6), + k_fn ((byte) 0xe7); + + private final byte value; + + LoCodepage(byte value){ + this.value = value; + } + + public byte getValue() { return value; } +} diff --git a/src/main/java/logiled/Controllers/LoEffects.java b/src/main/java/logiled/Controllers/LoEffects.java index 828cc86..f369548 100644 --- a/src/main/java/logiled/Controllers/LoEffects.java +++ b/src/main/java/logiled/Controllers/LoEffects.java @@ -15,7 +15,7 @@ public enum LoEffects { private final byte value; - private LoEffects(byte value){ + LoEffects(byte value){ this.value = value; } diff --git a/src/main/java/logiled/Controllers/MainController.java b/src/main/java/logiled/Controllers/MainController.java index 18378ac..d9b576e 100644 --- a/src/main/java/logiled/Controllers/MainController.java +++ b/src/main/java/logiled/Controllers/MainController.java @@ -6,6 +6,7 @@ import javafx.scene.control.*; import logiled.About.AboutWindow; import logiled.MessagesConsumer; import logiled.USB.EffectsThread; +import logiled.USB.GameModeThread; import logiled.USB.KeyLedThread; import java.net.URL; @@ -20,6 +21,9 @@ public class MainController implements Initializable { @FXML private EffectsController EffectsController; + @FXML + private GameModeController GameModeController; + @FXML private TabPane MainTabPane; /* @@ -59,6 +63,15 @@ public class MainController implements Initializable { commThread.setDaemon(true); commThread.start(); } + else { // Consider as GameMode; refactor in case more tabs added. + List disKeysList = GameModeController.getKeys(); + if (disKeysList.isEmpty()) + return; + GameModeThread gameModeThread = new GameModeThread(disKeysList); + Thread commThread = new Thread(gameModeThread); + commThread.setDaemon(true); + commThread.start(); + } }); } } diff --git a/src/main/java/logiled/Controllers/RuleBox.java b/src/main/java/logiled/Controllers/RuleBox.java index 81560eb..b07c847 100644 --- a/src/main/java/logiled/Controllers/RuleBox.java +++ b/src/main/java/logiled/Controllers/RuleBox.java @@ -11,14 +11,14 @@ import javafx.scene.paint.Color; import java.util.*; -public class RuleBox extends HBox { // todo: add class to selected toggle user data; provide interface to add buttons to selected toggle +class RuleBox extends HBox { // todo: add class to selected toggle user data; provide interface to add buttons to selected toggle private final static ToggleGroup radioGroup = new ToggleGroup(); /** * Get object (rule) that is currently selected * */ - public static RuleBox getSelected(){ + static RuleBox getSelected(){ Toggle selectedToggle; if ((selectedToggle = radioGroup.getSelectedToggle()) == null) return null; @@ -28,7 +28,7 @@ public class RuleBox extends HBox { // todo: add class to selected toggle user * Select rule * @param box : the rule that has to be selected. * */ - public static void select(RuleBox box){ + static void select(RuleBox box){ box.radBtn.setSelected(true); } @@ -36,121 +36,7 @@ public class RuleBox extends HBox { // todo: add class to selected toggle user private final ColorPicker colorPicker; private final RadioButton radBtn; - private static final Map LoCodepage; - - static { - Map stMap = new HashMap<>(); - stMap.put("l_game", ((byte) 0x2)); - stMap.put("l_caps",((byte) 0x3)); - stMap.put("k_a",((byte) 0x4)); - stMap.put("k_b",((byte) 0x5)); - stMap.put("k_c",((byte) 0x6)); - stMap.put("k_d",((byte) 0x7)); - stMap.put("k_e",((byte) 0x8)); - stMap.put("k_f",((byte) 0x9)); - stMap.put("k_g",((byte) 0xA)); - stMap.put("k_h",((byte) 0xB)); - stMap.put("k_i",((byte) 0xC)); - stMap.put("k_j",((byte) 0xD)); - stMap.put("k_k",((byte) 0xE)); - stMap.put("k_l",((byte) 0xF)); - stMap.put("k_m",((byte) 0x10)); - stMap.put("k_n",((byte) 0x11)); - stMap.put("k_o",((byte) 0x12)); - stMap.put("k_p",((byte) 0x13)); - stMap.put("k_q",((byte) 0x14)); - stMap.put("k_r",((byte) 0x15)); - stMap.put("k_s",((byte) 0x16)); - stMap.put("k_t",((byte) 0x17)); - stMap.put("k_u",((byte) 0x18)); - stMap.put("k_v",((byte) 0x19)); - stMap.put("k_w",((byte) 0x1A)); - stMap.put("k_x",((byte) 0x1B)); - stMap.put("k_y",((byte) 0x1C)); - stMap.put("k_z",((byte) 0x1D)); - stMap.put("k_1",((byte) 0x1E)); - stMap.put("k_2",((byte) 0x1F)); - stMap.put("k_3",((byte) 0x20)); - stMap.put("k_4",((byte) 0x21)); - stMap.put("k_5",((byte) 0x22)); - stMap.put("k_6",((byte) 0x23)); - stMap.put("k_7",((byte) 0x24)); - stMap.put("k_8",((byte) 0x25)); - stMap.put("k_9",((byte) 0x26)); - stMap.put("k_0",((byte) 0x27)); - stMap.put("k_enter",((byte) 0x28)); - stMap.put("k_esc",((byte) 0x29)); - stMap.put("k_backspace",((byte) 0x2a)); - stMap.put("k_tab",((byte) 0x2b)); - stMap.put("k_space",((byte) 0x2c)); - stMap.put("k_dash",((byte) 0x2d)); - stMap.put("k_equal",((byte) 0x2e)); - stMap.put("k_bracket_open",((byte) 0x2f)); - stMap.put("k_bracket_close",((byte) 0x30)); - stMap.put("k_backslash",((byte) 0x32)); - stMap.put("k_semicolon",((byte) 0x33)); - stMap.put("k_quotation",((byte) 0x34)); - stMap.put("k_tilde",((byte) 0x35)); - stMap.put("k_comma",((byte) 0x36)); - stMap.put("k_dot",((byte) 0x37)); - stMap.put("k_shash",((byte) 0x38)); - stMap.put("k_caps",((byte) 0x39)); - stMap.put("k_f1",((byte) 0x3a)); - stMap.put("k_f2",((byte) 0x3b)); - stMap.put("k_f3",((byte) 0x3c)); - stMap.put("k_f4",((byte) 0x3d)); - stMap.put("k_f5",((byte) 0x3e)); - stMap.put("k_f6",((byte) 0x3f)); - stMap.put("k_f7",((byte) 0x40)); - stMap.put("k_f8",((byte) 0x41)); - stMap.put("k_f9",((byte) 0x42)); - stMap.put("k_f10",((byte) 0x43)); - stMap.put("k_f11",((byte) 0x44)); - stMap.put("k_f12",((byte) 0x45)); - stMap.put("k_prtscr",((byte) 0x46)); - stMap.put("k_scrl",((byte) 0x47)); - stMap.put("k_pause",((byte) 0x48)); - stMap.put("k_ins",((byte) 0x49)); - stMap.put("k_home",((byte) 0x4a)); - stMap.put("k_pg_up",((byte) 0x4b)); - stMap.put("k_del",((byte) 0x4c)); - stMap.put("k_end",((byte) 0x4d)); - stMap.put("k_pg_dn",((byte) 0x4e)); - stMap.put("k_arr_right",((byte) 0x4f)); - stMap.put("k_arr_left",((byte) 0x50)); - stMap.put("k_arr_down",((byte) 0x51)); - stMap.put("k_arr_up",((byte) 0x52)); - stMap.put("k_num",((byte) 0x53)); - stMap.put("k_num_slash",((byte) 0x54)); - stMap.put("k_num_asterisk",((byte) 0x55)); - stMap.put("k_num_minus",((byte) 0x56)); - stMap.put("k_num_plus",((byte) 0x57)); - stMap.put("k_num_enter",((byte) 0x58)); - stMap.put("k_num_1",((byte) 0x59)); - stMap.put("k_num_2",((byte) 0x5a)); - stMap.put("k_num_3",((byte) 0x5b)); - stMap.put("k_num_4",((byte) 0x5c)); - stMap.put("k_num_5",((byte) 0x5d)); - stMap.put("k_num_6",((byte) 0x5e)); - stMap.put("k_num_7",((byte) 0x5f)); - stMap.put("k_num_8",((byte) 0x60)); - stMap.put("k_num_9",((byte) 0x61)); - stMap.put("k_num_0",((byte) 0x62)); - stMap.put("k_num_period",((byte) 0x63)); - stMap.put("k_menu",((byte) 0x65)); - stMap.put("k_l_ctrl",((byte) 0xe0)); - stMap.put("k_l_shift",((byte) 0xe1)); - stMap.put("k_l_alt",((byte) 0xe2)); - stMap.put("k_win",((byte) 0xe3)); - stMap.put("k_r_ctrl",((byte) 0xe4)); - stMap.put("k_r_shift",((byte) 0xe5)); - stMap.put("k_r_alt",((byte) 0xe6)); - stMap.put("k_fn",((byte) 0xe7)); - - LoCodepage = Collections.unmodifiableMap(stMap); - } - - public RuleBox(){ + RuleBox(){ super(); Insets insets = new Insets(3.0, 3.0, 3.0, 3.0); // Radio button for selecting rule @@ -187,7 +73,7 @@ public class RuleBox extends HBox { // todo: add class to selected toggle user /** * Prepare this object to be deleted: release all buttons used etc. * */ - public void wipe(){ + void wipe(){ for (Node node : flowPaneBox.getChildren()) { Button key = (Button) ((Object[]) node.getUserData())[0]; key.setStyle(""); @@ -197,7 +83,7 @@ public class RuleBox extends HBox { // todo: add class to selected toggle user /** * Add button to UI (appears for current rule) * */ - public void addKey(Button keyBtn){ + void addKey(Button keyBtn){ keyBtn.setDisable(true); keyBtn.setStyle( @@ -222,7 +108,7 @@ public class RuleBox extends HBox { // todo: add class to selected toggle user /** * Get information about this rule (keys) * */ - public byte[][] getKeyCodes(){ + byte[][] getKeyCodes(){ final List keysList = new ArrayList<>(); final byte red = (byte) (colorPicker.getValue().getRed()*255); @@ -235,7 +121,7 @@ public class RuleBox extends HBox { // todo: add class to selected toggle user if (id.startsWith("l_")) continue; byte[] keyInfo = new byte[4]; // Where 0 - special key/indicator code; 1 - red; 2 - green; 3 - blue - keyInfo[0] = LoCodepage.get(id); + keyInfo[0] = LoCodepage.valueOf(id).getValue(); keyInfo[1] = red; keyInfo[2] = green; keyInfo[3] = blue; @@ -250,7 +136,7 @@ public class RuleBox extends HBox { // todo: add class to selected toggle user /** * Get information about this rule (Leds) * */ - public byte[][] getLedCodes(){ + byte[][] getLedCodes(){ final List ledList = new ArrayList<>(); final byte red = (byte) (colorPicker.getValue().getRed()*255); @@ -263,7 +149,7 @@ public class RuleBox extends HBox { // todo: add class to selected toggle user if (id.startsWith("k_")) continue; byte[] keyInfo = new byte[4]; // Where 0 - special key/indicator code; 1 - red; 2 - green; 3 - blue - keyInfo[0] = LoCodepage.get(id); + keyInfo[0] = LoCodepage.valueOf(id).getValue(); keyInfo[1] = red; keyInfo[2] = green; keyInfo[3] = blue; diff --git a/src/main/java/logiled/USB/EffectsThread.java b/src/main/java/logiled/USB/EffectsThread.java index b4ada53..2c20b8c 100644 --- a/src/main/java/logiled/USB/EffectsThread.java +++ b/src/main/java/logiled/USB/EffectsThread.java @@ -1,6 +1,7 @@ package logiled.USB; import logiled.Controllers.LoEffects; +import logiled.MessagesConsumer; import java.util.HashMap; @@ -61,7 +62,8 @@ public class EffectsThread extends LoThread implements Runnable{ handler = usbConnect.getHandlerKbrd(); - write(command); + if (! write(command)) + MessagesConsumer.getInstance().inform("Complete!"); usbConnect.close(); } diff --git a/src/main/java/logiled/USB/GameModeThread.java b/src/main/java/logiled/USB/GameModeThread.java index 0f7294c..e4ee1ab 100644 --- a/src/main/java/logiled/USB/GameModeThread.java +++ b/src/main/java/logiled/USB/GameModeThread.java @@ -1,5 +1,7 @@ package logiled.USB; +import logiled.MessagesConsumer; + import java.util.List; public class GameModeThread extends LoThread implements Runnable{ @@ -23,6 +25,7 @@ public class GameModeThread extends LoThread implements Runnable{ @Override public void run() { + /* if (command == null) return; @@ -33,9 +36,11 @@ public class GameModeThread extends LoThread implements Runnable{ handler = usbConnect.getHandlerKbrd(); - write(command); + if (! write(command)) + MessagesConsumer.getInstance().inform("Complete!"); usbConnect.close(); + */ } } diff --git a/src/main/java/logiled/USB/KeyLedThread.java b/src/main/java/logiled/USB/KeyLedThread.java index 6fd504e..218a1fe 100644 --- a/src/main/java/logiled/USB/KeyLedThread.java +++ b/src/main/java/logiled/USB/KeyLedThread.java @@ -1,5 +1,7 @@ package logiled.USB; +import logiled.MessagesConsumer; + import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; @@ -87,9 +89,16 @@ public class KeyLedThread extends LoThread implements Runnable{ handler = usbConnect.getHandlerKbrd(); + boolean notFailed = true; + for (byte[] cmd : keyLedCommands) - if (write(cmd)) + if (write(cmd)){ + notFailed = false; break; + } + + if (notFailed) + MessagesConsumer.getInstance().inform("Complete!"); usbConnect.close(); } diff --git a/src/main/resources/GameModePane.fxml b/src/main/resources/GameModePane.fxml new file mode 100644 index 0000000..75b3e2c --- /dev/null +++ b/src/main/resources/GameModePane.fxml @@ -0,0 +1,338 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/Main.fxml b/src/main/resources/Main.fxml index 891af10..0e522b3 100644 --- a/src/main/resources/Main.fxml +++ b/src/main/resources/Main.fxml @@ -125,6 +125,18 @@ + + + + + + + + + + + + diff --git a/src/main/resources/light.css b/src/main/resources/light.css index 7060911..41a9468 100644 --- a/src/main/resources/light.css +++ b/src/main/resources/light.css @@ -1,8 +1,8 @@ .root{ -fx-background: #ebebeb; } - -.button { +/* -======================== Buttons =====================- */ +.button, .toggle-button { -fx-background-color: #fefefe; -fx-border-color: #fefefe; -fx-border-radius: 3; @@ -10,7 +10,7 @@ -fx-text-fill: #2c2c2c; -fx-effect: dropshadow(three-pass-box, #cccccc, 2, 0, 0, 0); } -.button:hover, .choice-box:hover, .button:focused:hover, .choice-box:focused:hover{ +.button:hover, .choice-box:hover, .button:focused:hover, .choice-box:focused:hover, .toggle-button:hover, .toggle-button:focused:hover{ -fx-background-color: #fefefe; -fx-border-color: #00caca; -fx-border-radius: 3; @@ -18,7 +18,7 @@ -fx-text-fill: #2c2c2c; -fx-effect: dropshadow(three-pass-box, #00caca, 2, 0, 0, 0); } -.button:focused, .choice-box:focused{ +.button:focused, .choice-box:focused, .toggle-button:focused{ -fx-background-color: #cccccc; -fx-border-color: #cccccc; -fx-border-radius: 3; @@ -27,7 +27,7 @@ -fx-effect: dropshadow(three-pass-box, #cccccc, 2, 0, 0, 0); } -.button:pressed, .button:pressed:hover{ +.button:pressed, .button:pressed:hover, .toggle-button:pressed, .toggle-button:pressed:hover{ -fx-background-color: #fefefe; -fx-border-color: #e82382; -fx-border-radius: 3; @@ -35,7 +35,27 @@ -fx-text-fill: #2c2c2c; -fx-effect: dropshadow(three-pass-box, #e82382, 2, 0, 0, 0); } -/* -========================+ TextArea =====================- */ + +.toggle-button:selected, .toggle-button:selected:hover{ + -fx-background-color: #e1feeb; + -fx-border-color: #ccfed1; + -fx-border-radius: 3; + -fx-border-width: 2; + -fx-text-fill: #2c2c2c; + -fx-effect: dropshadow(three-pass-box, #cccccc, 2, 0, 0, 0); +} + +.always_off_button:disabled, .always_off_button:disabled:selected { + -fx-opacity: 1.0; + -fx-background-color: #fee9f8; + -fx-border-color: #fed6fe; + -fx-border-radius: 3; + -fx-border-width: 2; + -fx-text-fill: #2c2c2c; + -fx-effect: dropshadow(three-pass-box, #cccccc, 2, 0, 0, 0); +} + +/* -======================== TextArea =====================- */ .text-area{ -fx-background-color: transparent; -fx-control-inner-background: #fefefe; diff --git a/src/main/resources/locale.properties b/src/main/resources/locale.properties index d1f53f5..26b0a51 100644 --- a/src/main/resources/locale.properties +++ b/src/main/resources/locale.properties @@ -693,3 +693,4 @@ effect_wave_center_to_edge=Wave from center to edges effect_wave_horizontal_reverse=Wave horizontal (reverse) effect_wave_vertical_reverse=Wave vertical (reverse) effect_wave_edge_to_center=Wave from edges to center +btn_reset=Reset diff --git a/src/main/resources/locale_rus.properties b/src/main/resources/locale_rus.properties index 1b24fdb..52e226c 100644 --- a/src/main/resources/locale_rus.properties +++ b/src/main/resources/locale_rus.properties @@ -19,3 +19,4 @@ effect_wave_vertical=Волна вертикальная effect_wave_vertical_reverse=Волна вертикальная (обратная) effect_wave_center_to_edge=Волна от центра к краям effect_wave_edge_to_center=Волна от краёв к центру +btn_reset=Сбросить