Note that current development is on the develop branch, not master
There's now a [Google Group] (https://groups.google.com/group/seesaw-clj) for discussion and questions.
Seesaw: Clojure + UI
"killing CamelCase, proxy and reify, one class at a time"
Seesaw's experimental and subject to radical change
See [the Seesaw Wiki] (https://github.com/daveray/seesaw/wiki) for more detailed docs
Seesaw is a library/DSL for constructing user interfaces in Clojure. It happens to be built on Swing, but please don't hold that against it. It's an experiment to see what I can do to make user interface development funner in Clojure. It's kinda inspired by Shoes, Stuart Sierra's Swing posts, etc. clojure.contrib.swing-utils is useful, but minimal and still means a lot of "Java-in-Clojure" coding.
Here's how you use Seesaw with [Leiningen] (https://github.com/technomancy/leiningen)
lein as described and then:
$ lein new hello-seesaw $ cd hello-seesaw
Add Seesaw to
(defproject hello-seesaw "1.0.0-SNAPSHOT" :description "FIXME: write" :dependencies [[org.clojure/clojure "1.2.0"] [org.clojure/clojure-contrib "1.2.0"] [seesaw "x.y.z"]])
Replace the Seesaw version with whatever the latest version tag is. See below!
Now edit the generated
(ns hello-seesaw.core (:use seesaw.core)) (defn -main [& args] (invoke-later (frame :title "Hello", :content "Hello, Seesaw", :on-close :exit)))
Now run it:
$ lein run -m hello-seesaw.core
NOTE: As mentioned above, Seesaw is experimental and changing daily. Thus, there's a good chance that what's on clojars and what's written here are out of sync. Here's how you can run against the bleeding edge of Seesaw:
- Clone Seesaw from github. Fork if you like. Switch to the "develop" branch.
- In your Seesaw checkout, run
lein installto build it
- In your project's
project.cljfile, change the Seesaw version to
X.Y.Z-SNAPSHOTto match whatever's in Seesaw's
- Move along
- Selectors - select widgets by class, data, etc.
- Investigate how a framework like [cljque] (https://github.com/stuartsierra/cljque) might fit in with Seesaw
Copyright (C) 2011 Dave Ray
Distributed under the Eclipse Public License, the same as Clojure.