mirror of
https://github.com/sparrowwallet/sparrow.git
synced 2024-11-04 21:36:45 +00:00
set monospace font explicitly, add stage icons
This commit is contained in:
parent
ba017b2fcb
commit
fa0c74f06b
35 changed files with 78 additions and 38 deletions
|
@ -46,6 +46,7 @@ import javafx.scene.image.ImageView;
|
||||||
import javafx.scene.input.Dragboard;
|
import javafx.scene.input.Dragboard;
|
||||||
import javafx.scene.input.TransferMode;
|
import javafx.scene.input.TransferMode;
|
||||||
import javafx.scene.layout.StackPane;
|
import javafx.scene.layout.StackPane;
|
||||||
|
import javafx.scene.text.Font;
|
||||||
import javafx.stage.FileChooser;
|
import javafx.stage.FileChooser;
|
||||||
import javafx.stage.Stage;
|
import javafx.stage.Stage;
|
||||||
import javafx.stage.StageStyle;
|
import javafx.stage.StageStyle;
|
||||||
|
@ -185,7 +186,8 @@ public class AppController implements Initializable {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
tabs.setTabDragPolicy(TabPane.TabDragPolicy.REORDER);
|
//Draggle tabs introduce unwanted movement when selecting between them
|
||||||
|
//tabs.setTabDragPolicy(TabPane.TabDragPolicy.REORDER);
|
||||||
tabs.getTabs().addListener((ListChangeListener<Tab>) c -> {
|
tabs.getTabs().addListener((ListChangeListener<Tab>) c -> {
|
||||||
if(c.next() && (c.wasAdded() || c.wasRemoved())) {
|
if(c.next() && (c.wasAdded() || c.wasRemoved())) {
|
||||||
boolean walletAdded = c.getAddedSubList().stream().anyMatch(tab -> ((TabData)tab.getUserData()).getType() == TabData.TabType.WALLET);
|
boolean walletAdded = c.getAddedSubList().stream().anyMatch(tab -> ((TabData)tab.getUserData()).getType() == TabData.TabType.WALLET);
|
||||||
|
@ -365,6 +367,7 @@ public class AppController implements Initializable {
|
||||||
Stage stage = new Stage();
|
Stage stage = new Stage();
|
||||||
stage.setTitle("About " + MainApp.APP_NAME);
|
stage.setTitle("About " + MainApp.APP_NAME);
|
||||||
stage.initStyle(org.controlsfx.tools.Platform.getCurrent() == org.controlsfx.tools.Platform.OSX ? StageStyle.UNDECORATED : StageStyle.DECORATED);
|
stage.initStyle(org.controlsfx.tools.Platform.getCurrent() == org.controlsfx.tools.Platform.OSX ? StageStyle.UNDECORATED : StageStyle.DECORATED);
|
||||||
|
setStageIcon(stage);
|
||||||
stage.setResizable(false);
|
stage.setResizable(false);
|
||||||
stage.setScene(new Scene(root));
|
stage.setScene(new Scene(root));
|
||||||
controller.setStage(stage);
|
controller.setStage(stage);
|
||||||
|
@ -608,12 +611,22 @@ public class AppController implements Initializable {
|
||||||
|
|
||||||
public static void showErrorDialog(String title, String content) {
|
public static void showErrorDialog(String title, String content) {
|
||||||
Alert alert = new Alert(Alert.AlertType.ERROR);
|
Alert alert = new Alert(Alert.AlertType.ERROR);
|
||||||
|
setStageIcon(alert.getDialogPane().getScene().getWindow());
|
||||||
alert.setTitle(title);
|
alert.setTitle(title);
|
||||||
alert.setHeaderText(title);
|
alert.setHeaderText(title);
|
||||||
alert.setContentText(content);
|
alert.setContentText(content);
|
||||||
alert.showAndWait();
|
alert.showAndWait();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void setStageIcon(Window window) {
|
||||||
|
Stage stage = (Stage)window;
|
||||||
|
stage.getIcons().add(new Image(AppController.class.getResourceAsStream("/image/sparrow.png")));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Font getMonospaceFont() {
|
||||||
|
return Font.font("Roboto Mono", 13);
|
||||||
|
}
|
||||||
|
|
||||||
public void selectTab(Wallet wallet) {
|
public void selectTab(Wallet wallet) {
|
||||||
for(Tab tab : tabs.getTabs()) {
|
for(Tab tab : tabs.getTabs()) {
|
||||||
TabData tabData = (TabData) tab.getUserData();
|
TabData tabData = (TabData) tab.getUserData();
|
||||||
|
@ -1158,7 +1171,7 @@ public class AppController implements Initializable {
|
||||||
currentBlockHeight = event.getBlockHeight();
|
currentBlockHeight = event.getBlockHeight();
|
||||||
targetBlockFeeRates = event.getTargetBlockFeeRates();
|
targetBlockFeeRates = event.getTargetBlockFeeRates();
|
||||||
String banner = event.getServerBanner();
|
String banner = event.getServerBanner();
|
||||||
String status = "Connected: " + (banner == null ? "Server" : banner.split(System.lineSeparator(), 2)[0]) + " at height " + event.getBlockHeight();
|
String status = "Connected: " + (banner == null ? "Server" : banner.split("\\R", 2)[0]) + " at height " + event.getBlockHeight();
|
||||||
EventManager.get().post(new StatusEvent(status));
|
EventManager.get().post(new StatusEvent(status));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -12,6 +12,7 @@ import javafx.fxml.FXMLLoader;
|
||||||
import javafx.scene.Parent;
|
import javafx.scene.Parent;
|
||||||
import javafx.scene.Scene;
|
import javafx.scene.Scene;
|
||||||
import javafx.scene.image.Image;
|
import javafx.scene.image.Image;
|
||||||
|
import javafx.scene.text.Font;
|
||||||
import javafx.stage.Stage;
|
import javafx.stage.Stage;
|
||||||
import org.controlsfx.glyphfont.GlyphFontRegistry;
|
import org.controlsfx.glyphfont.GlyphFontRegistry;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
@ -38,6 +39,7 @@ public class MainApp extends Application {
|
||||||
|
|
||||||
GlyphFontRegistry.register(new FontAwesome5());
|
GlyphFontRegistry.register(new FontAwesome5());
|
||||||
GlyphFontRegistry.register(new FontAwesome5Brands());
|
GlyphFontRegistry.register(new FontAwesome5Brands());
|
||||||
|
Font.loadFont(AppController.class.getResourceAsStream("/font/RobotoMono-Regular.ttf"), 13);
|
||||||
|
|
||||||
boolean createNewWallet = false;
|
boolean createNewWallet = false;
|
||||||
Mode mode = Config.get().getMode();
|
Mode mode = Config.get().getMode();
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package com.sparrowwallet.sparrow.control;
|
package com.sparrowwallet.sparrow.control;
|
||||||
|
|
||||||
import com.sparrowwallet.drongo.wallet.WalletNode;
|
import com.sparrowwallet.drongo.wallet.WalletNode;
|
||||||
|
import com.sparrowwallet.sparrow.AppController;
|
||||||
import com.sparrowwallet.sparrow.EventManager;
|
import com.sparrowwallet.sparrow.EventManager;
|
||||||
import com.sparrowwallet.sparrow.event.ReceiveActionEvent;
|
import com.sparrowwallet.sparrow.event.ReceiveActionEvent;
|
||||||
import com.sparrowwallet.sparrow.event.ReceiveToEvent;
|
import com.sparrowwallet.sparrow.event.ReceiveToEvent;
|
||||||
|
@ -10,7 +11,6 @@ import javafx.application.Platform;
|
||||||
import javafx.beans.property.ReadOnlyObjectWrapper;
|
import javafx.beans.property.ReadOnlyObjectWrapper;
|
||||||
import javafx.scene.control.*;
|
import javafx.scene.control.*;
|
||||||
import javafx.scene.input.MouseButton;
|
import javafx.scene.input.MouseButton;
|
||||||
import javafx.scene.text.Font;
|
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
@ -33,7 +33,7 @@ public class AddressTreeTable extends CoinTreeTable {
|
||||||
getColumns().add(addressCol);
|
getColumns().add(addressCol);
|
||||||
|
|
||||||
if(address != null) {
|
if(address != null) {
|
||||||
addressCol.setMinWidth(TextUtils.computeTextWidth(Font.font("Courier"), address, 0.0));
|
addressCol.setMinWidth(TextUtils.computeTextWidth(AppController.getMonospaceFont(), address, 0.0));
|
||||||
}
|
}
|
||||||
|
|
||||||
TreeTableColumn<Entry, String> labelCol = new TreeTableColumn<>("Label");
|
TreeTableColumn<Entry, String> labelCol = new TreeTableColumn<>("Label");
|
||||||
|
|
|
@ -32,6 +32,7 @@ public abstract class DeviceDialog<R> extends Dialog<R> {
|
||||||
|
|
||||||
final DialogPane dialogPane = getDialogPane();
|
final DialogPane dialogPane = getDialogPane();
|
||||||
dialogPane.getStylesheets().add(AppController.class.getResource("general.css").toExternalForm());
|
dialogPane.getStylesheets().add(AppController.class.getResource("general.css").toExternalForm());
|
||||||
|
AppController.setStageIcon(dialogPane.getScene().getWindow());
|
||||||
|
|
||||||
StackPane stackPane = new StackPane();
|
StackPane stackPane = new StackPane();
|
||||||
dialogPane.setContent(stackPane);
|
dialogPane.setContent(stackPane);
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
package com.sparrowwallet.sparrow.control;
|
package com.sparrowwallet.sparrow.control;
|
||||||
|
|
||||||
import javafx.scene.text.Font;
|
import com.sparrowwallet.sparrow.AppController;
|
||||||
|
|
||||||
public class IdLabel extends CopyableLabel {
|
public class IdLabel extends CopyableLabel {
|
||||||
public IdLabel() {
|
public IdLabel() {
|
||||||
|
@ -9,6 +9,6 @@ public class IdLabel extends CopyableLabel {
|
||||||
|
|
||||||
public IdLabel(String text) {
|
public IdLabel(String text) {
|
||||||
super(text);
|
super(text);
|
||||||
setFont(Font.font("Courier"));
|
setFont(AppController.getMonospaceFont());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,6 +26,7 @@ public class KeystorePassphraseDialog extends Dialog<String> {
|
||||||
setTitle("Keystore Passphrase" + (walletName != null ? " - " + walletName : ""));
|
setTitle("Keystore Passphrase" + (walletName != null ? " - " + walletName : ""));
|
||||||
dialogPane.setHeaderText("Please enter the passphrase for keystore: \n" + keystore.getLabel());
|
dialogPane.setHeaderText("Please enter the passphrase for keystore: \n" + keystore.getLabel());
|
||||||
dialogPane.getStylesheets().add(AppController.class.getResource("general.css").toExternalForm());
|
dialogPane.getStylesheets().add(AppController.class.getResource("general.css").toExternalForm());
|
||||||
|
AppController.setStageIcon(dialogPane.getScene().getWindow());
|
||||||
dialogPane.getButtonTypes().addAll(ButtonType.CANCEL, ButtonType.OK);
|
dialogPane.getButtonTypes().addAll(ButtonType.CANCEL, ButtonType.OK);
|
||||||
dialogPane.setPrefWidth(380);
|
dialogPane.setPrefWidth(380);
|
||||||
dialogPane.setPrefHeight(200);
|
dialogPane.setPrefHeight(200);
|
||||||
|
|
|
@ -5,7 +5,7 @@ import com.google.zxing.client.j2se.MatrixToImageConfig;
|
||||||
import com.google.zxing.client.j2se.MatrixToImageWriter;
|
import com.google.zxing.client.j2se.MatrixToImageWriter;
|
||||||
import com.google.zxing.common.BitMatrix;
|
import com.google.zxing.common.BitMatrix;
|
||||||
import com.google.zxing.qrcode.QRCodeWriter;
|
import com.google.zxing.qrcode.QRCodeWriter;
|
||||||
import com.sparrowwallet.sparrow.EventManager;
|
import com.sparrowwallet.sparrow.AppController;
|
||||||
import com.sparrowwallet.sparrow.io.ImportException;
|
import com.sparrowwallet.sparrow.io.ImportException;
|
||||||
import com.sparrowwallet.sparrow.ur.UR;
|
import com.sparrowwallet.sparrow.ur.UR;
|
||||||
import com.sparrowwallet.sparrow.ur.UREncoder;
|
import com.sparrowwallet.sparrow.ur.UREncoder;
|
||||||
|
@ -48,6 +48,7 @@ public class QRDisplayDialog extends Dialog<UR> {
|
||||||
this.encoder = new UREncoder(ur, MAX_FRAGMENT_LENGTH, MIN_FRAGMENT_LENGTH, 0);
|
this.encoder = new UREncoder(ur, MAX_FRAGMENT_LENGTH, MIN_FRAGMENT_LENGTH, 0);
|
||||||
|
|
||||||
final DialogPane dialogPane = getDialogPane();
|
final DialogPane dialogPane = getDialogPane();
|
||||||
|
AppController.setStageIcon(dialogPane.getScene().getWindow());
|
||||||
|
|
||||||
StackPane stackPane = new StackPane();
|
StackPane stackPane = new StackPane();
|
||||||
qrImageView = new ImageView();
|
qrImageView = new ImageView();
|
||||||
|
|
|
@ -7,6 +7,7 @@ import com.sparrowwallet.drongo.protocol.Base43;
|
||||||
import com.sparrowwallet.drongo.protocol.Transaction;
|
import com.sparrowwallet.drongo.protocol.Transaction;
|
||||||
import com.sparrowwallet.drongo.psbt.PSBT;
|
import com.sparrowwallet.drongo.psbt.PSBT;
|
||||||
import com.sparrowwallet.drongo.uri.BitcoinURI;
|
import com.sparrowwallet.drongo.uri.BitcoinURI;
|
||||||
|
import com.sparrowwallet.sparrow.AppController;
|
||||||
import com.sparrowwallet.sparrow.ur.ResultType;
|
import com.sparrowwallet.sparrow.ur.ResultType;
|
||||||
import com.sparrowwallet.sparrow.ur.UR;
|
import com.sparrowwallet.sparrow.ur.UR;
|
||||||
import com.sparrowwallet.sparrow.ur.URDecoder;
|
import com.sparrowwallet.sparrow.ur.URDecoder;
|
||||||
|
@ -34,6 +35,7 @@ public class QRScanDialog extends Dialog<QRScanDialog.Result> {
|
||||||
WebcamView webcamView = new WebcamView(webcamService);
|
WebcamView webcamView = new WebcamView(webcamService);
|
||||||
|
|
||||||
final DialogPane dialogPane = getDialogPane();
|
final DialogPane dialogPane = getDialogPane();
|
||||||
|
AppController.setStageIcon(dialogPane.getScene().getWindow());
|
||||||
|
|
||||||
StackPane stackPane = new StackPane();
|
StackPane stackPane = new StackPane();
|
||||||
stackPane.getChildren().add(webcamView.getView());
|
stackPane.getChildren().add(webcamView.getView());
|
||||||
|
|
|
@ -11,6 +11,7 @@ public class SeedDisplayDialog extends Dialog<Void> {
|
||||||
public SeedDisplayDialog(Keystore decryptedKeystore) {
|
public SeedDisplayDialog(Keystore decryptedKeystore) {
|
||||||
final DialogPane dialogPane = getDialogPane();
|
final DialogPane dialogPane = getDialogPane();
|
||||||
dialogPane.getStylesheets().add(AppController.class.getResource("general.css").toExternalForm());
|
dialogPane.getStylesheets().add(AppController.class.getResource("general.css").toExternalForm());
|
||||||
|
AppController.setStageIcon(dialogPane.getScene().getWindow());
|
||||||
|
|
||||||
int lines = decryptedKeystore.getSeed().getMnemonicCode().size() / 3;
|
int lines = decryptedKeystore.getSeed().getMnemonicCode().size() / 3;
|
||||||
int height = lines * 40;
|
int height = lines * 40;
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package com.sparrowwallet.sparrow.control;
|
package com.sparrowwallet.sparrow.control;
|
||||||
|
|
||||||
|
import com.sparrowwallet.sparrow.AppController;
|
||||||
import javafx.application.Platform;
|
import javafx.application.Platform;
|
||||||
import javafx.beans.NamedArg;
|
import javafx.beans.NamedArg;
|
||||||
import javafx.scene.control.*;
|
import javafx.scene.control.*;
|
||||||
|
@ -24,7 +25,8 @@ public class TextAreaDialog extends Dialog<String> {
|
||||||
|
|
||||||
this.defaultValue = defaultValue;
|
this.defaultValue = defaultValue;
|
||||||
|
|
||||||
getDialogPane().setContent(hbox);
|
dialogPane.setContent(hbox);
|
||||||
|
AppController.setStageIcon(dialogPane.getScene().getWindow());
|
||||||
|
|
||||||
dialogPane.getStyleClass().add("text-input-dialog");
|
dialogPane.getStyleClass().add("text-input-dialog");
|
||||||
dialogPane.getButtonTypes().addAll(ButtonType.OK, ButtonType.CANCEL);
|
dialogPane.getButtonTypes().addAll(ButtonType.OK, ButtonType.CANCEL);
|
||||||
|
|
|
@ -23,8 +23,9 @@ public class TransactionIdDialog extends Dialog<Sha256Hash> {
|
||||||
|
|
||||||
public TransactionIdDialog() {
|
public TransactionIdDialog() {
|
||||||
this.txid = (CustomTextField) TextFields.createClearableTextField();
|
this.txid = (CustomTextField) TextFields.createClearableTextField();
|
||||||
txid.setFont(Font.font ("Courier", txid.getFont().getSize()));
|
txid.setFont(AppController.getMonospaceFont());
|
||||||
final DialogPane dialogPane = getDialogPane();
|
final DialogPane dialogPane = getDialogPane();
|
||||||
|
AppController.setStageIcon(dialogPane.getScene().getWindow());
|
||||||
|
|
||||||
setTitle("Load Transaction");
|
setTitle("Load Transaction");
|
||||||
dialogPane.setHeaderText("Enter the transaction ID:");
|
dialogPane.setHeaderText("Enter the transaction ID:");
|
||||||
|
|
|
@ -3,13 +3,12 @@ package com.sparrowwallet.sparrow.control;
|
||||||
import com.google.common.eventbus.Subscribe;
|
import com.google.common.eventbus.Subscribe;
|
||||||
import com.sparrowwallet.drongo.policy.PolicyType;
|
import com.sparrowwallet.drongo.policy.PolicyType;
|
||||||
import com.sparrowwallet.drongo.wallet.Wallet;
|
import com.sparrowwallet.drongo.wallet.Wallet;
|
||||||
|
import com.sparrowwallet.sparrow.AppController;
|
||||||
import com.sparrowwallet.sparrow.EventManager;
|
import com.sparrowwallet.sparrow.EventManager;
|
||||||
import com.sparrowwallet.sparrow.event.WalletExportEvent;
|
import com.sparrowwallet.sparrow.event.WalletExportEvent;
|
||||||
import com.sparrowwallet.sparrow.event.WalletImportEvent;
|
|
||||||
import com.sparrowwallet.sparrow.io.ColdcardMultisig;
|
import com.sparrowwallet.sparrow.io.ColdcardMultisig;
|
||||||
import com.sparrowwallet.sparrow.io.Electrum;
|
import com.sparrowwallet.sparrow.io.Electrum;
|
||||||
import com.sparrowwallet.sparrow.io.WalletExport;
|
import com.sparrowwallet.sparrow.io.WalletExport;
|
||||||
import com.sparrowwallet.sparrow.io.WalletImport;
|
|
||||||
import javafx.scene.control.*;
|
import javafx.scene.control.*;
|
||||||
import javafx.scene.layout.AnchorPane;
|
import javafx.scene.layout.AnchorPane;
|
||||||
import javafx.scene.layout.StackPane;
|
import javafx.scene.layout.StackPane;
|
||||||
|
@ -26,6 +25,7 @@ public class WalletExportDialog extends Dialog<Wallet> {
|
||||||
});
|
});
|
||||||
|
|
||||||
final DialogPane dialogPane = getDialogPane();
|
final DialogPane dialogPane = getDialogPane();
|
||||||
|
AppController.setStageIcon(dialogPane.getScene().getWindow());
|
||||||
|
|
||||||
StackPane stackPane = new StackPane();
|
StackPane stackPane = new StackPane();
|
||||||
dialogPane.setContent(stackPane);
|
dialogPane.setContent(stackPane);
|
||||||
|
|
|
@ -2,6 +2,7 @@ package com.sparrowwallet.sparrow.control;
|
||||||
|
|
||||||
import com.google.common.eventbus.Subscribe;
|
import com.google.common.eventbus.Subscribe;
|
||||||
import com.sparrowwallet.drongo.wallet.Wallet;
|
import com.sparrowwallet.drongo.wallet.Wallet;
|
||||||
|
import com.sparrowwallet.sparrow.AppController;
|
||||||
import com.sparrowwallet.sparrow.EventManager;
|
import com.sparrowwallet.sparrow.EventManager;
|
||||||
import com.sparrowwallet.sparrow.event.WalletImportEvent;
|
import com.sparrowwallet.sparrow.event.WalletImportEvent;
|
||||||
import com.sparrowwallet.sparrow.io.*;
|
import com.sparrowwallet.sparrow.io.*;
|
||||||
|
@ -21,6 +22,7 @@ public class WalletImportDialog extends Dialog<Wallet> {
|
||||||
});
|
});
|
||||||
|
|
||||||
final DialogPane dialogPane = getDialogPane();
|
final DialogPane dialogPane = getDialogPane();
|
||||||
|
AppController.setStageIcon(dialogPane.getScene().getWindow());
|
||||||
|
|
||||||
StackPane stackPane = new StackPane();
|
StackPane stackPane = new StackPane();
|
||||||
dialogPane.setContent(stackPane);
|
dialogPane.setContent(stackPane);
|
||||||
|
|
|
@ -22,6 +22,7 @@ public class WalletNameDialog extends Dialog<String> {
|
||||||
public WalletNameDialog() {
|
public WalletNameDialog() {
|
||||||
this.name = (CustomTextField)TextFields.createClearableTextField();
|
this.name = (CustomTextField)TextFields.createClearableTextField();
|
||||||
final DialogPane dialogPane = getDialogPane();
|
final DialogPane dialogPane = getDialogPane();
|
||||||
|
AppController.setStageIcon(dialogPane.getScene().getWindow());
|
||||||
|
|
||||||
setTitle("Wallet Name");
|
setTitle("Wallet Name");
|
||||||
dialogPane.setHeaderText("Enter a name for this wallet:");
|
dialogPane.setHeaderText("Enter a name for this wallet:");
|
||||||
|
|
|
@ -36,6 +36,7 @@ public class WalletPasswordDialog extends Dialog<SecureString> {
|
||||||
setTitle("Wallet Password" + (walletName != null ? " - " + walletName : ""));
|
setTitle("Wallet Password" + (walletName != null ? " - " + walletName : ""));
|
||||||
dialogPane.setHeaderText(walletName != null ? requirement.description.substring(0, requirement.description.length() - 1) + " for " + walletName + ":" : requirement.description);
|
dialogPane.setHeaderText(walletName != null ? requirement.description.substring(0, requirement.description.length() - 1) + " for " + walletName + ":" : requirement.description);
|
||||||
dialogPane.getStylesheets().add(AppController.class.getResource("general.css").toExternalForm());
|
dialogPane.getStylesheets().add(AppController.class.getResource("general.css").toExternalForm());
|
||||||
|
AppController.setStageIcon(dialogPane.getScene().getWindow());
|
||||||
dialogPane.getButtonTypes().addAll(ButtonType.CANCEL);
|
dialogPane.getButtonTypes().addAll(ButtonType.CANCEL);
|
||||||
dialogPane.setPrefWidth(380);
|
dialogPane.setPrefWidth(380);
|
||||||
dialogPane.setPrefHeight(260);
|
dialogPane.setPrefHeight(260);
|
||||||
|
|
|
@ -28,6 +28,7 @@ public class WelcomeDialog extends Dialog<Mode> {
|
||||||
setTitle("Welcome to Sparrow");
|
setTitle("Welcome to Sparrow");
|
||||||
dialogPane.setHeaderText("Welcome to Sparrow!");
|
dialogPane.setHeaderText("Welcome to Sparrow!");
|
||||||
dialogPane.getStylesheets().add(AppController.class.getResource("general.css").toExternalForm());
|
dialogPane.getStylesheets().add(AppController.class.getResource("general.css").toExternalForm());
|
||||||
|
AppController.setStageIcon(dialogPane.getScene().getWindow());
|
||||||
dialogPane.setPrefWidth(600);
|
dialogPane.setPrefWidth(600);
|
||||||
dialogPane.setPrefHeight(480);
|
dialogPane.setPrefHeight(480);
|
||||||
|
|
||||||
|
|
|
@ -32,6 +32,7 @@ public class KeystoreImportDialog extends Dialog<Keystore> {
|
||||||
});
|
});
|
||||||
|
|
||||||
final DialogPane dialogPane = getDialogPane();
|
final DialogPane dialogPane = getDialogPane();
|
||||||
|
AppController.setStageIcon(dialogPane.getScene().getWindow());
|
||||||
|
|
||||||
try {
|
try {
|
||||||
FXMLLoader ksiLoader = new FXMLLoader(AppController.class.getResource("keystoreimport/keystoreimport.fxml"));
|
FXMLLoader ksiLoader = new FXMLLoader(AppController.class.getResource("keystoreimport/keystoreimport.fxml"));
|
||||||
|
|
|
@ -27,6 +27,7 @@ public class PreferencesDialog extends Dialog<Boolean> {
|
||||||
|
|
||||||
public PreferencesDialog(PreferenceGroup initialGroup, boolean initialSetup) {
|
public PreferencesDialog(PreferenceGroup initialGroup, boolean initialSetup) {
|
||||||
final DialogPane dialogPane = getDialogPane();
|
final DialogPane dialogPane = getDialogPane();
|
||||||
|
AppController.setStageIcon(dialogPane.getScene().getWindow());
|
||||||
|
|
||||||
try {
|
try {
|
||||||
FXMLLoader preferencesLoader = new FXMLLoader(AppController.class.getResource("preferences/preferences.fxml"));
|
FXMLLoader preferencesLoader = new FXMLLoader(AppController.class.getResource("preferences/preferences.fxml"));
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
-fx-fill: #383a42;
|
-fx-fill: #383a42;
|
||||||
}
|
}
|
||||||
|
|
||||||
.status-bar, .status-bar .status-label {
|
.status-bar .status-label {
|
||||||
-fx-alignment: center-left;
|
-fx-alignment: center-left;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
<?import com.sparrowwallet.sparrow.control.UnlabeledToggleSwitch?>
|
<?import com.sparrowwallet.sparrow.control.UnlabeledToggleSwitch?>
|
||||||
<?import com.sparrowwallet.drongo.BitcoinUnit?>
|
<?import com.sparrowwallet.drongo.BitcoinUnit?>
|
||||||
|
|
||||||
<VBox maxHeight="-Infinity" maxWidth="-Infinity" minHeight="200" minWidth="350" prefHeight="750.0" prefWidth="1000.0" fx:controller="com.sparrowwallet.sparrow.AppController" xmlns="http://javafx.com/javafx/10.0.2-internal" xmlns:fx="http://javafx.com/fxml/1">
|
<VBox maxHeight="-Infinity" maxWidth="-Infinity" minHeight="200" minWidth="350" prefHeight="770.0" prefWidth="1000.0" fx:controller="com.sparrowwallet.sparrow.AppController" xmlns="http://javafx.com/javafx/10.0.2-internal" xmlns:fx="http://javafx.com/fxml/1">
|
||||||
<children>
|
<children>
|
||||||
<MenuBar useSystemMenuBar="true">
|
<MenuBar useSystemMenuBar="true">
|
||||||
<menus>
|
<menus>
|
||||||
|
@ -33,7 +33,6 @@
|
||||||
<MenuItem styleClass="macHide" mnemonicParsing="false" text="Preferences..." onAction="#openPreferences"/>
|
<MenuItem styleClass="macHide" mnemonicParsing="false" text="Preferences..." onAction="#openPreferences"/>
|
||||||
<SeparatorMenuItem />
|
<SeparatorMenuItem />
|
||||||
<MenuItem mnemonicParsing="false" text="Close Tab" onAction="#closeTab"/>
|
<MenuItem mnemonicParsing="false" text="Close Tab" onAction="#closeTab"/>
|
||||||
<SeparatorMenuItem styleClass="macHide" />
|
|
||||||
<MenuItem styleClass="macHide" mnemonicParsing="false" text="Quit" onAction="#quit"/>
|
<MenuItem styleClass="macHide" mnemonicParsing="false" text="Quit" onAction="#quit"/>
|
||||||
</items>
|
</items>
|
||||||
</Menu>
|
</Menu>
|
||||||
|
|
|
@ -28,7 +28,8 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.id {
|
.id {
|
||||||
-fx-font-family: Courier;
|
-fx-font-size: 13px;
|
||||||
|
-fx-font-family: 'Roboto Mono';
|
||||||
}
|
}
|
||||||
|
|
||||||
.form-separator {
|
.form-separator {
|
||||||
|
|
|
@ -27,8 +27,9 @@
|
||||||
-fx-translate-y: 2;
|
-fx-translate-y: 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
.uneditable-codearea {
|
.virtualized-scroll-pane .code-area, .uneditable-codearea {
|
||||||
-fx-font: 14px Courier;
|
-fx-font-size: 13px;
|
||||||
|
-fx-font-family: 'Roboto Mono';
|
||||||
-fx-padding: 4;
|
-fx-padding: 4;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -56,28 +56,28 @@
|
||||||
<Field text="ScriptSig:">
|
<Field text="ScriptSig:">
|
||||||
<VirtualizedScrollPane>
|
<VirtualizedScrollPane>
|
||||||
<content>
|
<content>
|
||||||
<ScriptArea fx:id="scriptSigArea" editable="false" wrapText="true" prefHeight="42" maxHeight="42" styleClass="uneditable-codearea" />
|
<ScriptArea fx:id="scriptSigArea" editable="false" wrapText="true" prefHeight="47" maxHeight="47" styleClass="uneditable-codearea" />
|
||||||
</content>
|
</content>
|
||||||
</VirtualizedScrollPane>
|
</VirtualizedScrollPane>
|
||||||
</Field>
|
</Field>
|
||||||
<Field text="RedeemScript:">
|
<Field text="RedeemScript:">
|
||||||
<VirtualizedScrollPane fx:id="redeemScriptScroll">
|
<VirtualizedScrollPane fx:id="redeemScriptScroll">
|
||||||
<content>
|
<content>
|
||||||
<ScriptArea fx:id="redeemScriptArea" editable="false" wrapText="true" prefHeight="42" maxHeight="42" styleClass="uneditable-codearea" />
|
<ScriptArea fx:id="redeemScriptArea" editable="false" wrapText="true" prefHeight="47" maxHeight="47" styleClass="uneditable-codearea" />
|
||||||
</content>
|
</content>
|
||||||
</VirtualizedScrollPane>
|
</VirtualizedScrollPane>
|
||||||
</Field>
|
</Field>
|
||||||
<Field text="Witnesses:">
|
<Field text="Witnesses:">
|
||||||
<VirtualizedScrollPane fx:id="witnessesScroll">
|
<VirtualizedScrollPane fx:id="witnessesScroll">
|
||||||
<content>
|
<content>
|
||||||
<ScriptArea fx:id="witnessesArea" editable="false" wrapText="true" prefHeight="42" maxHeight="42" styleClass="uneditable-codearea" />
|
<ScriptArea fx:id="witnessesArea" editable="false" wrapText="true" prefHeight="47" maxHeight="47" styleClass="uneditable-codearea" />
|
||||||
</content>
|
</content>
|
||||||
</VirtualizedScrollPane>
|
</VirtualizedScrollPane>
|
||||||
</Field>
|
</Field>
|
||||||
<Field text="WitnessScript:">
|
<Field text="WitnessScript:">
|
||||||
<VirtualizedScrollPane fx:id="witnessScriptScroll">
|
<VirtualizedScrollPane fx:id="witnessScriptScroll">
|
||||||
<content>
|
<content>
|
||||||
<ScriptArea fx:id="witnessScriptArea" editable="false" wrapText="true" prefHeight="42" maxHeight="42" styleClass="uneditable-codearea" />
|
<ScriptArea fx:id="witnessScriptArea" editable="false" wrapText="true" prefHeight="47" maxHeight="47" styleClass="uneditable-codearea" />
|
||||||
</content>
|
</content>
|
||||||
</VirtualizedScrollPane>
|
</VirtualizedScrollPane>
|
||||||
</Field>
|
</Field>
|
||||||
|
|
|
@ -20,8 +20,9 @@
|
||||||
|
|
||||||
.locktime { -fx-fill: #e5e5e6 }
|
.locktime { -fx-fill: #e5e5e6 }
|
||||||
|
|
||||||
.chart-legend-item{
|
.chart-legend-item {
|
||||||
-fx-font-family: Courier;
|
-fx-font-size: 13px;
|
||||||
|
-fx-font-family: 'Roboto Mono';
|
||||||
}
|
}
|
||||||
|
|
||||||
.default-color0.chart-pie { -fx-pie-color: #ca1243 }
|
.default-color0.chart-pie { -fx-pie-color: #ca1243 }
|
||||||
|
|
|
@ -52,7 +52,7 @@
|
||||||
<Field text="ScriptPubKey:">
|
<Field text="ScriptPubKey:">
|
||||||
<VirtualizedScrollPane>
|
<VirtualizedScrollPane>
|
||||||
<content>
|
<content>
|
||||||
<ScriptArea fx:id="scriptPubKeyArea" editable="false" wrapText="true" prefHeight="42" maxHeight="42" styleClass="uneditable-codearea" />
|
<ScriptArea fx:id="scriptPubKeyArea" editable="false" wrapText="true" prefHeight="47" maxHeight="47" styleClass="uneditable-codearea" />
|
||||||
</content>
|
</content>
|
||||||
</VirtualizedScrollPane>
|
</VirtualizedScrollPane>
|
||||||
</Field>
|
</Field>
|
||||||
|
|
|
@ -20,8 +20,9 @@
|
||||||
|
|
||||||
.locktime { -fx-fill: #e5e5e6 }
|
.locktime { -fx-fill: #e5e5e6 }
|
||||||
|
|
||||||
.chart-legend-item{
|
.chart-legend-item {
|
||||||
-fx-font-family: Courier;
|
-fx-font-size: 13;
|
||||||
|
-fx-font-family: 'Roboto Mono';
|
||||||
}
|
}
|
||||||
|
|
||||||
.default-color7.chart-pie { -fx-pie-color: #0184bc }
|
.default-color7.chart-pie { -fx-pie-color: #0184bc }
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
#txhex {
|
#txhex {
|
||||||
-fx-background-color: #ffffff;
|
-fx-background-color: #ffffff;
|
||||||
-fx-font: 14px Courier;
|
-fx-font-size: 13px;
|
||||||
|
-fx-font-family: 'Roboto Mono';
|
||||||
-fx-padding: 2;
|
-fx-padding: 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,8 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
#fingerprint, #derivation, #xpub {
|
#fingerprint, #derivation, #xpub {
|
||||||
-fx-font-family: Courier;
|
-fx-font-size: 13px;
|
||||||
|
-fx-font-family: 'Roboto Mono';
|
||||||
}
|
}
|
||||||
|
|
||||||
#type {
|
#type {
|
||||||
|
|
|
@ -46,7 +46,7 @@
|
||||||
<TextField fx:id="derivation" maxWidth="200"/>
|
<TextField fx:id="derivation" maxWidth="200"/>
|
||||||
</Field>
|
</Field>
|
||||||
<Field text="xPub:">
|
<Field text="xPub:">
|
||||||
<TextArea fx:id="xpub" wrapText="true" prefRowCount="2" maxHeight="40" />
|
<TextArea fx:id="xpub" wrapText="true" prefRowCount="2" maxHeight="50" />
|
||||||
</Field>
|
</Field>
|
||||||
</Fieldset>
|
</Fieldset>
|
||||||
</Form>
|
</Form>
|
||||||
|
|
|
@ -60,7 +60,7 @@
|
||||||
<Field text="Script:">
|
<Field text="Script:">
|
||||||
<VirtualizedScrollPane>
|
<VirtualizedScrollPane>
|
||||||
<content>
|
<content>
|
||||||
<ScriptArea fx:id="scriptPubKeyArea" editable="false" wrapText="true" prefHeight="42" maxHeight="42" styleClass="uneditable-codearea" />
|
<ScriptArea fx:id="scriptPubKeyArea" editable="false" wrapText="true" prefHeight="47" maxHeight="47" styleClass="uneditable-codearea" />
|
||||||
</content>
|
</content>
|
||||||
</VirtualizedScrollPane>
|
</VirtualizedScrollPane>
|
||||||
</Field>
|
</Field>
|
||||||
|
@ -72,7 +72,7 @@
|
||||||
<Field text="Descriptor:">
|
<Field text="Descriptor:">
|
||||||
<VirtualizedScrollPane>
|
<VirtualizedScrollPane>
|
||||||
<content>
|
<content>
|
||||||
<CodeArea fx:id="outputDescriptor" editable="false" wrapText="true" prefHeight="63" maxHeight="63" styleClass="uneditable-codearea" />
|
<CodeArea fx:id="outputDescriptor" editable="false" wrapText="true" prefHeight="68" maxHeight="68" styleClass="uneditable-codearea" />
|
||||||
</content>
|
</content>
|
||||||
</VirtualizedScrollPane>
|
</VirtualizedScrollPane>
|
||||||
</Field>
|
</Field>
|
||||||
|
|
|
@ -52,7 +52,8 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
#transactionDiagram .input-label, #transactionDiagram .recipient-label, #transactionDiagram .change-label, #transactionDiagram .fee-tooltip {
|
#transactionDiagram .input-label, #transactionDiagram .recipient-label, #transactionDiagram .change-label, #transactionDiagram .fee-tooltip {
|
||||||
-fx-font-family: Courier;
|
-fx-font-size: 13px;
|
||||||
|
-fx-font-family: 'Roboto Mono';
|
||||||
}
|
}
|
||||||
|
|
||||||
#transactionDiagram .fee-warning-icon {
|
#transactionDiagram .fee-warning-icon {
|
||||||
|
|
|
@ -63,8 +63,8 @@
|
||||||
</Fieldset>
|
</Fieldset>
|
||||||
</Form>
|
</Form>
|
||||||
<Form GridPane.columnIndex="2" GridPane.rowIndex="0">
|
<Form GridPane.columnIndex="2" GridPane.rowIndex="0">
|
||||||
<Fieldset inputGrow="SOMETIMES" text="">
|
<Fieldset inputGrow="SOMETIMES" text="" style="-fx-padding: 2 0 0 0">
|
||||||
<Button text="Scan QR" onAction="#scanQrAddress">
|
<Button text="Scan QR" onAction="#scanQrAddress" prefHeight="30">
|
||||||
<graphic>
|
<graphic>
|
||||||
<Glyph fontFamily="Font Awesome 5 Free Solid" fontSize="12" icon="CAMERA" />
|
<Glyph fontFamily="Font Awesome 5 Free Solid" fontSize="12" icon="CAMERA" />
|
||||||
</graphic>
|
</graphic>
|
||||||
|
@ -106,7 +106,7 @@
|
||||||
</AnchorPane>
|
</AnchorPane>
|
||||||
</GridPane>
|
</GridPane>
|
||||||
<AnchorPane>
|
<AnchorPane>
|
||||||
<TransactionDiagram fx:id="transactionDiagram" maxWidth="700" maxHeight="230" AnchorPane.leftAnchor="60" />
|
<TransactionDiagram fx:id="transactionDiagram" maxWidth="700" maxHeight="230" AnchorPane.leftAnchor="100" />
|
||||||
</AnchorPane>
|
</AnchorPane>
|
||||||
</VBox>
|
</VBox>
|
||||||
</center>
|
</center>
|
||||||
|
|
|
@ -11,6 +11,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
#spendingMiniscript {
|
#spendingMiniscript {
|
||||||
-fx-font-family: Courier;
|
-fx-font-size: 13px;
|
||||||
|
-fx-font-family: 'Roboto Mono';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -30,7 +30,8 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.address-cell, .utxo-row.entry-cell {
|
.address-cell, .utxo-row.entry-cell {
|
||||||
-fx-font-family: Courier;
|
-fx-font-size: 13px;
|
||||||
|
-fx-font-family: 'Roboto Mono';
|
||||||
}
|
}
|
||||||
|
|
||||||
.hashindex-row {
|
.hashindex-row {
|
||||||
|
@ -123,5 +124,6 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.address-text-field {
|
.address-text-field {
|
||||||
-fx-font-family: Courier;
|
-fx-font-size: 13px;
|
||||||
|
-fx-font-family: 'Roboto Mono';
|
||||||
}
|
}
|
BIN
src/main/resources/font/RobotoMono-Regular.ttf
Normal file
BIN
src/main/resources/font/RobotoMono-Regular.ttf
Normal file
Binary file not shown.
Loading…
Reference in a new issue