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 @@
+
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();