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

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

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