usrState <- newIORef initialState
postponed <- newIORef (GfxText (rgb 0 0 0) (pt 50 50) "foo" : GfxClear :initialRequests)
let state = IS { usrProg = eventHandler, .. }
- runGUI {-(sz windowWidth windowHeight) -}state
+ runGUI windowWidth windowHeight state
-runGUI :: {-Size ->-} IState -> IO ()
-runGUI s = do
+runGUI :: Int -> Int -> IState -> IO ()
+runGUI w h s = do
-- Init GTK.
Gtk.initGUI
-- it is closed.
window <- Gtk.windowNew
Gtk.set window [ Gtk.containerBorderWidth := 10
- , Gtk.windowTitle := "FP Practicum" ]
+ , Gtk.windowTitle := "FP Practicum"
+ , Gtk.windowDefaultWidth := w
+ , Gtk.windowDefaultHeight := h
+ ]
Gtk.onDestroy window Gtk.mainQuit
- Gtk.on window Gtk.exposeEvent $ do
- --(w,h) <- Gtk.eventWindowSize
- dw <- EventM.eventWindow
- liftIO $ do
- Gtk.renderWithDrawable dw $ do
- --translate (w/2) (h/2)
- --scale (w/drawSide) (h/drawSide)
- Cairo.arc 100 100 50 0 (2*pi)
- Cairo.fill
- return True
-
-- Show the window and start the Gtk mainloop.
Gtk.widgetShowAll window
Gtk.mainGUI