summaryrefslogtreecommitdiff
path: root/src/Waylean.lean
blob: 28c5f5889074467b78ae4f8bd326e2f314d02e6e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import Wayland

partial def mainLoop (loop : EventLoop) : IO Unit := do
  match (← loop.poll) with
  | .none => return
  | .some msg => msg; mainLoop loop

partial def main : IO Unit := do
  let disp ← Display.new .none
  let loop ← EventLoop.new
  _ ← loop.addDisplay disp
  _ ← loop.addSignal 2 (do
    IO.println "Received SIGINT"
    loop.quit)
  let rec setUpTimer := loop.addTimer 500 (do
    IO.println "Timer tick"
    _ ← setUpTimer)
  _ ← setUpTimer
  disp.roundtrip
  mainLoop loop