djo / XScalaWT (http://coconut-palm-software.com/the_new_visual_editor/doku.php)

XScalaWT is the merging of XSWT and Glimmer using Scala as a source language rather than XML. The result is a strongly-typed DSL for creating SWT GUIs using Scala. License: Eclipse Public License

Clone this repository (size: 70.3 KB): HTTPS / SSH
$ hg clone http://bitbucket.org/djo/xscalawt/
commit 47: 8eb972bddab7
parent 46: b1acaf1d3c50
branch: default
Added func 2 traverse event conversion
djo
12 months ago

Changed (Δ800 bytes):

Up to file-list src/com/coconut_palm_software/xscalawt/XScalaWT.scala:

@@ -345,9 +345,8 @@ object XScalaWT {
345
345
  
346
346
  // ModifyListener-----------------------------------------------------------------
347
347
  
348
  def addModifyListener[T <: {def addModifyListener(l : ModifyListener)}](l : ModifyListener)(subject : T) = {
348
  def addModifyListener[T <: {def addModifyListener(l : ModifyListener)}](l : ModifyListener)(subject : T) = 
349
349
    subject.addModifyListener(l)
350
  }
351
350
  
352
351
  private class ModifyListenerForwarder(l : (ModifyEvent => Unit)) extends ModifyListener {
353
352
    override def modifyText(e : ModifyEvent) = l(e)
@@ -360,6 +359,23 @@ object XScalaWT {
360
359
    override def modifyText(e : ModifyEvent) = func.apply(e)
361
360
  }
362
361
  
362
  // TraverseListener--------------------------------------------------------------
363
  
364
  def addTraverseListener[T <: {def addTraverseListener(l : TraverseListener)}](l : TraverseListener)(subject : T) = {
365
    subject.addTraverseListener(l)
366
  }
367
  
368
  private class TraverseListenerForwarder(l : (TraverseEvent => Unit)) extends TraverseListener {
369
    override def keyTraversed(e : TraverseEvent) = l(e)
370
  }
371
  
372
  implicit def modifyFn2addTraverseListener[T <: {def addTraverseListener(l : TraverseListener)}](l : (TraverseEvent => Unit))(subject : T) =
373
    subject.addTraverseListener(new TraverseListenerForwarder(l))
374
  
375
  implicit def func2TraverseListener[T <: { def apply(e : TraverseEvent) }](func : T) = new TraverseListener() {
376
    override def keyTraversed(e : TraverseEvent) = func.apply(e)
377
  }
378
  
363
379
  // Convenience methods
364
380
  implicit def int2Color(swtColorConstant : Int) = Display.getDefault.getSystemColor(swtColorConstant)
365
381
  def display = Display.getDefault