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
|