sciss / lucreswing

Contributors Wanted GNU Affero General Public License v3.0 GitHub

Swing support for Lucre, and common views. Mirror of https://codeberg.org/sciss/LucreSwing

LucreSwing

Build Status Maven Central

statement

LucreSwing is a Scala library which bridges between Swing (through the Desktop project) and Lucre. It is (C)opyright 2014–2023 by Hanns Holger Rutz. All rights reserved. The project is released under the GNU Affero General Public License v3+ and comes with absolutely no warranties. To contact the author, send an e-mail to contact at sciss.de.

requirements / building

This project builds with sbt against Scala 2.12, 2.13, Dotty (JVM) and Scala 2.13 (JS). The last version to support Scala 2.11 was 1.17.2.

To use the library in your project:

"de.sciss" %% "lucre-swing" % v

The current version v is "2.10.1".

Note that you cannot compile with the combination of Dotty and JDK 9 or greater, because the -release scalac option is not supported.

contributing

Please see the file CONTRIBUTING.md

notes

The desktop application's widgets in package de.sciss.lucre.swing are not available on Scala.js. Instead, the graph construction element in de.sciss.lucre.swing.graph are (with few unsupported exceptions) available both for the JVM and for JS, making it thus possible to render the Widget contents both on the desktop and inside the browser.

We have yet to determine how to "export" a widget to Scala.js. For an example and minimum CSS, see SoundProcessesJSTest.

The following graph elements are currently not supported in Scala.js:

  • DropTarget
  • PathField (the peer still uses File instead of URI)

publishing releases

There is a bug in sbt-crossproject, when running sbt +publishSigned we end up with error "Repository for publishing is not specified." Instead, sbt has to be run with sbt +rootJVM/publishSigned +rootJS/publishSigned.

todo