diff --git a/.gitignore b/.gitignore index e976676..db8bd3d 100755 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,6 @@ +# Conveyor +output + # Created by https://www.toptal.com/developers/gitignore/api/maven,linux,eclipse,windows,intellij+all,grunt,node # Edit at https://www.toptal.com/developers/gitignore?templates=maven,linux,eclipse,windows,intellij+all,grunt,node @@ -367,4 +370,3 @@ $RECYCLE.BIN/ /node /node_modules - diff --git a/README.md b/README.md index 025ae82..99b84b0 100644 --- a/README.md +++ b/README.md @@ -7,6 +7,10 @@ JavaFX CSS theme collection plus additional controls. It's inspired by [FlatLaf] ![primer_light](./.screenshots/primer_light.png) ![primer_dark](./.screenshots/primer_dark.png) +## Try it out + +Grab a **[self-updating download of the Sampler app](https://downloads.hydraulic.dev/atlantafx/sampler/download.html)** for Windows, macOS and Linux, packaged with [Conveyor](https://www.hydraulic.software). + ## Installing **Requirements:** JavaFX 17+ (because of `data-url` support). diff --git a/conveyor.conf b/conveyor.conf new file mode 100644 index 0000000..c10fdb1 --- /dev/null +++ b/conveyor.conf @@ -0,0 +1,41 @@ +// Before packaging do the build like this: +// +// mvn install -pl styles +// mvn install -pl base +// mvn prepare-package jar:jar -pl sampler + +// Use a vanilla Java 17 build, latest as of packaging. +include required("/stdlib/jdk/17/openjdk.conf") +// Import JavaFX JMODs. +include required("/stdlib/jvm/javafx/from-jmods.conf") +// Small tweaks e.g. enabling proxy detection (https://conveyor.hydraulic.dev/2/stdlib/jvm-clients/) +include required("/stdlib/jvm/enhancements/client/v1.conf") + +javafx.version = 18.0.2 + +app { + display-name = AtlantaFX Sampler + fsname = atlantafx-sampler + + // Not allowed to have versions ending in -SNAPSHOT + version = 0.1 + + // Open source projects use Conveyor for free. + vcs-url = github.com/mkpaz/atlantafx + + // Import the JARs. + inputs += sampler/target/dependencies + + // Linux/macOS want rounded icons, Windows wants square. + icons = "sampler/icons/icon-rounded-*.png" + windows.icons = "sampler/icons/icon-square-*.png" + + jvm { + gui.main-class = atlantafx.sampler.Launcher + modules = [ java.logging, jdk.localedata, java.desktop, javafx.controls, javafx.swing, javafx.web ] + } + + site.base-url = downloads.hydraulic.dev/atlantafx/sampler +} + +conveyor.compatibility-level = 2 diff --git a/sampler/icons/icon-rounded-1024.png b/sampler/icons/icon-rounded-1024.png new file mode 100644 index 0000000..dfb1e66 Binary files /dev/null and b/sampler/icons/icon-rounded-1024.png differ diff --git a/sampler/icons/icon-rounded-128.png b/sampler/icons/icon-rounded-128.png new file mode 100644 index 0000000..17b0dbc Binary files /dev/null and b/sampler/icons/icon-rounded-128.png differ diff --git a/sampler/icons/icon-rounded-16.png b/sampler/icons/icon-rounded-16.png new file mode 100644 index 0000000..f243661 Binary files /dev/null and b/sampler/icons/icon-rounded-16.png differ diff --git a/sampler/icons/icon-rounded-256.png b/sampler/icons/icon-rounded-256.png new file mode 100644 index 0000000..bfbac85 Binary files /dev/null and b/sampler/icons/icon-rounded-256.png differ diff --git a/sampler/icons/icon-rounded-32.png b/sampler/icons/icon-rounded-32.png new file mode 100644 index 0000000..cbdb8e0 Binary files /dev/null and b/sampler/icons/icon-rounded-32.png differ diff --git a/sampler/icons/icon-rounded-44.png b/sampler/icons/icon-rounded-44.png new file mode 100644 index 0000000..67abbde Binary files /dev/null and b/sampler/icons/icon-rounded-44.png differ diff --git a/sampler/icons/icon-rounded-512.png b/sampler/icons/icon-rounded-512.png new file mode 100644 index 0000000..c5a1452 Binary files /dev/null and b/sampler/icons/icon-rounded-512.png differ diff --git a/sampler/icons/icon-rounded-64.png b/sampler/icons/icon-rounded-64.png new file mode 100644 index 0000000..9c5867c Binary files /dev/null and b/sampler/icons/icon-rounded-64.png differ diff --git a/sampler/icons/icon-rounded.svg b/sampler/icons/icon-rounded.svg new file mode 100644 index 0000000..d68a3d5 --- /dev/null +++ b/sampler/icons/icon-rounded.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AF + + + + diff --git a/sampler/icons/icon-square-1024.png b/sampler/icons/icon-square-1024.png new file mode 100644 index 0000000..d21d8c9 Binary files /dev/null and b/sampler/icons/icon-square-1024.png differ diff --git a/sampler/icons/icon-square-128.png b/sampler/icons/icon-square-128.png new file mode 100644 index 0000000..421c822 Binary files /dev/null and b/sampler/icons/icon-square-128.png differ diff --git a/sampler/icons/icon-square-16.png b/sampler/icons/icon-square-16.png new file mode 100644 index 0000000..6101528 Binary files /dev/null and b/sampler/icons/icon-square-16.png differ diff --git a/sampler/icons/icon-square-256.png b/sampler/icons/icon-square-256.png new file mode 100644 index 0000000..1e3007d Binary files /dev/null and b/sampler/icons/icon-square-256.png differ diff --git a/sampler/icons/icon-square-32.png b/sampler/icons/icon-square-32.png new file mode 100644 index 0000000..fab1658 Binary files /dev/null and b/sampler/icons/icon-square-32.png differ diff --git a/sampler/icons/icon-square-44.png b/sampler/icons/icon-square-44.png new file mode 100644 index 0000000..05351e4 Binary files /dev/null and b/sampler/icons/icon-square-44.png differ diff --git a/sampler/icons/icon-square-512.png b/sampler/icons/icon-square-512.png new file mode 100644 index 0000000..67b8212 Binary files /dev/null and b/sampler/icons/icon-square-512.png differ diff --git a/sampler/icons/icon-square-64.png b/sampler/icons/icon-square-64.png new file mode 100644 index 0000000..5bc2dc0 Binary files /dev/null and b/sampler/icons/icon-square-64.png differ diff --git a/sampler/icons/icon-square.svg b/sampler/icons/icon-square.svg new file mode 100644 index 0000000..220d100 --- /dev/null +++ b/sampler/icons/icon-square.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AF + + + + diff --git a/sampler/src/main/java/atlantafx/sampler/Launcher.java b/sampler/src/main/java/atlantafx/sampler/Launcher.java index d6a7089..ab91fab 100755 --- a/sampler/src/main/java/atlantafx/sampler/Launcher.java +++ b/sampler/src/main/java/atlantafx/sampler/Launcher.java @@ -47,8 +47,6 @@ public class Launcher extends Application { } loadApplicationProperties(); - var appIcon = new Image(Resources.getResourceAsStream("assets/app-icon.png")); - var root = new ApplicationWindow(); var scene = new Scene(root, 1200, 768); @@ -63,7 +61,7 @@ public class Launcher extends Application { stage.setScene(scene); stage.setTitle(System.getProperty("app.name")); - stage.getIcons().add(appIcon); + loadIcons(stage); stage.setResizable(true); stage.setOnCloseRequest(t -> Platform.exit()); @@ -73,6 +71,15 @@ public class Launcher extends Application { }); } + private static void loadIcons(Stage stage) { + int iconSize = 16; + while (iconSize <= 1024) { + // We could use the square icons for Windows here. + stage.getIcons().add(new Image(Resources.getResourceAsStream("assets/icon-rounded-" + iconSize + ".png"))); + iconSize *= 2; + } + } + private void loadApplicationProperties() { try { var properties = new Properties();