Compare commits
	
		
			No commits in common. "67351642aee3bac62d87155eeb04e494bf3e9da4" and "1e4593afb6e33206f29eee7ed3c24379d301f692" have entirely different histories.
		
	
	
		
			67351642ae
			...
			1e4593afb6
		
	
		
					 21 changed files with 86 additions and 416 deletions
				
			
		
							
								
								
									
										2
									
								
								pom.xml
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								pom.xml
									
									
									
									
									
								
							| 
						 | 
				
			
			@ -8,7 +8,7 @@
 | 
			
		|||
    <name>NS-USBloader</name>
 | 
			
		||||
 | 
			
		||||
    <artifactId>ns-usbloader</artifactId>
 | 
			
		||||
    <version>7.1-SNAPSHOT</version> <!-- linked via script to NSIS system. Should have format of 2 blocks of numbers. May have end on '-SNAPSHOT' -->
 | 
			
		||||
    <version>7.0</version> <!-- linked via script to NSIS system. Should have format of 2 blocks of numbers. May have end on '-SNAPSHOT' -->
 | 
			
		||||
 | 
			
		||||
    <url>https://redrise.ru</url>
 | 
			
		||||
    <description>NS multi-tool</description>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -18,8 +18,6 @@
 | 
			
		|||
*/
 | 
			
		||||
package nsusbloader;
 | 
			
		||||
 | 
			
		||||
import javafx.scene.text.Font;
 | 
			
		||||
 | 
			
		||||
import java.util.Locale;
 | 
			
		||||
import java.util.prefs.Preferences;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -30,7 +28,6 @@ public class AppPreferences {
 | 
			
		|||
    private final Preferences preferences;
 | 
			
		||||
    private final Locale locale;
 | 
			
		||||
    public static final String[] goldleafSupportedVersions = {"v0.5", "v0.7.x", "v0.8-0.9", "v0.10"};
 | 
			
		||||
    private static final Font DEFAULT_FONT = Font.getDefault();
 | 
			
		||||
 | 
			
		||||
    private AppPreferences(){
 | 
			
		||||
        this.preferences = Preferences.userRoot().node("NS-USBloader");
 | 
			
		||||
| 
						 | 
				
			
			@ -155,17 +152,4 @@ public class AppPreferences {
 | 
			
		|||
    public void setPatchesTabInvisible(boolean value){preferences.putBoolean("patches_tab_visible", value);}
 | 
			
		||||
    public String getPatchPattern(String type, int moduleNumber, int offsetId){ return preferences.get(String.format("%s_%02x_%02x", type, moduleNumber, offsetId), ""); }
 | 
			
		||||
    public void setPatchPattern(String fullTypeSpecifier, String offset){ preferences.put(fullTypeSpecifier, offset); }
 | 
			
		||||
 | 
			
		||||
    public String getFontFamily(){ return preferences.get("font_family", DEFAULT_FONT.getFamily()); }
 | 
			
		||||
    public double getFontSize(){ return preferences.getDouble("font_size", DEFAULT_FONT.getSize()); }
 | 
			
		||||
    public String getFontStyle(){
 | 
			
		||||
        final String fontFamily = preferences.get("font_family", DEFAULT_FONT.getFamily());
 | 
			
		||||
        final double fontSize = preferences.getDouble("font_size", DEFAULT_FONT.getSize());
 | 
			
		||||
 | 
			
		||||
        return String.format("-fx-font-family: \"%s\"; -fx-font-size: %.0f;", fontFamily, fontSize);
 | 
			
		||||
    }
 | 
			
		||||
    public void setFontStyle(String fontFamily, double size){
 | 
			
		||||
        preferences.put("font_family", fontFamily);
 | 
			
		||||
        preferences.putDouble("font_size", size);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -87,7 +87,6 @@ public class FilesDropHandle {
 | 
			
		|||
        Scene mainScene = new Scene(parentVBox, 310, 185);
 | 
			
		||||
 | 
			
		||||
        mainScene.getStylesheets().add(AppPreferences.getInstance().getTheme());
 | 
			
		||||
        parentVBox.setStyle(AppPreferences.getInstance().getFontStyle());
 | 
			
		||||
 | 
			
		||||
        stage.setOnHidden(windowEvent -> filesDropHandleTask.cancel(true ) );
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,56 +0,0 @@
 | 
			
		|||
/*
 | 
			
		||||
    Copyright 2019-2023 Dmitry Isaenko
 | 
			
		||||
     
 | 
			
		||||
    This file is part of NS-USBloader.
 | 
			
		||||
 | 
			
		||||
    NS-USBloader is free software: you can redistribute it and/or modify
 | 
			
		||||
    it under the terms of the GNU General Public License as published by
 | 
			
		||||
    the Free Software Foundation, either version 3 of the License, or
 | 
			
		||||
    (at your option) any later version.
 | 
			
		||||
 | 
			
		||||
    NS-USBloader is distributed in the hope that it will be useful,
 | 
			
		||||
    but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
			
		||||
    GNU General Public License for more details.
 | 
			
		||||
 | 
			
		||||
    You should have received a copy of the GNU General Public License
 | 
			
		||||
    along with NS-USBloader.  If not, see <https://www.gnu.org/licenses/>.
 | 
			
		||||
 */
 | 
			
		||||
package nsusbloader.Controllers;
 | 
			
		||||
 | 
			
		||||
import javafx.fxml.FXMLLoader;
 | 
			
		||||
import javafx.scene.Parent;
 | 
			
		||||
import javafx.scene.Scene;
 | 
			
		||||
import javafx.scene.image.Image;
 | 
			
		||||
import javafx.stage.Stage;
 | 
			
		||||
import nsusbloader.AppPreferences;
 | 
			
		||||
 | 
			
		||||
import java.util.ResourceBundle;
 | 
			
		||||
 | 
			
		||||
public class FontSelector {
 | 
			
		||||
    public FontSelector(ResourceBundle resourceBundle) throws Exception{
 | 
			
		||||
        Stage stage = new Stage();
 | 
			
		||||
        stage.setMinWidth(800);
 | 
			
		||||
        stage.setMinHeight(800);
 | 
			
		||||
 | 
			
		||||
        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("/FontSettings.fxml"));
 | 
			
		||||
        fxmlLoader.setResources(resourceBundle);
 | 
			
		||||
 | 
			
		||||
        stage.setTitle(resourceBundle.getString("tab2_Btn_ApplicationFont"));
 | 
			
		||||
        stage.getIcons().addAll(
 | 
			
		||||
                new Image("/res/app_icon32x32.png"),
 | 
			
		||||
                new Image("/res/app_icon48x48.png"),
 | 
			
		||||
                new Image("/res/app_icon64x64.png"),
 | 
			
		||||
                new Image("/res/app_icon128x128.png"));
 | 
			
		||||
 | 
			
		||||
        Parent parent = fxmlLoader.load();
 | 
			
		||||
        Scene fontScene = new Scene(parent, 550, 600);
 | 
			
		||||
 | 
			
		||||
        fontScene.getStylesheets().add(AppPreferences.getInstance().getTheme());
 | 
			
		||||
        parent.setStyle(AppPreferences.getInstance().getFontStyle());
 | 
			
		||||
 | 
			
		||||
        stage.setAlwaysOnTop(true);
 | 
			
		||||
        stage.setScene(fontScene);
 | 
			
		||||
        stage.show();
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,153 +0,0 @@
 | 
			
		|||
/*
 | 
			
		||||
    Copyright 2019-2023 Dmitry Isaenko
 | 
			
		||||
     
 | 
			
		||||
    This file is part of NS-USBloader.
 | 
			
		||||
 | 
			
		||||
    NS-USBloader is free software: you can redistribute it and/or modify
 | 
			
		||||
    it under the terms of the GNU General Public License as published by
 | 
			
		||||
    the Free Software Foundation, either version 3 of the License, or
 | 
			
		||||
    (at your option) any later version.
 | 
			
		||||
 | 
			
		||||
    NS-USBloader is distributed in the hope that it will be useful,
 | 
			
		||||
    but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
			
		||||
    GNU General Public License for more details.
 | 
			
		||||
 | 
			
		||||
    You should have received a copy of the GNU General Public License
 | 
			
		||||
    along with NS-USBloader.  If not, see <https://www.gnu.org/licenses/>.
 | 
			
		||||
 */
 | 
			
		||||
package nsusbloader.Controllers;
 | 
			
		||||
 | 
			
		||||
import javafx.collections.FXCollections;
 | 
			
		||||
import javafx.collections.ObservableList;
 | 
			
		||||
import javafx.fxml.FXML;
 | 
			
		||||
import javafx.fxml.Initializable;
 | 
			
		||||
import javafx.scene.control.*;
 | 
			
		||||
import javafx.scene.text.Font;
 | 
			
		||||
import javafx.scene.text.Text;
 | 
			
		||||
import javafx.stage.Stage;
 | 
			
		||||
import nsusbloader.AppPreferences;
 | 
			
		||||
import nsusbloader.MediatorControl;
 | 
			
		||||
 | 
			
		||||
import java.net.URL;
 | 
			
		||||
import java.util.ResourceBundle;
 | 
			
		||||
 | 
			
		||||
public class FontSettingsController implements Initializable {
 | 
			
		||||
    private final AppPreferences preferences = AppPreferences.getInstance();
 | 
			
		||||
 | 
			
		||||
    @FXML
 | 
			
		||||
    private Button applyBtn, cancelBtn, resetBtn;
 | 
			
		||||
 | 
			
		||||
    @FXML
 | 
			
		||||
    private ListView<String> fontsLv;
 | 
			
		||||
 | 
			
		||||
    @FXML
 | 
			
		||||
    private Spinner<Double> fontSizeSpinner;
 | 
			
		||||
 | 
			
		||||
    @FXML
 | 
			
		||||
    private Text exampleText;
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void initialize(URL url, ResourceBundle resourceBundle) {
 | 
			
		||||
        applyBtn.setDefaultButton(true);
 | 
			
		||||
        applyBtn.getStyleClass().add("buttonUp");
 | 
			
		||||
        applyBtn.setOnAction(e -> applyChanges());
 | 
			
		||||
 | 
			
		||||
        cancelBtn.setCancelButton(true);
 | 
			
		||||
        cancelBtn.setOnAction(e -> closeWindow());
 | 
			
		||||
 | 
			
		||||
        resetBtn.setOnAction(e -> reset());
 | 
			
		||||
 | 
			
		||||
        fontsLv.setCellFactory(item -> getCellFactory());
 | 
			
		||||
        fontsLv.setItems(getFonts());
 | 
			
		||||
        fontsLv.getSelectionModel().select(preferences.getFontFamily());
 | 
			
		||||
        fontsLv.getSelectionModel().selectedIndexProperty().addListener(
 | 
			
		||||
                (observableValue, oldValueNumber, newValueNumber) -> setExampleTextFont());
 | 
			
		||||
        fontsLv.setFixedCellSize(40.0);
 | 
			
		||||
 | 
			
		||||
        fontSizeSpinner.setEditable(false);
 | 
			
		||||
        fontSizeSpinner.setValueFactory(getValueFactory());
 | 
			
		||||
 | 
			
		||||
        exampleText.setText(resourceBundle.getString("fontPreviewText"));
 | 
			
		||||
 | 
			
		||||
        fontSizeSpinner.getValueFactory().setValue(preferences.getFontSize());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private ListCell<String> getCellFactory(){
 | 
			
		||||
        return new ListCell<>(){
 | 
			
		||||
            @Override
 | 
			
		||||
            protected void updateItem(String item, boolean empty) {
 | 
			
		||||
                super.updateItem(item, empty);
 | 
			
		||||
                if (empty || item == null)
 | 
			
		||||
                    return;
 | 
			
		||||
                Font font = Font.font(item);
 | 
			
		||||
                Text itemText = new Text(item);
 | 
			
		||||
                itemText.setFont(font);
 | 
			
		||||
                setGraphic(itemText);
 | 
			
		||||
            }
 | 
			
		||||
        };
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private ObservableList<String> getFonts(){
 | 
			
		||||
        ObservableList<String> fonts = FXCollections.observableArrayList();
 | 
			
		||||
        fonts.addAll(Font.getFamilies());
 | 
			
		||||
 | 
			
		||||
        return fonts;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private SpinnerValueFactory<Double> getValueFactory(){
 | 
			
		||||
        return new SpinnerValueFactory<>() {
 | 
			
		||||
            @Override
 | 
			
		||||
            public void decrement(int i) {
 | 
			
		||||
                double value = getValue() - i;
 | 
			
		||||
                if (value < 4)
 | 
			
		||||
                    return;
 | 
			
		||||
 | 
			
		||||
                setValue(value);
 | 
			
		||||
                setExampleTextFont(value);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            @Override
 | 
			
		||||
            public void increment(int i) {
 | 
			
		||||
                double value = getValue() + i;
 | 
			
		||||
                if (value > 100)
 | 
			
		||||
                    return;
 | 
			
		||||
 | 
			
		||||
                setValue(value);
 | 
			
		||||
                setExampleTextFont(value);
 | 
			
		||||
            }
 | 
			
		||||
        };
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private void setExampleTextFont(){
 | 
			
		||||
        setExampleTextFont(fontsLv.getSelectionModel().getSelectedItem(), fontSizeSpinner.getValue());
 | 
			
		||||
    }
 | 
			
		||||
    private void setExampleTextFont(double size){
 | 
			
		||||
        setExampleTextFont(fontsLv.getSelectionModel().getSelectedItem(), size);
 | 
			
		||||
    }
 | 
			
		||||
    private void setExampleTextFont(String font, double size){
 | 
			
		||||
        exampleText.setFont(Font.font(font, size));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private void reset(){
 | 
			
		||||
        final Font defaultFont = Font.getDefault();
 | 
			
		||||
        exampleText.setFont(defaultFont);
 | 
			
		||||
 | 
			
		||||
        fontsLv.getSelectionModel().select(defaultFont.getFamily());
 | 
			
		||||
        fontSizeSpinner.getValueFactory().setValue(defaultFont.getSize());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private void applyChanges(){
 | 
			
		||||
        final String fontFamily = fontsLv.getSelectionModel().getSelectedItem();
 | 
			
		||||
        final double fontSize = fontSizeSpinner.getValue().intValue();
 | 
			
		||||
 | 
			
		||||
        preferences.setFontStyle(fontFamily, fontSize);
 | 
			
		||||
        MediatorControl.getInstance().updateApplicationFont(fontFamily, fontSize);
 | 
			
		||||
 | 
			
		||||
        closeWindow();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private void closeWindow(){
 | 
			
		||||
        ((Stage) cancelBtn.getScene().getWindow()).close();
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -43,9 +43,6 @@ import java.util.ResourceBundle;
 | 
			
		|||
public class SettingsBlockGenericController implements Initializable {
 | 
			
		||||
    @FXML
 | 
			
		||||
    private ChoiceBox<LocaleHolder> languagesChB;
 | 
			
		||||
    @FXML
 | 
			
		||||
    private Button fontSelectBtn;
 | 
			
		||||
 | 
			
		||||
    @FXML
 | 
			
		||||
    private Button submitLanguageBtn,
 | 
			
		||||
            driversInstallBtn,
 | 
			
		||||
| 
						 | 
				
			
			@ -84,14 +81,6 @@ public class SettingsBlockGenericController implements Initializable {
 | 
			
		|||
        newVersionHyperlink.setOnAction(e-> hostServices.showDocument(newVersionHyperlink.getText()));
 | 
			
		||||
        checkForUpdBtn.setOnAction(e->checkForUpdatesAction());
 | 
			
		||||
        submitLanguageBtn.setOnAction(e->languageButtonAction());
 | 
			
		||||
        fontSelectBtn.setOnAction(e -> openFontSettings());
 | 
			
		||||
    }
 | 
			
		||||
    private void openFontSettings() {
 | 
			
		||||
        try {
 | 
			
		||||
            new FontSelector(resourceBundle);
 | 
			
		||||
        } catch (Exception ex) {
 | 
			
		||||
            throw new RuntimeException(ex);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private void setDriversInstallFeature(){
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -60,8 +60,4 @@ public class MediatorControl {
 | 
			
		|||
        getPatchesController().notifyThreadStarted(isActive, appModuleType);
 | 
			
		||||
    }
 | 
			
		||||
    public synchronized boolean getTransferActive() { return this.isTransferActive.get(); }
 | 
			
		||||
    public void updateApplicationFont(String fontFamily, double fontSize){
 | 
			
		||||
        mainController.logArea.getScene().getRoot().setStyle(
 | 
			
		||||
                String.format("-fx-font-family: \"%s\"; -fx-font-size: %.0f;", fontFamily, fontSize));
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -62,7 +62,6 @@ public class NSLMain extends Application {
 | 
			
		|||
        );
 | 
			
		||||
 | 
			
		||||
        mainScene.getStylesheets().add(AppPreferences.getInstance().getTheme());
 | 
			
		||||
        root.setStyle(AppPreferences.getInstance().getFontStyle());
 | 
			
		||||
 | 
			
		||||
        primaryStage.setScene(mainScene);
 | 
			
		||||
        primaryStage.show();
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -44,6 +44,7 @@ public class ServiceWindow   {
 | 
			
		|||
        alertBox.getDialogPane().setMinWidth(Region.USE_PREF_SIZE);
 | 
			
		||||
        alertBox.getDialogPane().setMinHeight(Region.USE_PREF_SIZE);
 | 
			
		||||
        alertBox.setResizable(true);        // Java bug workaround for JDR11/OpenJFX. TODO: nothing. really.
 | 
			
		||||
        alertBox.getDialogPane().getStylesheets().add(AppPreferences.getInstance().getTheme());
 | 
			
		||||
 | 
			
		||||
        Stage dialogStage = (Stage) alertBox.getDialogPane().getScene().getWindow();
 | 
			
		||||
        dialogStage.setAlwaysOnTop(true);
 | 
			
		||||
| 
						 | 
				
			
			@ -53,9 +54,6 @@ public class ServiceWindow   {
 | 
			
		|||
                new Image("/res/warn_ico64x64.png"),
 | 
			
		||||
                new Image("/res/warn_ico128x128.png")
 | 
			
		||||
        );
 | 
			
		||||
        alertBox.getDialogPane().getStylesheets().add(AppPreferences.getInstance().getTheme());
 | 
			
		||||
        dialogStage.getScene().getRoot().setStyle(AppPreferences.getInstance().getFontStyle());
 | 
			
		||||
 | 
			
		||||
        alertBox.show();
 | 
			
		||||
        dialogStage.toFront();
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			@ -70,6 +68,7 @@ public class ServiceWindow   {
 | 
			
		|||
        alertBox.getDialogPane().setMinWidth(Region.USE_PREF_SIZE);
 | 
			
		||||
        alertBox.getDialogPane().setMinHeight(Region.USE_PREF_SIZE);
 | 
			
		||||
        alertBox.setResizable(true);        // Java bug workaround for JDR11/OpenJFX. TODO: nothing. really.
 | 
			
		||||
        alertBox.getDialogPane().getStylesheets().add(AppPreferences.getInstance().getTheme());
 | 
			
		||||
 | 
			
		||||
        Stage dialogStage = (Stage) alertBox.getDialogPane().getScene().getWindow();
 | 
			
		||||
        dialogStage.setAlwaysOnTop(true);
 | 
			
		||||
| 
						 | 
				
			
			@ -79,10 +78,6 @@ public class ServiceWindow   {
 | 
			
		|||
                new Image("/res/ask_ico64x64.png"),
 | 
			
		||||
                new Image("/res/ask_ico128x128.png")
 | 
			
		||||
        );
 | 
			
		||||
 | 
			
		||||
        alertBox.getDialogPane().getStylesheets().add(AppPreferences.getInstance().getTheme());
 | 
			
		||||
        dialogStage.getScene().getRoot().setStyle(AppPreferences.getInstance().getFontStyle());
 | 
			
		||||
 | 
			
		||||
        dialogStage.toFront();
 | 
			
		||||
 | 
			
		||||
        Optional<ButtonType> result = alertBox.showAndWait();
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -103,7 +103,6 @@ public class DriversInstall {
 | 
			
		|||
        Scene mainScene = new Scene(parentVBox, 405, 155);
 | 
			
		||||
 | 
			
		||||
        mainScene.getStylesheets().add(AppPreferences.getInstance().getTheme());
 | 
			
		||||
        parentVBox.setStyle(AppPreferences.getInstance().getFontStyle());
 | 
			
		||||
 | 
			
		||||
        stage.setOnHidden(windowEvent -> {
 | 
			
		||||
            downloadTask.cancel(true );
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,40 +0,0 @@
 | 
			
		|||
<?xml version="1.0" encoding="UTF-8"?>
 | 
			
		||||
 | 
			
		||||
<?import javafx.geometry.Insets?>
 | 
			
		||||
<?import javafx.scene.control.Button?>
 | 
			
		||||
<?import javafx.scene.control.Label?>
 | 
			
		||||
<?import javafx.scene.control.ListView?>
 | 
			
		||||
<?import javafx.scene.control.Spinner?>
 | 
			
		||||
<?import javafx.scene.layout.AnchorPane?>
 | 
			
		||||
<?import javafx.scene.layout.HBox?>
 | 
			
		||||
<?import javafx.scene.layout.Pane?>
 | 
			
		||||
<?import javafx.scene.layout.VBox?>
 | 
			
		||||
<?import javafx.scene.text.Text?>
 | 
			
		||||
 | 
			
		||||
<AnchorPane prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/18" xmlns:fx="http://javafx.com/fxml/1" fx:controller="nsusbloader.Controllers.FontSettingsController">
 | 
			
		||||
   <children>
 | 
			
		||||
      <VBox layoutX="344.0" layoutY="132.0" prefHeight="200.0" prefWidth="100.0" spacing="5.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
 | 
			
		||||
         <children>
 | 
			
		||||
            <ListView fx:id="fontsLv" prefHeight="200.0" prefWidth="200.0" VBox.vgrow="ALWAYS" />
 | 
			
		||||
            <Text fx:id="exampleText" strokeType="OUTSIDE" strokeWidth="0.0" />
 | 
			
		||||
            <HBox alignment="CENTER_RIGHT" spacing="5.0">
 | 
			
		||||
               <children>
 | 
			
		||||
                  <Label text="%fontSize" wrapText="true" />
 | 
			
		||||
                  <Spinner fx:id="fontSizeSpinner" minWidth="100.0" />
 | 
			
		||||
                  <Pane HBox.hgrow="ALWAYS" />
 | 
			
		||||
                  <Button fx:id="resetBtn" mnemonicParsing="false" text="%btn_ResetToDefaults">
 | 
			
		||||
                     <HBox.margin>
 | 
			
		||||
                        <Insets right="5.0" />
 | 
			
		||||
                     </HBox.margin>
 | 
			
		||||
                  </Button>
 | 
			
		||||
                  <Button fx:id="cancelBtn" mnemonicParsing="false" text="%btn_Cancel" wrapText="true" />
 | 
			
		||||
                  <Button fx:id="applyBtn" mnemonicParsing="false" styleClass="buttonUp" text="%btn_Select" wrapText="true" />
 | 
			
		||||
               </children>
 | 
			
		||||
            </HBox>
 | 
			
		||||
         </children>
 | 
			
		||||
         <padding>
 | 
			
		||||
            <Insets bottom="5.0" left="5.0" right="5.0" top="5.0" />
 | 
			
		||||
         </padding>
 | 
			
		||||
      </VBox>
 | 
			
		||||
   </children>
 | 
			
		||||
</AnchorPane>
 | 
			
		||||
| 
						 | 
				
			
			@ -12,12 +12,21 @@
 | 
			
		|||
<?import javafx.scene.layout.RowConstraints?>
 | 
			
		||||
<?import javafx.scene.layout.VBox?>
 | 
			
		||||
<?import javafx.scene.shape.SVGPath?>
 | 
			
		||||
<?import javafx.scene.text.Font?>
 | 
			
		||||
 | 
			
		||||
<VBox spacing="15.0" xmlns="http://javafx.com/javafx/18" xmlns:fx="http://javafx.com/fxml/1" fx:controller="nsusbloader.Controllers.NxdtController">
 | 
			
		||||
<VBox spacing="15.0" xmlns="http://javafx.com/javafx/8.0.141" xmlns:fx="http://javafx.com/fxml/1" fx:controller="nsusbloader.Controllers.NxdtController">
 | 
			
		||||
   <HBox alignment="CENTER">
 | 
			
		||||
      <children>
 | 
			
		||||
         <Label styleClass="nxdt" text="nx" />
 | 
			
		||||
         <Label styleClass="bold-text" text="dumptool" />
 | 
			
		||||
         <Label styleClass="nxdt" text="nx">
 | 
			
		||||
            <font>
 | 
			
		||||
               <Font name="System Bold" size="18.0" />
 | 
			
		||||
            </font>
 | 
			
		||||
         </Label>
 | 
			
		||||
         <Label text="dumptool">
 | 
			
		||||
            <font>
 | 
			
		||||
               <Font name="System Bold" size="18.0" />
 | 
			
		||||
            </font>
 | 
			
		||||
         </Label>
 | 
			
		||||
      </children>
 | 
			
		||||
   </HBox>
 | 
			
		||||
   <GridPane>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -12,13 +12,18 @@
 | 
			
		|||
<?import javafx.scene.layout.RowConstraints?>
 | 
			
		||||
<?import javafx.scene.layout.VBox?>
 | 
			
		||||
<?import javafx.scene.shape.SVGPath?>
 | 
			
		||||
<?import javafx.scene.text.Font?>
 | 
			
		||||
 | 
			
		||||
<ScrollPane fitToWidth="true" onDragDropped="#handleDrop" onDragOver="#handleDragOver" xmlns="http://javafx.com/javafx/18" xmlns:fx="http://javafx.com/fxml/1" fx:controller="nsusbloader.Controllers.PatchesController">
 | 
			
		||||
<VBox fx:id="patchesToolPane" spacing="15.0">
 | 
			
		||||
   <Pane minHeight="-Infinity" prefHeight="10.0" style="-fx-background-color: linear-gradient(from 41px 34px to 50px 50px, reflect,  #2cd882 40%, transparent  45%);" />
 | 
			
		||||
   <HBox alignment="CENTER">
 | 
			
		||||
      <children>
 | 
			
		||||
         <Label styleClass="bold-text" text="%tabPatches_Lbl_Title" />
 | 
			
		||||
         <Label text="%tabPatches_Lbl_Title">
 | 
			
		||||
            <font>
 | 
			
		||||
               <Font name="System Bold" size="15.0" />
 | 
			
		||||
            </font>
 | 
			
		||||
         </Label>
 | 
			
		||||
      </children>
 | 
			
		||||
   </HBox>
 | 
			
		||||
   <GridPane>
 | 
			
		||||
| 
						 | 
				
			
			@ -50,7 +55,11 @@
 | 
			
		|||
                        </Button>
 | 
			
		||||
                  </children>
 | 
			
		||||
               </HBox>
 | 
			
		||||
                  <Label fx:id="locationFirmwareLbl" disable="true" styleClass="italic-text" textOverrun="LEADING_WORD_ELLIPSIS" />
 | 
			
		||||
                  <Label fx:id="locationFirmwareLbl" disable="true" textOverrun="LEADING_WORD_ELLIPSIS">
 | 
			
		||||
                     <font>
 | 
			
		||||
                        <Font name="System Italic" size="13.0" />
 | 
			
		||||
                     </font>
 | 
			
		||||
                  </Label>
 | 
			
		||||
                  <HBox alignment="CENTER_LEFT" spacing="5.0">
 | 
			
		||||
                     <children>
 | 
			
		||||
                        <Label minHeight="-Infinity" minWidth="-Infinity" text="%tabPatches_Lbl_Atmo" wrapText="true" />
 | 
			
		||||
| 
						 | 
				
			
			@ -63,7 +72,11 @@
 | 
			
		|||
                        </Button>
 | 
			
		||||
                     </children>
 | 
			
		||||
                  </HBox>
 | 
			
		||||
                  <Label fx:id="locationAtmosphereLbl" disable="true" styleClass="italic-text" textOverrun="LEADING_WORD_ELLIPSIS" />
 | 
			
		||||
                  <Label fx:id="locationAtmosphereLbl" disable="true" textOverrun="LEADING_WORD_ELLIPSIS">
 | 
			
		||||
                     <font>
 | 
			
		||||
                        <Font name="System Italic" size="13.0" />
 | 
			
		||||
                     </font>
 | 
			
		||||
                  </Label>
 | 
			
		||||
               </children>
 | 
			
		||||
            </VBox>
 | 
			
		||||
         <Separator prefWidth="200.0" />
 | 
			
		||||
| 
						 | 
				
			
			@ -81,7 +94,10 @@
 | 
			
		|||
                        </Button>
 | 
			
		||||
                     </children>
 | 
			
		||||
                  </HBox>
 | 
			
		||||
                  <Label fx:id="locationKeysLbl" disable="true" styleClass="italic-text" textOverrun="LEADING_WORD_ELLIPSIS" />
 | 
			
		||||
                  <Label fx:id="locationKeysLbl" disable="true" textOverrun="LEADING_WORD_ELLIPSIS">
 | 
			
		||||
                     <font>
 | 
			
		||||
                        <Font name="System Italic" size="13.0" />
 | 
			
		||||
                     </font></Label>
 | 
			
		||||
               </children>
 | 
			
		||||
            </VBox>
 | 
			
		||||
            <VBox spacing="5.0">
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -14,13 +14,18 @@
 | 
			
		|||
<?import javafx.scene.layout.RowConstraints?>
 | 
			
		||||
<?import javafx.scene.layout.VBox?>
 | 
			
		||||
<?import javafx.scene.shape.SVGPath?>
 | 
			
		||||
<?import javafx.scene.text.Font?>
 | 
			
		||||
 | 
			
		||||
<ScrollPane fitToWidth="true" xmlns="http://javafx.com/javafx/18" xmlns:fx="http://javafx.com/fxml/1" fx:controller="nsusbloader.Controllers.RcmController">
 | 
			
		||||
<ScrollPane fitToWidth="true" xmlns="http://javafx.com/javafx/8.0.141" xmlns:fx="http://javafx.com/fxml/1" fx:controller="nsusbloader.Controllers.RcmController">
 | 
			
		||||
<VBox fx:id="rcmToolPane" spacing="15.0">
 | 
			
		||||
   <Pane minHeight="-Infinity" prefHeight="10.0" style="-fx-background-color: linear-gradient(from 41px 34px to 50px 50px, reflect,  #ff1515 40%, transparent  45%);" />
 | 
			
		||||
   <HBox alignment="CENTER">
 | 
			
		||||
      <children>
 | 
			
		||||
         <Label styleClass="bold-text" text="%tabRcm_Lbl_FuseeGelee" />
 | 
			
		||||
         <Label text="%tabRcm_Lbl_FuseeGelee">
 | 
			
		||||
            <font>
 | 
			
		||||
               <Font name="System Bold" size="15.0" />
 | 
			
		||||
            </font>
 | 
			
		||||
         </Label>
 | 
			
		||||
      </children>
 | 
			
		||||
   </HBox>
 | 
			
		||||
   <GridPane>
 | 
			
		||||
| 
						 | 
				
			
			@ -52,7 +57,11 @@
 | 
			
		|||
                           <Label fx:id="payloadFNameLbl1" />
 | 
			
		||||
                        </children>
 | 
			
		||||
                     </HBox>
 | 
			
		||||
                     <Label fx:id="payloadFPathLbl1" disable="true" styleClass="italic-text" />
 | 
			
		||||
                     <Label fx:id="payloadFPathLbl1" disable="true">
 | 
			
		||||
                        <font>
 | 
			
		||||
                           <Font name="System Italic" size="13.0" />
 | 
			
		||||
                        </font>
 | 
			
		||||
                     </Label>
 | 
			
		||||
                  </children>
 | 
			
		||||
               </VBox>
 | 
			
		||||
               <Button fx:id="selPldBtn1" mnemonicParsing="false" onAction="#bntSelectPayloader" styleClass="buttonSelect">
 | 
			
		||||
| 
						 | 
				
			
			@ -77,7 +86,11 @@
 | 
			
		|||
                           <Label fx:id="payloadFNameLbl2" />
 | 
			
		||||
                        </children>
 | 
			
		||||
                     </HBox>
 | 
			
		||||
                     <Label fx:id="payloadFPathLbl2" disable="true" styleClass="italic-text" />
 | 
			
		||||
                     <Label fx:id="payloadFPathLbl2" disable="true">
 | 
			
		||||
                        <font>
 | 
			
		||||
                           <Font name="System Italic" size="13.0" />
 | 
			
		||||
                        </font>
 | 
			
		||||
                     </Label>
 | 
			
		||||
                  </children>
 | 
			
		||||
               </VBox>
 | 
			
		||||
               <Button fx:id="selPldBtn2" mnemonicParsing="false" onAction="#bntSelectPayloader" styleClass="buttonSelect">
 | 
			
		||||
| 
						 | 
				
			
			@ -102,7 +115,11 @@
 | 
			
		|||
                           <Label fx:id="payloadFNameLbl3" />
 | 
			
		||||
                        </children>
 | 
			
		||||
                     </HBox>
 | 
			
		||||
                     <Label fx:id="payloadFPathLbl3" disable="true" styleClass="italic-text" />
 | 
			
		||||
                     <Label fx:id="payloadFPathLbl3" disable="true">
 | 
			
		||||
                        <font>
 | 
			
		||||
                           <Font name="System Italic" size="13.0" />
 | 
			
		||||
                        </font>
 | 
			
		||||
                     </Label>
 | 
			
		||||
                  </children>
 | 
			
		||||
               </VBox>
 | 
			
		||||
               <Button fx:id="selPldBtn3" mnemonicParsing="false" onAction="#bntSelectPayloader" styleClass="buttonSelect">
 | 
			
		||||
| 
						 | 
				
			
			@ -127,7 +144,11 @@
 | 
			
		|||
                           <Label fx:id="payloadFNameLbl4" />
 | 
			
		||||
                        </children>
 | 
			
		||||
                     </HBox>
 | 
			
		||||
                     <Label fx:id="payloadFPathLbl4" disable="true" styleClass="italic-text" />
 | 
			
		||||
                     <Label fx:id="payloadFPathLbl4" disable="true">
 | 
			
		||||
                        <font>
 | 
			
		||||
                           <Font name="System Italic" size="13.0" />
 | 
			
		||||
                        </font>
 | 
			
		||||
                     </Label>
 | 
			
		||||
                  </children>
 | 
			
		||||
               </VBox>
 | 
			
		||||
               <Button fx:id="selPldBtn4" mnemonicParsing="false" onAction="#bntSelectPayloader" styleClass="buttonSelect">
 | 
			
		||||
| 
						 | 
				
			
			@ -152,7 +173,11 @@
 | 
			
		|||
                           <Label fx:id="payloadFNameLbl5" />
 | 
			
		||||
                        </children>
 | 
			
		||||
                     </HBox>
 | 
			
		||||
                     <Label fx:id="payloadFPathLbl5" disable="true" styleClass="italic-text" />
 | 
			
		||||
                     <Label fx:id="payloadFPathLbl5" disable="true">
 | 
			
		||||
                        <font>
 | 
			
		||||
                           <Font name="System Italic" size="13.0" />
 | 
			
		||||
                        </font>
 | 
			
		||||
                     </Label>
 | 
			
		||||
                  </children>
 | 
			
		||||
               </VBox>
 | 
			
		||||
               <Button fx:id="selPldBtn5" mnemonicParsing="false" onAction="#bntSelectPayloader" styleClass="buttonSelect">
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -10,7 +10,7 @@
 | 
			
		|||
<?import javafx.scene.layout.Pane?>
 | 
			
		||||
<?import javafx.scene.layout.VBox?>
 | 
			
		||||
 | 
			
		||||
<VBox spacing="5.0" xmlns="http://javafx.com/javafx/18" xmlns:fx="http://javafx.com/fxml/1" fx:controller="nsusbloader.Controllers.SettingsBlockGenericController">
 | 
			
		||||
<VBox spacing="5.0" xmlns="http://javafx.com/javafx/8.0.141" xmlns:fx="http://javafx.com/fxml/1" fx:controller="nsusbloader.Controllers.SettingsBlockGenericController">
 | 
			
		||||
           <children>
 | 
			
		||||
        <Label text="%tab2_Lbl_ApplicationSettings" />
 | 
			
		||||
              <HBox alignment="CENTER_LEFT" spacing="5.0">
 | 
			
		||||
| 
						 | 
				
			
			@ -28,11 +28,6 @@
 | 
			
		|||
           <Insets left="5.0" />
 | 
			
		||||
        </VBox.margin>
 | 
			
		||||
              </HBox>
 | 
			
		||||
      <Button fx:id="fontSelectBtn" mnemonicParsing="false" text="%tab2_Btn_ApplicationFont">
 | 
			
		||||
         <VBox.margin>
 | 
			
		||||
            <Insets left="5.0" />
 | 
			
		||||
         </VBox.margin>
 | 
			
		||||
      </Button>
 | 
			
		||||
              <HBox>
 | 
			
		||||
                 <children>
 | 
			
		||||
                    <VBox>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -12,14 +12,19 @@
 | 
			
		|||
<?import javafx.scene.layout.Pane?>
 | 
			
		||||
<?import javafx.scene.layout.RowConstraints?>
 | 
			
		||||
<?import javafx.scene.layout.VBox?>
 | 
			
		||||
<?import javafx.scene.text.Font?>
 | 
			
		||||
 | 
			
		||||
<VBox fx:id="smToolPane" onDragDropped="#handleDrop" onDragOver="#handleDragOver" spacing="20.0" xmlns="http://javafx.com/javafx/18" xmlns:fx="http://javafx.com/fxml/1" fx:controller="nsusbloader.Controllers.SplitMergeController">
 | 
			
		||||
<VBox fx:id="smToolPane" onDragDropped="#handleDrop" onDragOver="#handleDragOver" spacing="20.0" xmlns="http://javafx.com/javafx/8.0.141" xmlns:fx="http://javafx.com/fxml/1" fx:controller="nsusbloader.Controllers.SplitMergeController">
 | 
			
		||||
   <VBox spacing="15.0">
 | 
			
		||||
      <children>
 | 
			
		||||
         <Pane minHeight="-Infinity" prefHeight="10.0" style="-fx-background-color: linear-gradient(from 41px 34px to 50px 50px, reflect,  #00c8fc 40%, transparent  45%);" />
 | 
			
		||||
         <HBox alignment="CENTER">
 | 
			
		||||
            <children>
 | 
			
		||||
               <Label styleClass="bold-text" text="%tabSplMrg_Lbl_SplitNMergeTitle" />
 | 
			
		||||
               <Label text="%tabSplMrg_Lbl_SplitNMergeTitle">
 | 
			
		||||
                  <font>
 | 
			
		||||
                     <Font name="System Bold" size="15.0" />
 | 
			
		||||
                  </font>
 | 
			
		||||
               </Label>
 | 
			
		||||
            </children>
 | 
			
		||||
         </HBox>
 | 
			
		||||
         <GridPane>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -91,7 +91,3 @@ tabPatches_Btn_MakeAtmo=Make Loader (Atmosphere)
 | 
			
		|||
tabPatches_Btn_MakeAll=Make all
 | 
			
		||||
tabPatches_ServiceWindowMessageEsFs=Both firmware and keys should be set to generate patches. Otherwise, it's not clear what to patch.
 | 
			
		||||
tabPatches_ServiceWindowMessageLoader=Atmosphere folder should be defined to generate 'Loader' patch.
 | 
			
		||||
tab2_Btn_ApplicationFont=Change application font
 | 
			
		||||
btn_ResetToDefaults=Reset to defaults
 | 
			
		||||
fontPreviewText=Text preview
 | 
			
		||||
fontSize=Font size:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -23,7 +23,7 @@ tab2_Lbl_HostIP=IP \u043A\u043E\u043C\u043F\u044C\u044E\u0442\u0435\u0440\u0430
 | 
			
		|||
tab1_Lbl_NSIP=NS IP:
 | 
			
		||||
tab2_Cb_ValidateNSHostName=\u0412\u0441\u0435\u0433\u0434\u0430 \u043F\u0440\u043E\u0432\u0435\u0440\u044F\u0442\u044C \u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u043E\u0441\u0442\u044C NS IP.
 | 
			
		||||
windowTitleBadIp=IP \u0430\u0434\u0440\u0435\u0441 NS \u043F\u043E\u0445\u043E\u0436\u0435 \u043D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u044B\u0439
 | 
			
		||||
windowBodyBadIp=\u0412\u044B \u0443\u0432\u0435\u0440\u0435\u043D\u044B, \u0447\u0442\u043E IP \u0430\u0434\u0440\u0435\u0441 NS \u0432\u0432\u0435\u0434\u0451\u043D \u0431\u0435\u0437 \u043E\u0448\u0438\u0431\u043E\u043A?
 | 
			
		||||
windowBodyBadIp=\u0412\u044B \u0443\u0432\u0435\u0440\u0435\u043D\u044B \u0447\u0442\u043E IP \u0430\u0434\u0440\u0435\u0441 NS \u0432\u0432\u0435\u0434\u0451\u043D \u0431\u0435\u0437 \u043E\u0448\u0438\u0431\u043E\u043A?
 | 
			
		||||
tab2_Cb_ExpertMode=\u0420\u0435\u0436\u0438\u043C \u044D\u043A\u0441\u043F\u0435\u0440\u0442\u0430 (\u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u0441\u0435\u0442\u0438)
 | 
			
		||||
tab2_Lbl_HostPort=\u043F\u043E\u0440\u0442
 | 
			
		||||
tab2_Cb_AutoDetectIp=\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0442\u044C IP
 | 
			
		||||
| 
						 | 
				
			
			@ -89,9 +89,5 @@ tabPatches_Lbl_Keys=\u041A\u043B\u044E\u0447\u0438:
 | 
			
		|||
tabPatches_Lbl_Title=\u041F\u0430\u0442\u0447\u0438
 | 
			
		||||
tabPatches_ServiceWindowMessageEsFs=\u0414\u043B\u044F \u0441\u043E\u0437\u0434\u0430\u043D\u0438\u044F \u043F\u0430\u0442\u0447\u0435\u0439 \u043D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u043E \u0443\u043A\u0430\u0437\u0430\u0442\u044C \u043A\u0430\u043A \u043F\u0443\u0442\u044C \u043A \u043F\u0440\u043E\u0448\u0438\u0432\u043A\u0435, \u0442\u0430\u043A \u0438 \u043F\u0443\u0442\u044C \u043A \u0444\u0430\u0439\u043B\u0443 \u043A\u043B\u044E\u0447\u0435\u0439. \u0418\u043D\u0430\u0447\u0435 \u043D\u0435 \u043F\u043E\u043D\u044F\u0442\u043D\u043E \u0447\u0442\u043E \u0436\u0435 \u043F\u0430\u0442\u0447\u0438\u0442\u044C.
 | 
			
		||||
tabPatches_ServiceWindowMessageLoader=\u0414\u043B\u044F \u0441\u043E\u0437\u0434\u0430\u043D\u0438\u044F \u043F\u0430\u0442\u0447\u0430 \u00ABLoader\u00BB \u043D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u043E \u0443\u043A\u0430\u0437\u0430\u0442\u044C \u043F\u0443\u0442\u044C \u043A Atmosphere.
 | 
			
		||||
tab2_Btn_ApplicationFont=\u0418\u0437\u043C\u0435\u043D\u0438\u0442\u044C \u0448\u0440\u0438\u0444\u0442 \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F
 | 
			
		||||
btn_ResetToDefaults=\u0421\u0431\u0440\u043E\u0441\u0438\u0442\u044C \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438
 | 
			
		||||
fontPreviewText=\u041F\u0440\u0438\u043C\u0435\u0440 \u0442\u0435\u043A\u0441\u0442\u0430
 | 
			
		||||
fontSize=\u0420\u0430\u0437\u043C\u0435\u0440 \u0448\u0440\u0438\u0444\u0442\u043E\u0432:
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -89,8 +89,4 @@ tabPatches_Lbl_Keys=\u041A\u043B\u044E\u0447\u0456:
 | 
			
		|||
tabPatches_Lbl_Title=\u041F\u0430\u0442\u0447\u0438
 | 
			
		||||
tabPatches_ServiceWindowMessageEsFs=\u0414\u043B\u044F \u0441\u0442\u0432\u043E\u0440\u0435\u043D\u043D\u044F \u043F\u0430\u0442\u0447\u0456\u0432 \u043D\u0435\u043E\u0431\u0445\u0456\u0434\u043D\u043E \u0432\u043A\u0430\u0437\u0430\u0442\u0438 \u044F\u043A \u0448\u043B\u044F\u0445 \u0434\u043E \u043F\u0440\u043E\u0448\u0438\u0432\u043A\u0438, \u0442\u0430\u043A \u0456 \u0434\u043E \u0444\u0430\u0439\u043B\u0443 \u043A\u043B\u044E\u0447\u0456\u0432. \u0411\u043E \u0456\u043D\u0430\u043A\u0448\u0435 \u043D\u0435 \u0437\u0440\u043E\u0437\u0443\u043C\u0456\u043B\u043E \u0449\u043E \u0436 \u0442\u0440\u0435\u0431\u0430 \u043F\u0430\u0442\u0447\u0438\u0442\u0438.
 | 
			
		||||
tabPatches_ServiceWindowMessageLoader=\u0414\u043B\u044F \u0433\u0435\u043D\u0435\u0440\u0430\u0446\u0456\u0457 "Loader"-\u043F\u0430\u0442\u0447\u0443 \u043D\u0435\u043E\u0431\u0445\u0456\u0434\u043D\u043E \u0432\u043A\u0430\u0437\u0430\u0442\u0438 \u0448\u043B\u044F\u0445 \u0434\u043E Atmosphere.
 | 
			
		||||
tab2_Btn_ApplicationFont=\u0417\u043C\u0456\u043D\u0438\u0442\u0438 \u0448\u0440\u0438\u0444\u0442 \u043F\u0440\u043E\u0433\u0440\u0430\u043C\u0438
 | 
			
		||||
btn_ResetToDefaults=C\u043A\u0438\u043D\u0443\u0442\u0438 \u043D\u0430\u043B\u0430\u0448\u0442\u0443\u0432\u0430\u043D\u043D\u044F
 | 
			
		||||
fontPreviewText=\u041F\u0440\u0438\u043A\u043B\u0430\u0434 \u0442\u0435\u043A\u0441\u0442\u0443
 | 
			
		||||
fontSize=\u0420\u043E\u0437\u043C\u0456\u0440 \u0448\u0440\u0438\u0444\u0442\u0456\u0432:
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -5,18 +5,6 @@
 | 
			
		|||
    -fx-background: #2d2d2d;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
Text {
 | 
			
		||||
    -fx-fill: white;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.bold-text{
 | 
			
		||||
    -fx-font-weight: bold;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.italic-text{
 | 
			
		||||
    -fx-font-style: italic;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.button, .buttonUp, .buttonStop, .buttonSelect{
 | 
			
		||||
    -fx-background-color: #4f4f4f;
 | 
			
		||||
    -fx-border-color: #4f4f4f;
 | 
			
		||||
| 
						 | 
				
			
			@ -247,31 +235,21 @@ Text {
 | 
			
		|||
    -fx-border-width: 2;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.list-cell:even,
 | 
			
		||||
.list-cell:even:selected,
 | 
			
		||||
.list-cell:even:filled:selected{
 | 
			
		||||
.list-cell, .list-cell:selected, .list-cell:filled:selected{
 | 
			
		||||
    -fx-background-color: -fx-table-cell-border-color, #424242;
 | 
			
		||||
    -fx-background-insets: 0, 0 0 1 0;
 | 
			
		||||
    -fx-table-cell-border-color: #6d8484;
 | 
			
		||||
}
 | 
			
		||||
.list-cell:odd,
 | 
			
		||||
.list-cell:odd:selected,
 | 
			
		||||
.list-cell:odd:filled:selected{
 | 
			
		||||
.list-cell:odd, .list-cell:odd:selected, .list-cell:odd:filled:selected{
 | 
			
		||||
    -fx-background-color: -fx-table-cell-border-color, #4f4f4f;
 | 
			
		||||
    -fx-background-insets: 0, 0 0 1 0;
 | 
			
		||||
    -fx-table-cell-border-color: #6d8484;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.list-cell .text,
 | 
			
		||||
.list-cell:odd .text,
 | 
			
		||||
.list-cell Text,
 | 
			
		||||
.list-cell:odd Text{
 | 
			
		||||
.list-cell .text, .list-cell:odd .text{
 | 
			
		||||
    -fx-fill: #f7fafa;
 | 
			
		||||
}
 | 
			
		||||
.list-cell:filled:selected .text,
 | 
			
		||||
.list-cell:odd:filled:selected .text,
 | 
			
		||||
.list-cell:filled:selected Text,
 | 
			
		||||
.list-cell:odd:filled:selected Text{
 | 
			
		||||
.list-cell:filled:selected .text, .list-cell:odd:filled:selected .text{
 | 
			
		||||
    -fx-fill: #08f3ff;
 | 
			
		||||
}
 | 
			
		||||
/* -========================== Context menu =====================- */
 | 
			
		||||
| 
						 | 
				
			
			@ -467,7 +445,6 @@ Text {
 | 
			
		|||
}
 | 
			
		||||
.nxdt.label .text {
 | 
			
		||||
    -fx-fill: #cb0010;
 | 
			
		||||
    -fx-font-weight: bold;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.regionWindows {
 | 
			
		||||
| 
						 | 
				
			
			@ -491,39 +468,7 @@ Text {
 | 
			
		|||
    -fx-min-height: -size;
 | 
			
		||||
    -fx-min-width: 24;
 | 
			
		||||
}
 | 
			
		||||
/********************* Spinner  **************************/
 | 
			
		||||
.spinner{
 | 
			
		||||
    -fx-background-color: #4f4f4f;
 | 
			
		||||
    -fx-border-radius: 3;
 | 
			
		||||
    -fx-border-width: 1;
 | 
			
		||||
    -fx-border-color: #4f4f4f;
 | 
			
		||||
    -fx-mark-color: #eea11e;
 | 
			
		||||
    -fx-effect: none;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.spinner .increment-arrow-button,
 | 
			
		||||
.spinner .decrement-arrow-button {
 | 
			
		||||
    -fx-background-radius: 0;
 | 
			
		||||
    -fx-background-color: #4f4f4f;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.spinner .increment-arrow-button:hover .increment-arrow,
 | 
			
		||||
.spinner .decrement-arrow-button:hover .decrement-arrow {
 | 
			
		||||
    -fx-background-color: #ff8000;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.spinner .increment-arrow-button:hover:pressed .increment-arrow,
 | 
			
		||||
.spinner .decrement-arrow-button:hover:pressed .decrement-arrow,
 | 
			
		||||
.spinner .increment-arrow-button:pressed .increment-arrow,
 | 
			
		||||
.spinner .decrement-arrow-button:pressed .decrement-arrow {
 | 
			
		||||
    -fx-background-color: #71e016;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.spinner .increment-arrow-button .increment-arrow,
 | 
			
		||||
.spinner .decrement-arrow-button .decrement-arrow {
 | 
			
		||||
	-fx-background-color: #eea11e;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
//.lineGradient {
 | 
			
		||||
//    -fx-background-color: linear-gradient(from 41px 34px to 50px 50px, reflect,  #00c8fc 30%, transparent  45%);
 | 
			
		||||
//}
 | 
			
		||||
| 
						 | 
				
			
			@ -5,18 +5,6 @@
 | 
			
		|||
    -fx-background: #ebebeb;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
Text {
 | 
			
		||||
    -fx-fill: black;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.bold-text{
 | 
			
		||||
    -fx-font-weight: bold;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.italic-text{
 | 
			
		||||
    -fx-font-style: italic;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.button, .buttonUp, .buttonStop, .buttonSelect{
 | 
			
		||||
    -fx-background-color: #fefefe;
 | 
			
		||||
    -fx-background-insets: 0 0 0 0, 0, 1, 2;
 | 
			
		||||
| 
						 | 
				
			
			@ -265,35 +253,23 @@ Text {
 | 
			
		|||
    -fx-border-width: 2;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.list-cell:even{
 | 
			
		||||
.list-cell, .list-cell:selected, .list-cell:filled:selected{
 | 
			
		||||
    -fx-background-color: -fx-table-cell-border-color, #ebfffe;
 | 
			
		||||
    -fx-background-insets: 0, 0 0 1 0;
 | 
			
		||||
    -fx-table-cell-border-color: #b0b0b0;
 | 
			
		||||
}
 | 
			
		||||
.list-cell:odd{
 | 
			
		||||
.list-cell:odd, .list-cell:odd:selected, .list-cell:odd:filled:selected{
 | 
			
		||||
    -fx-background-color: -fx-table-cell-border-color, #fefefe;
 | 
			
		||||
    -fx-background-insets: 0, 0 0 1 0;
 | 
			
		||||
    -fx-table-cell-border-color: #b0b0b0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.list-cell:even:selected,
 | 
			
		||||
.list-cell:even:filled:selected,
 | 
			
		||||
.list-cell:odd:selected,
 | 
			
		||||
.list-cell:odd:filled:selected{
 | 
			
		||||
    -fx-background-color: -fx-table-cell-border-color, #e4ffde;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.list-cell .text,
 | 
			
		||||
.list-cell:odd .text,
 | 
			
		||||
.list-cell Text,
 | 
			
		||||
.list-cell:odd Text{
 | 
			
		||||
.list-cell .text, .list-cell:odd .text{
 | 
			
		||||
    -fx-fill: #2c2c2c;
 | 
			
		||||
}
 | 
			
		||||
.list-cell:filled:selected .text,
 | 
			
		||||
.list-cell:odd:filled:selected .text,
 | 
			
		||||
.list-cell:filled:selected Text,
 | 
			
		||||
.list-cell:odd:filled:selected Text{
 | 
			
		||||
.list-cell:filled:selected .text, .list-cell:odd:filled:selected .text{
 | 
			
		||||
    -fx-fill: #2c2c2c;
 | 
			
		||||
    -fx-font-weight: bold
 | 
			
		||||
}
 | 
			
		||||
/* -========================= Separator ===================- */
 | 
			
		||||
.separator *.line {
 | 
			
		||||
| 
						 | 
				
			
			@ -387,7 +363,6 @@ Text {
 | 
			
		|||
}
 | 
			
		||||
.nxdt.label .text {
 | 
			
		||||
    -fx-fill: #9d010e;
 | 
			
		||||
    -fx-font-weight: bold;
 | 
			
		||||
}
 | 
			
		||||
.regionWindows {
 | 
			
		||||
    -fx-shape: "M3,12V6.75L9,5.43V11.91L3,12M20,3V11.75L10,11.9V5.21L20,3M3,13L9,13.09V19.9L3,18.75V13M20,13.25V22L10,20.09V13.1L20,13.25Z";
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue