Advertisement
PaleoCrafter

Untitled

Jun 8th, 2014
234
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Scala 0.87 KB | None | 0 0
  1. trait Event
  2.  
  3. trait Positioned extends Event {
  4.   private[reaction] val p: Point
  5.  
  6.   def pos: Point = p
  7. }
  8.  
  9. case class ComponentEvent(c: Component) extends Event
  10.  
  11. object MouseEvent {
  12.  
  13.   case class Click(p: Point, buttonCode: Int) extends MouseEvent(p) {
  14.  
  15.     def button = MouseButton(buttonCode)
  16.  
  17.   }
  18.  
  19.   case class Move(p: Point, lastPos: Point) extends MouseEvent(p)
  20.  
  21.   case class Drag(p: Point, lastPos: Point, lastButtonCode: Int, timeSinceClick: Long) extends MouseEvent(p) {
  22.  
  23.     def lastButton = MouseButton(lastButtonCode)
  24.  
  25.   }
  26.  
  27.   case class Scroll(p: Point, direction: Int) extends MouseEvent(p)
  28.  
  29. }
  30.  
  31. abstract class MouseEvent(p: Point) extends Event with Positioned
  32.  
  33. object KeyEvent {
  34.  
  35.   case class Type(private val char: Char, private val code: Int) extends KeyEvent(char, code)
  36.  
  37. }
  38.  
  39. abstract class KeyEvent(char: Char, code: Int) extends Event
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement