diff options
Diffstat (limited to 'src/Waylean.lean')
| -rw-r--r-- | src/Waylean.lean | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/src/Waylean.lean b/src/Waylean.lean index d05df11..28c5f58 100644 --- a/src/Waylean.lean +++ b/src/Waylean.lean @@ -1,5 +1,20 @@ import Wayland -def main : IO Unit := do +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 - IO.println s!"Hello, world! Version: {← disp.getVersion}" + 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 |
