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
| commit 47: | 8eb972bddab7 |
| parent 46: | b1acaf1d3c50 |
| branch: | default |
Added func 2 traverse event conversion
Changed (Δ800 bytes):
raw changeset »
src/com/coconut_palm_software/xscalawt/XScalaWT.scala (18 lines added, 2 lines removed)
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 |
