summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/Waylean.lean19
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