From: Matthijs Kooijman Date: Mon, 24 Aug 2009 19:20:23 +0000 (+0200) Subject: Add some comments and type signatures. X-Git-Url: https://git.stderr.nl/gitweb?a=commitdiff_plain;h=25a54fccc78a8c85e3196428c677e213c1eab23e;p=matthijs%2Fprojects%2Ffpprac.git Add some comments and type signatures. --- diff --git a/FPPrac.hs b/FPPrac.hs index 5da734e..14e8c4f 100644 --- a/FPPrac.hs +++ b/FPPrac.hs @@ -236,6 +236,8 @@ transKey _ _ = return () -} +-- | Handlers for various requests. +miscHandler, winHandler, gfxHandler :: IState -> Request -> Maybe (IO ()) {- miscHandler s@IS {..} (FRead fn ) = Just $ readFile fn >>= post s . FileContents fn miscHandler IS {..} (FWrite fn cnts) = Just $ writeFile fn cnts @@ -278,11 +280,16 @@ gfxHandler IS {..} (GfxDisc col rt) = Just $ ellipse buffer rt [penColor gfxHandler IS {..} (GfxFont st sz) = Just $ buffer `set` [ fontSize := sz, fontFace := st ] gfxHandler IS {..} (GfxPicture fd pt) = Just $ bitmapCreateFromFile fd >>= \bm -> drawBitmap buffer bm pt False [] >> bitmapGetSize bm >>= dirtyRect' sPanel pt -} +-- | Helper function for gfxHanlder +gfxHandler' :: Request -> Maybe (Cairo.Render ()) gfxHandler' (GfxText col (Point x y) st) = Just $ do + -- Set the source color, move to the requested position and draw the + -- text setSourceColor col Cairo.moveTo (fromIntegral x) (fromIntegral y) Cairo.showText st gfxHandler' GfxClear = Just $ do + -- Set the source to white and paint the entire surface with it Cairo.setSourceRGB 1 1 1 Cairo.paint gfxHandler' _ = Nothing