summaryrefslogtreecommitdiff
path: root/src/swing
diff options
context:
space:
mode:
authoringoem <ingoem@gmail.com>2012-09-26 11:35:27 +0200
committeringoem <ingoem@gmail.com>2012-09-26 11:41:57 +0200
commit08ab007c5c97f153902c4ac58f87e30fbf7cf99f (patch)
treea185174cbbf5aa36e5665602d8e70ddd361efbe3 /src/swing
parentbdff881f8a15d4de0c0ff2aa2427f0d8244d2d42 (diff)
downloadscala-08ab007c5c97f153902c4ac58f87e30fbf7cf99f.tar.gz
scala-08ab007c5c97f153902c4ac58f87e30fbf7cf99f.tar.bz2
scala-08ab007c5c97f153902c4ac58f87e30fbf7cf99f.zip
Added a Swing ColorChooser wrapper
Diffstat (limited to 'src/swing')
-rw-r--r--src/swing/scala/swing/ColorChooser.scala45
-rw-r--r--src/swing/scala/swing/event/ColorChanged.scala14
2 files changed, 59 insertions, 0 deletions
diff --git a/src/swing/scala/swing/ColorChooser.scala b/src/swing/scala/swing/ColorChooser.scala
new file mode 100644
index 0000000000..9bd71e1df0
--- /dev/null
+++ b/src/swing/scala/swing/ColorChooser.scala
@@ -0,0 +1,45 @@
+/* __ *\
+** ________ ___ / / ___ Scala API **
+** / __/ __// _ | / / / _ | (c) 2007-2012, LAMP/EPFL **
+** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
+** /____/\___/_/ |_/____/_/ | | **
+** |/ **
+\* */
+
+
+
+package scala.swing
+
+import javax.swing.JColorChooser
+import event._
+
+/**
+ * Wrapper for JColorChooser. Publishes `ColorChanged` events, when the color selection changes.
+ *
+ * @author andy@hicks.net
+ * @author Ingo Maier
+ * @see javax.swing.JColorChooser
+ */
+object ColorChooser {
+ def showDialog(parent: Component, title: String, color: Color): scala.Option[Color] = {
+ toOption[Color](javax.swing.JColorChooser.showDialog(parent.peer, title, color))
+ }
+}
+
+class ColorChooser(color0: Color) extends Component {
+ def this() = this(java.awt.Color.white)
+
+ override lazy val peer: JColorChooser = new JColorChooser(color0) with SuperMixin
+
+ peer.getSelectionModel.addChangeListener(new javax.swing.event.ChangeListener {
+ def stateChanged(e: javax.swing.event.ChangeEvent) {
+ publish(ColorChanged(ColorChooser.this, peer.getColor))
+ }
+ })
+
+ def color: Color = peer.getColor
+ def color_=(c: Color) = peer.setColor(c)
+
+ def dragEnabled: Boolean = peer.getDragEnabled
+ def dragEnabled_=(b: Boolean) = peer.setDragEnabled(b)
+} \ No newline at end of file
diff --git a/src/swing/scala/swing/event/ColorChanged.scala b/src/swing/scala/swing/event/ColorChanged.scala
new file mode 100644
index 0000000000..44387aa864
--- /dev/null
+++ b/src/swing/scala/swing/event/ColorChanged.scala
@@ -0,0 +1,14 @@
+/* __ *\
+** ________ ___ / / ___ Scala API **
+** / __/ __// _ | / / / _ | (c) 2007-2011, LAMP/EPFL **
+** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
+** /____/\___/_/ |_/____/_/ | | **
+** |/ **
+\* */
+
+
+
+package scala.swing
+package event
+
+case class ColorChanged(source: Component, c: Color) extends ComponentEvent with SelectionEvent