summaryrefslogtreecommitdiff
path: root/examples/demos/src/main/scala/canvasapp/ScratchPad.scala
blob: cc3d7e03708f5b410910c581e59a4f91a111a34b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
package canvasapp


import org.scalajs.dom

import scala.scalajs.js.annotation.JSExport

@JSExport
object ScratchPad extends{
  @JSExport
  def main(canvas: dom.HTMLCanvasElement) = {
    /*setup*/
    val renderer = canvas.getContext("2d")
                         .asInstanceOf[dom.CanvasRenderingContext2D]

    canvas.width = canvas.parentElement.clientWidth
    canvas.height = canvas.parentElement.clientHeight

    renderer.fillStyle = "#f8f8f8"
    renderer.fillRect(0, 0, canvas.width, canvas.height)

    /*code*/
    renderer.fillStyle = "black"
    var down = false
    canvas.onmousedown = (e: dom.MouseEvent)=>{
      down = true
    }
    canvas.onmouseup = (e: dom.MouseEvent)=>{
      down = false
    }
    canvas.onmousemove = (e: dom.MouseEvent)=>{
      val rect = canvas.getBoundingClientRect()
      if (down) renderer.fillRect(
        e.clientX - rect.left,
        e.clientY - rect.top,
        10, 10
      )
    }
  }
}