summaryrefslogtreecommitdiff
path: root/src/ch3
diff options
context:
space:
mode:
Diffstat (limited to 'src/ch3')
-rw-r--r--src/ch3/Main.hs4
-rw-r--r--src/ch3/SimpleGraphics.hs24
2 files changed, 28 insertions, 0 deletions
diff --git a/src/ch3/Main.hs b/src/ch3/Main.hs
new file mode 100644
index 0000000..217f50d
--- /dev/null
+++ b/src/ch3/Main.hs
@@ -0,0 +1,4 @@
+import SimpleGraphics
+
+main :: IO ()
+main = main0
diff --git a/src/ch3/SimpleGraphics.hs b/src/ch3/SimpleGraphics.hs
new file mode 100644
index 0000000..5e160a7
--- /dev/null
+++ b/src/ch3/SimpleGraphics.hs
@@ -0,0 +1,24 @@
+module SimpleGraphics where
+
+import Graphics.SOE
+
+main0 = runGraphics (
+ do w <- openWindow "My First Graphics Program" (300,300)
+ drawInWindow w (text (100,200) "HelloGraphicsWolrd")
+ spaceClose w
+ )
+
+spaceClose :: Window -> IO ()
+spaceClose w = do k <- getKey w
+ if k == ' ' then closeWindow w
+ else spaceClose w
+getLine :: IO String
+getLine = do c <- getChar
+ if c == '\n' then return ""
+ else do v <- SimpleGraphics.getLine
+ return (c:v)
+
+putStr :: String -> IO ()
+putStr [] = return ()
+putStr (x:xs) = do putChar x
+ SimpleGraphics.putStr xs