From 063a2fae72591558de626897fe7396c25cfcb0b8 Mon Sep 17 00:00:00 2001 From: LeeWyatt Date: Fri, 30 Dec 2022 10:21:24 +0900 Subject: [PATCH] ui layout --- pom.xml | 2 +- .../java/com/leewyatt/fxtools/FXToolsApp.java | 2 + .../ui/alert/DonateAlertController.java | 17 +++ .../fxtools/ui/cells/ImageListCell.java | 20 +-- .../ImageCutterPageController.java | 4 +- .../ImageFormatPageController.java | 11 +- .../uicontroller/ImagePageController.java | 1 + .../uicontroller/ImageTaskController.java | 13 +- .../uicontroller/MainPaneController.java | 8 +- .../uicontroller/SvgPageController.java | 46 +++--- src/main/resources/css/about-alert-dark.css | 15 ++ src/main/resources/css/about-alert-light.css | 15 ++ src/main/resources/css/main-stage-dark.css | 4 + src/main/resources/css/main-stage-light.css | 4 + src/main/resources/fxml/css-page.fxml | 142 ++++++++++++++++++ src/main/resources/fxml/donate.fxml | 6 +- .../resources/fxml/image-cutter-page.fxml | 2 +- .../resources/fxml/image-format-page.fxml | 2 +- .../resources/fxml/image-stitching-page.fxml | 2 +- src/main/resources/fxml/main-pane.fxml | 4 +- .../resources/language/language.properties | 1 + .../resources/language/language_zh.properties | 1 + 22 files changed, 263 insertions(+), 59 deletions(-) create mode 100644 src/main/java/com/leewyatt/fxtools/ui/alert/DonateAlertController.java create mode 100644 src/main/resources/fxml/css-page.fxml diff --git a/pom.xml b/pom.xml index e013ab4..607c363 100644 --- a/pom.xml +++ b/pom.xml @@ -69,7 +69,7 @@ com.github.leewyatt rxcontrols - 11.0.2 + 11.0.3 org.controlsfx diff --git a/src/main/java/com/leewyatt/fxtools/FXToolsApp.java b/src/main/java/com/leewyatt/fxtools/FXToolsApp.java index 880c155..50528ee 100644 --- a/src/main/java/com/leewyatt/fxtools/FXToolsApp.java +++ b/src/main/java/com/leewyatt/fxtools/FXToolsApp.java @@ -15,6 +15,7 @@ import javafx.application.Platform; import javafx.fxml.FXMLLoader; import javafx.scene.Parent; +import javafx.scene.PerspectiveCamera; import javafx.scene.paint.Color; import javafx.scene.text.Font; import javafx.stage.Stage; @@ -56,6 +57,7 @@ public void start(Stage primaryStage) throws Exception { scene.getStylesheets().add(ResourcesUtil.cssExternalForm("main-stage-" + skinStyle + ".css")); loadMainPane(); scene.setFill(Color.TRANSPARENT); + scene.setCamera(new PerspectiveCamera()); primaryStage.initStyle(StageStyle.TRANSPARENT); primaryStage.setScene(scene); primaryStage.setTitle("FXTools"); diff --git a/src/main/java/com/leewyatt/fxtools/ui/alert/DonateAlertController.java b/src/main/java/com/leewyatt/fxtools/ui/alert/DonateAlertController.java new file mode 100644 index 0000000..697b6da --- /dev/null +++ b/src/main/java/com/leewyatt/fxtools/ui/alert/DonateAlertController.java @@ -0,0 +1,17 @@ +package com.leewyatt.fxtools.ui.alert; + + +import com.leewyatt.fxtools.utils.OSUtil; +import javafx.event.ActionEvent; +import javafx.fxml.FXML; +/** + * @author LeeWyatt + */ +public class DonateAlertController { + + @FXML + void onClickDonorListBtn(ActionEvent event) { + OSUtil.showDoc("https://gitee.com/leewyatt/FXTools#%E6%89%93%E8%B5%8F%E5%88%97%E8%A1%A8"); + } + +} diff --git a/src/main/java/com/leewyatt/fxtools/ui/cells/ImageListCell.java b/src/main/java/com/leewyatt/fxtools/ui/cells/ImageListCell.java index f54c3de..e58aaa9 100644 --- a/src/main/java/com/leewyatt/fxtools/ui/cells/ImageListCell.java +++ b/src/main/java/com/leewyatt/fxtools/ui/cells/ImageListCell.java @@ -1,7 +1,5 @@ package com.leewyatt.fxtools.ui.cells; -import com.google.common.eventbus.Subscribe; -import com.leewyatt.fxtools.event.SkinChangedEvent; import com.leewyatt.fxtools.model.ImageInfo; import com.leewyatt.fxtools.ui.alert.ConfirmationAlert; import com.leewyatt.fxtools.utils.ImageUtil; @@ -61,7 +59,7 @@ public ImageListCell() { } if (event.isControlDown()) { OSUtil.openAndSelectedFile(getItem().getPath()); - }else { + } else { OSUtil.showDoc(getItem().getPath()); } event.consume(); @@ -129,7 +127,7 @@ public String toString(ImageInfo object) { ImageInfo item = getItem(); String name = ""; if (item != null) { - name=item.getName(); + name = item.getName(); } return name; } @@ -137,7 +135,7 @@ public String toString(ImageInfo object) { @Override public ImageInfo fromString(String string) { ImageInfo item = getItem(); - Optional first = getListView().getItems().stream().filter(temp -> temp!=item && temp.getName().equals(string)).findFirst(); + Optional first = getListView().getItems().stream().filter(temp -> temp != item && temp.getName().equals(string)).findFirst(); if (first.isPresent()) { boolean b = new ConfirmationAlert("已存在同名图片.确定要修改吗").showAndGetResult(); if (b) { @@ -145,7 +143,7 @@ public ImageInfo fromString(String string) { item.setName(string); } } - }else { + } else { if (item != null) { item.setName(string); } @@ -153,15 +151,15 @@ public ImageInfo fromString(String string) { return item; } }); - MenuItem deleteBtn = new MenuItem(message("listCell.menu.delete"),getRegion("delete-region")); + MenuItem deleteBtn = new MenuItem(message("listCell.menu.delete"), getRegion("delete-region")); deleteBtn.setOnAction(event -> { getListView().getItems().remove(getItem()); }); - MenuItem editBtn = new MenuItem(message("listCell.menu.edit"),getRegion("edit-region")); + MenuItem editBtn = new MenuItem(message("listCell.menu.edit"), getRegion("edit-region")); editBtn.setOnAction(event -> { startEdit(); }); - setContextMenu(new ContextMenu(editBtn,deleteBtn)); + setContextMenu(new ContextMenu(editBtn, deleteBtn)); } private Region getRegion(String styleClass) { @@ -210,8 +208,4 @@ public void updateItem(ImageInfo item, boolean empty) { } } - @Subscribe - public void skinChangedHandler(SkinChangedEvent event) { - updateItem(getItem(), isEmpty()); - } } diff --git a/src/main/java/com/leewyatt/fxtools/uicontroller/ImageCutterPageController.java b/src/main/java/com/leewyatt/fxtools/uicontroller/ImageCutterPageController.java index 957e2ae..b1f5529 100644 --- a/src/main/java/com/leewyatt/fxtools/uicontroller/ImageCutterPageController.java +++ b/src/main/java/com/leewyatt/fxtools/uicontroller/ImageCutterPageController.java @@ -8,6 +8,7 @@ import com.leewyatt.fxtools.ui.alert.InformationAlert; import com.leewyatt.fxtools.ui.cells.ImageListCell; import com.leewyatt.fxtools.utils.ToolSettingsUtil; +import com.leewyatt.rxcontrols.pane.RXCarouselPane; import javafx.collections.ObservableList; import javafx.event.ActionEvent; import javafx.fxml.FXML; @@ -15,7 +16,6 @@ import javafx.scene.control.RadioButton; import javafx.scene.control.SelectionMode; import javafx.scene.control.ToggleGroup; -import javafx.scene.input.MouseEvent; import javafx.scene.layout.Pane; import javafx.scene.layout.StackPane; @@ -64,6 +64,8 @@ public class ImageCutterPageController extends ImageTaskController { @FXML private ToggleGroup sourceImageGroup; + + public ImageCutterPageController() { importEventType = ImageEventType.CUTTER_IMPORT; exportEventType = ImageEventType.CUTTER_EXPORT; diff --git a/src/main/java/com/leewyatt/fxtools/uicontroller/ImageFormatPageController.java b/src/main/java/com/leewyatt/fxtools/uicontroller/ImageFormatPageController.java index ff50802..63e8b60 100644 --- a/src/main/java/com/leewyatt/fxtools/uicontroller/ImageFormatPageController.java +++ b/src/main/java/com/leewyatt/fxtools/uicontroller/ImageFormatPageController.java @@ -10,7 +10,6 @@ import com.leewyatt.fxtools.ui.paintpicker.DoubleTextField; import com.leewyatt.fxtools.utils.ImageUtil; import com.leewyatt.fxtools.utils.ToolSettingsUtil; -import com.leewyatt.rxcontrols.pane.RXCarouselPane; import javafx.collections.ObservableList; import javafx.event.ActionEvent; import javafx.fxml.FXML; @@ -31,7 +30,7 @@ /** * @author LeeWyatt */ -public class ImageFormatPageController extends ImageTaskController{ +public class ImageFormatPageController extends ImageTaskController { @FXML private ResourceBundle resources; @@ -51,13 +50,8 @@ public class ImageFormatPageController extends ImageTaskController{ @FXML private Pane centerPane; - @FXML - private RXCarouselPane formatPage; - private DoubleTextField scaleField; - - public ImageFormatPageController() { EventBusUtil.getDefault().register(this); importEventType = ImageEventType.FORMAT_IMPORT; @@ -87,7 +81,7 @@ void initialize() { imageListView.setOnDragOver(this::onDragOverImage); imageListView.setEditable(true); - convertComboBox.getItems().addAll(ImageUtil.FORMAT_PNG, ImageUtil.FORMAT_JPG, ImageUtil.FORMAT_GIF,ImageUtil.FORMAT_BMP, ImageUtil.FORMAT_ICO); + convertComboBox.getItems().addAll(ImageUtil.FORMAT_PNG, ImageUtil.FORMAT_JPG, ImageUtil.FORMAT_GIF, ImageUtil.FORMAT_BMP, ImageUtil.FORMAT_ICO); convertComboBox.getSelectionModel().select(0); convertComboBox.getSelectionModel().selectedItemProperty().addListener((ob, ov, nv) -> qualityComboBox.setDisable(!ImageUtil.FORMAT_JPG.equals(nv)) @@ -96,7 +90,6 @@ void initialize() { qualityComboBox.getSelectionModel().select(0); } - @FXML void onConvertImageFormatAction(ActionEvent event) throws IOException { ObservableList items = imageListView.getItems(); diff --git a/src/main/java/com/leewyatt/fxtools/uicontroller/ImagePageController.java b/src/main/java/com/leewyatt/fxtools/uicontroller/ImagePageController.java index 51a2042..4368dce 100644 --- a/src/main/java/com/leewyatt/fxtools/uicontroller/ImagePageController.java +++ b/src/main/java/com/leewyatt/fxtools/uicontroller/ImagePageController.java @@ -56,4 +56,5 @@ public void pageJumpHandler(PageJumpEvent pageJumpEvent) { } + } diff --git a/src/main/java/com/leewyatt/fxtools/uicontroller/ImageTaskController.java b/src/main/java/com/leewyatt/fxtools/uicontroller/ImageTaskController.java index d2b7308..fa03ea1 100644 --- a/src/main/java/com/leewyatt/fxtools/uicontroller/ImageTaskController.java +++ b/src/main/java/com/leewyatt/fxtools/uicontroller/ImageTaskController.java @@ -11,8 +11,9 @@ import com.leewyatt.fxtools.ui.paintpicker.IntegerTextField; import com.leewyatt.fxtools.utils.AlphanumComparator; import com.leewyatt.fxtools.utils.ImageUtil; -import com.leewyatt.fxtools.utils.ToolSettingsUtil; import com.leewyatt.fxtools.utils.OSUtil; +import com.leewyatt.fxtools.utils.ToolSettingsUtil; +import com.leewyatt.rxcontrols.pane.RXCarouselPane; import javafx.application.Platform; import javafx.collections.ObservableList; import javafx.event.ActionEvent; @@ -58,6 +59,9 @@ public class ImageTaskController { @FXML protected MaskerPane maskerPane; + @FXML + private RXCarouselPane carouselPane; + protected IntegerTextField colNumField; protected String[] supportedExtensions; @@ -151,14 +155,17 @@ protected File chooseExportDir(int size) { protected void onDragDroppedImage(DragEvent event) { Dragboard db = event.getDragboard(); boolean success = false; + List result = null; if (db.hasFiles()) { List files = event.getDragboard().getFiles(); - files = files.stream().filter(this::isImageCompliantFormat).collect(Collectors.toList()); - startLoadImageService(files); + result = files.stream().filter(this::isImageCompliantFormat).collect(Collectors.toList()); success = true; } event.setDropCompleted(success); event.consume(); + if (result != null) { + startLoadImageService(result); + } } /** diff --git a/src/main/java/com/leewyatt/fxtools/uicontroller/MainPaneController.java b/src/main/java/com/leewyatt/fxtools/uicontroller/MainPaneController.java index 005d03b..1c3a941 100644 --- a/src/main/java/com/leewyatt/fxtools/uicontroller/MainPaneController.java +++ b/src/main/java/com/leewyatt/fxtools/uicontroller/MainPaneController.java @@ -149,6 +149,12 @@ void initialize() throws IOException { } carousel.setSelectedIndex(menuGroup.getToggles().indexOf(nv)); }); + if (OSUtil.getOS() != OSUtil.OS.WINDOWS) { + snapshotBtn.setManaged(false); + colorPickerBtn.setManaged(false); + snapshotBtn.setVisible(false); + colorPickerBtn.setVisible(false); + } } @FXML @@ -226,8 +232,6 @@ void onClickIvBtn(ActionEvent event) { contentPane.setClip(null); toggleBtn.setRotate(0); toggleBtn.setDisable(false); - carousel.getSubScene().getRoot().applyCss(); - carousel.getSubScene().getRoot().requestLayout(); }); tl.play(); diff --git a/src/main/java/com/leewyatt/fxtools/uicontroller/SvgPageController.java b/src/main/java/com/leewyatt/fxtools/uicontroller/SvgPageController.java index 1c2622e..b9582ed 100644 --- a/src/main/java/com/leewyatt/fxtools/uicontroller/SvgPageController.java +++ b/src/main/java/com/leewyatt/fxtools/uicontroller/SvgPageController.java @@ -167,6 +167,8 @@ private void initSvgPreviewPane() { svgRegion.setStyle(DEFAULT_BLACK_GROUND); svgRegion.setShape(svgPath); svgPreviewPane.getChildren().add(svgRegion); + svgPreviewPane.setOnDragDropped(this::onDragDroppedSvg); + svgPreviewPane.setOnDragOver(this::onDragOverSvg); svgPreviewPane.setOnScroll(event -> { if (!verifiedPath()) { return; @@ -184,17 +186,16 @@ private void initSvgPreviewPane() { regionContextMenu = createRegionContextMenu(); svgPreviewPane.setOnMousePressed(event -> { if (event.getButton() == MouseButton.PRIMARY) { + if (regionContextMenu.isShowing()) { + regionContextMenu.hide(); + } if (event.isControlDown() && lastFilePath != null) { openAndSelectedFile(lastFilePath); - event.consume(); - return; } - openSvgFile(); - event.consume(); - } - if (event.getButton() == MouseButton.SECONDARY) { + } else if (event.getButton() == MouseButton.SECONDARY) { regionContextMenu.show(svgPreviewPane, event.getScreenX(), event.getScreenY()); } + event.consume(); }); } @@ -208,18 +209,16 @@ private void initImagePreviewPane() { webViewContextMenu = createWebViewContextMenu(); imagePreviewPane.setOnMousePressed(event -> { if (event.getButton() == MouseButton.PRIMARY) { + if (webViewContextMenu.isShowing()) { + webViewContextMenu.hide(); + } if (event.isControlDown() && lastFilePath != null) { openAndSelectedFile(lastFilePath); - event.consume(); - return; } - openSvgFile(); - event.consume(); - } - if (event.getButton() == MouseButton.SECONDARY) { + } else if (event.getButton() == MouseButton.SECONDARY) { webViewContextMenu.show(imagePreviewPane, event.getScreenX(), event.getScreenY()); } - + event.consume(); }); } @@ -334,18 +333,22 @@ private void initCodeComboBox(PaintPicker paintPicker) { private void onDragDroppedSvg(DragEvent event) { Dragboard db = event.getDragboard(); boolean success = false; + File svgFile = null; if (db.hasFiles()) { List files = event.getDragboard().getFiles(); for (File file : files) { if (isSvgFile(file)) { - setXMLData(file); + svgFile = file; + success = true; break; } } - success = true; } event.setDropCompleted(success); event.consume(); + if (svgFile != null) { + setXMLData(svgFile); + } } void onDragOverSvg(DragEvent event) { @@ -398,18 +401,15 @@ private void heightChanged() { svgRegion.setMaxSize(newWidth * rate, newHeight * rate); reSelectedCodeCombobox(); } - private void widthChanged() { Bounds bounds = svgPath.getLayoutBounds(); - double regionWidth = svgRegion.getWidth(); - double regionHeight = svgRegion.getHeight(); - double scaleX = bounds.getWidth() / regionWidth; - double scaleY = bounds.getHeight() / regionHeight; + double width = bounds.getWidth(); + double height = bounds.getHeight(); double newWidth = widthFiled.getValue(); - double scale = newWidth / scaleX; - double newHeight = scaleY * scale; + double scale = newWidth / width; + double newHeight= height * scale; heightField.setText(newHeight + ""); - double rate = NumberUtil.computeScaleRate(scaleX, scaleY, 128); + double rate = NumberUtil.computeScaleRate(width, height, 128); svgRegion.setMaxSize(newWidth * rate, newHeight * rate); reSelectedCodeCombobox(); } diff --git a/src/main/resources/css/about-alert-dark.css b/src/main/resources/css/about-alert-dark.css index f35b081..625581b 100644 --- a/src/main/resources/css/about-alert-dark.css +++ b/src/main/resources/css/about-alert-dark.css @@ -145,4 +145,19 @@ } .url-label:hover { -fx-underline: true; +} +.donor-list-btn { + -fx-border-color:#75A4EB; + -fx-border-radius: 16px; + -fx-background-radius: 16px; + -fx-background-color: null; + -fx-font-size: 16px; +} +.donor-list-btn:hover { + -fx-background-color: rgba(232, 232, 232, 0.1);; +} + +.donor-list-btn:pressed { + -fx-background-color: rgba(255, 255, 255, 0.2); + -fx-text-fill:white; } \ No newline at end of file diff --git a/src/main/resources/css/about-alert-light.css b/src/main/resources/css/about-alert-light.css index a5258bf..e167c8c 100644 --- a/src/main/resources/css/about-alert-light.css +++ b/src/main/resources/css/about-alert-light.css @@ -141,4 +141,19 @@ } .url-label:hover { -fx-underline: true; +} + +.donor-list-btn { + -fx-border-color:#75A4EB; + -fx-border-radius: 16px; + -fx-background-radius: 16px; + -fx-background-color: null; + -fx-font-size: 16px; +} +.donor-list-btn:hover { + -fx-background-color: rgba(232, 232, 232, 0.8);; +} + +.donor-list-btn:pressed { + -fx-background-color: rgb(225, 225, 225);; } \ No newline at end of file diff --git a/src/main/resources/css/main-stage-dark.css b/src/main/resources/css/main-stage-dark.css index df6d323..70e6754 100644 --- a/src/main/resources/css/main-stage-dark.css +++ b/src/main/resources/css/main-stage-dark.css @@ -324,6 +324,10 @@ -fx-shape: "M4.6,0C3.3,0,2.3,1,2.3,2.3v27.4c0,1.3,1,2.3,2.3,2.3h25.1V0H4.6z M6.9,2.3v21.8H6.3c-0.6,0-1.2,0.1-1.7,0.4V2.3H6.9z M6.3,29.7c-0.9,0-1.7-0.8-1.7-1.7c0-0.9,0.8-1.7,1.7-1.7h21.2v3.4H6.3z M9.1,24.1V2.3h11.4v8L22.9,8l2.3,2.3v-8h2.3v21.8H9.1z"; } +#menu-item-css Region { + -fx-shape: "M10.8,11.2v0.7h-6c-0.2,0-0.3,0.1-0.3,0.3v7.7c0,0.2,0.1,0.3,0.3,0.3h6l-0.4,0.7h-7c-0.5,0-0.7-0.3-0.7-0.7V12 c0-0.5,0.3-0.7,0.7-0.7H10.8zM14.2,11.9c-0.2,0-0.3,0.1-0.3,0.3v3.1c0,0.2,0.1,0.3,0.3,0.3h5.2c0.5,0,0.8,0.2,0.8,0.7v3.8c0,0.5-0.3,0.7-0.8,0.7h-7 L12,20.2H18c0.2,0,0.3-0.1,0.3-0.3v-3.5c0-0.2-0.1-0.3-0.3-0.3h-5.2c-0.5,0-0.7-0.2-0.7-0.7V12c0-0.5,0.2-0.8,0.7-0.8h7.4v0.7 H14.2zM23.8,11.9c-0.2,0-0.3,0.1-0.3,0.3v3.1c0,0.2,0.1,0.3,0.3,0.3h5.2c0.5,0,0.8,0.2,0.8,0.7v3.8c0,0.5-0.3,0.7-0.8,0.7h-7 l-0.4-0.6h5.9c0.2,0,0.3-0.1,0.3-0.3v-3.5c0-0.2-0.1-0.3-0.3-0.3h-5.2c-0.5,0-0.7-0.2-0.7-0.7V12c0-0.5,0.2-0.8,0.7-0.8h7.4v0.7 H23.8zM10.8,11.2v0.7h-6c-0.2,0-0.3,0.1-0.3,0.3v7.7c0,0.2,0.1,0.3,0.3,0.3h6l-0.4,0.7h-7c-0.5,0-0.7-0.3-0.7-0.7 V12c0-0.5,0.3-0.7,0.7-0.7H10.8zM14.2,11.9c-0.2,0-0.3,0.1-0.3,0.3v3.1c0,0.2,0.1,0.3,0.3,0.3h5.2c0.5,0,0.8,0.2,0.8,0.7v3.8 c0,0.5-0.3,0.7-0.8,0.7h-7L12,20.2H18c0.2,0,0.3-0.1,0.3-0.3v-3.5c0-0.2-0.1-0.3-0.3-0.3h-5.2c-0.5,0-0.7-0.2-0.7-0.7V12 c0-0.5,0.2-0.8,0.7-0.8h7.4v0.7H14.2zM23.8,11.9c-0.2,0-0.3,0.1-0.3,0.3v3.1c0,0.2,0.1,0.3,0.3,0.3h5.2c0.5,0,0.8,0.2,0.8,0.7v3.8 c0,0.5-0.3,0.7-0.8,0.7h-7l-0.4-0.6h5.9c0.2,0,0.3-0.1,0.3-0.3v-3.5c0-0.2-0.1-0.3-0.3-0.3h-5.2c-0.5,0-0.7-0.2-0.7-0.7V12 c0-0.5,0.2-0.8,0.7-0.8h7.4v0.7H23.8z"; +} + #menu-item-settings Region { -fx-shape: "M3.7,8.9v14.1L16,30.1l12.3-7.1V8.9L16,1.9L3.7,8.9z M29.2,7.3c0.6,0.3,0.9,1,0.9,1.6v14.1 c0,0.7-0.4,1.3-0.9,1.6l-12.3,7.1c-0.6,0.3-1.3,0.3-1.9,0L2.8,24.7c-0.6-0.3-0.9-1-0.9-1.6V8.9c0-0.7,0.4-1.3,0.9-1.6l12.3-7.1 c0.6-0.3,1.3-0.3,1.9,0C16.9,0.3,29.2,7.3,29.2,7.3z M16,22.6c-3.6,0-6.6-2.9-6.6-6.6c0-3.6,3-6.6,6.6-6.6c0,0,0,0,0,0 c3.6,0,6.6,3,6.6,6.6C22.6,19.6,19.6,22.6,16,22.6z M16,20.7c2.6,0,4.7-2.1,4.7-4.7s-2.1-4.7-4.7-4.7s-4.7,2.1-4.7,4.7 S13.4,20.7,16,20.7z"; } diff --git a/src/main/resources/css/main-stage-light.css b/src/main/resources/css/main-stage-light.css index 64d701f..dfc1ba0 100644 --- a/src/main/resources/css/main-stage-light.css +++ b/src/main/resources/css/main-stage-light.css @@ -307,6 +307,10 @@ -fx-shape: "M4.6,0C3.3,0,2.3,1,2.3,2.3v27.4c0,1.3,1,2.3,2.3,2.3h25.1V0H4.6z M6.9,2.3v21.8H6.3c-0.6,0-1.2,0.1-1.7,0.4V2.3H6.9z M6.3,29.7c-0.9,0-1.7-0.8-1.7-1.7c0-0.9,0.8-1.7,1.7-1.7h21.2v3.4H6.3z M9.1,24.1V2.3h11.4v8L22.9,8l2.3,2.3v-8h2.3v21.8H9.1z"; } +#menu-item-css Region { + -fx-shape: "M10.8,11.2v0.7h-6c-0.2,0-0.3,0.1-0.3,0.3v7.7c0,0.2,0.1,0.3,0.3,0.3h6l-0.4,0.7h-7c-0.5,0-0.7-0.3-0.7-0.7V12 c0-0.5,0.3-0.7,0.7-0.7H10.8zM14.2,11.9c-0.2,0-0.3,0.1-0.3,0.3v3.1c0,0.2,0.1,0.3,0.3,0.3h5.2c0.5,0,0.8,0.2,0.8,0.7v3.8c0,0.5-0.3,0.7-0.8,0.7h-7 L12,20.2H18c0.2,0,0.3-0.1,0.3-0.3v-3.5c0-0.2-0.1-0.3-0.3-0.3h-5.2c-0.5,0-0.7-0.2-0.7-0.7V12c0-0.5,0.2-0.8,0.7-0.8h7.4v0.7 H14.2zM23.8,11.9c-0.2,0-0.3,0.1-0.3,0.3v3.1c0,0.2,0.1,0.3,0.3,0.3h5.2c0.5,0,0.8,0.2,0.8,0.7v3.8c0,0.5-0.3,0.7-0.8,0.7h-7 l-0.4-0.6h5.9c0.2,0,0.3-0.1,0.3-0.3v-3.5c0-0.2-0.1-0.3-0.3-0.3h-5.2c-0.5,0-0.7-0.2-0.7-0.7V12c0-0.5,0.2-0.8,0.7-0.8h7.4v0.7 H23.8zM10.8,11.2v0.7h-6c-0.2,0-0.3,0.1-0.3,0.3v7.7c0,0.2,0.1,0.3,0.3,0.3h6l-0.4,0.7h-7c-0.5,0-0.7-0.3-0.7-0.7 V12c0-0.5,0.3-0.7,0.7-0.7H10.8zM14.2,11.9c-0.2,0-0.3,0.1-0.3,0.3v3.1c0,0.2,0.1,0.3,0.3,0.3h5.2c0.5,0,0.8,0.2,0.8,0.7v3.8 c0,0.5-0.3,0.7-0.8,0.7h-7L12,20.2H18c0.2,0,0.3-0.1,0.3-0.3v-3.5c0-0.2-0.1-0.3-0.3-0.3h-5.2c-0.5,0-0.7-0.2-0.7-0.7V12 c0-0.5,0.2-0.8,0.7-0.8h7.4v0.7H14.2zM23.8,11.9c-0.2,0-0.3,0.1-0.3,0.3v3.1c0,0.2,0.1,0.3,0.3,0.3h5.2c0.5,0,0.8,0.2,0.8,0.7v3.8 c0,0.5-0.3,0.7-0.8,0.7h-7l-0.4-0.6h5.9c0.2,0,0.3-0.1,0.3-0.3v-3.5c0-0.2-0.1-0.3-0.3-0.3h-5.2c-0.5,0-0.7-0.2-0.7-0.7V12 c0-0.5,0.2-0.8,0.7-0.8h7.4v0.7H23.8z"; +} + #menu-item-settings Region { -fx-shape: "M3.7,8.9v14.1L16,30.1l12.3-7.1V8.9L16,1.9L3.7,8.9z M29.2,7.3c0.6,0.3,0.9,1,0.9,1.6v14.1 c0,0.7-0.4,1.3-0.9,1.6l-12.3,7.1c-0.6,0.3-1.3,0.3-1.9,0L2.8,24.7c-0.6-0.3-0.9-1-0.9-1.6V8.9c0-0.7,0.4-1.3,0.9-1.6l12.3-7.1 c0.6-0.3,1.3-0.3,1.9,0C16.9,0.3,29.2,7.3,29.2,7.3z M16,22.6c-3.6,0-6.6-2.9-6.6-6.6c0-3.6,3-6.6,6.6-6.6c0,0,0,0,0,0 c3.6,0,6.6,3,6.6,6.6C22.6,19.6,19.6,22.6,16,22.6z M16,20.7c2.6,0,4.7-2.1,4.7-4.7s-2.1-4.7-4.7-4.7s-4.7,2.1-4.7,4.7 S13.4,20.7,16,20.7z"; } diff --git a/src/main/resources/fxml/css-page.fxml b/src/main/resources/fxml/css-page.fxml new file mode 100644 index 0000000..3a4ff9a --- /dev/null +++ b/src/main/resources/fxml/css-page.fxml @@ -0,0 +1,142 @@ + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
diff --git a/src/main/resources/fxml/donate.fxml b/src/main/resources/fxml/donate.fxml index 754f50a..c45a375 100644 --- a/src/main/resources/fxml/donate.fxml +++ b/src/main/resources/fxml/donate.fxml @@ -1,6 +1,7 @@ + @@ -8,7 +9,7 @@ - + @@ -31,9 +32,10 @@ - + +