(+) change mode e <-> b
This commit is contained in:
		| @@ -1,22 +1,28 @@ | ||||
| module Canvas where | ||||
|  | ||||
| import Graphics.Gloss.Data.Picture ( Picture, pictures ) | ||||
| import Graphics.Gloss.Interface.IO.Interact ( Event ) | ||||
| import Graphics.Gloss.Data.Picture ( Picture (Text), pictures ) | ||||
| import Graphics.Gloss.Interface.IO.Interact ( Event (EventKey), KeyState (Down), Key (Char) ) | ||||
|  | ||||
| newtype Canvas = Canvas { | ||||
|     items ::    [Picture] | ||||
| data Canvas = Canvas { | ||||
|     items   ::  [Picture], | ||||
|     mode    ::  Mode    | ||||
| } | ||||
|  | ||||
| data Mode = Brush | Eraser deriving (Eq, Show) | ||||
|  | ||||
| initial :: Canvas | ||||
| initial = Canvas { | ||||
|     items =     [] | ||||
|     items   =   []  | ||||
| ,   mode    =   Brush | ||||
| } | ||||
|  | ||||
| render :: Canvas -> Picture | ||||
| render canvas = pictures ( items canvas )  | ||||
| render canvas = pictures ( Text ( show (mode canvas)) : items canvas )  | ||||
|  | ||||
| handle :: Event -> Canvas -> Canvas | ||||
| handle _ _ = initial | ||||
| handle (EventKey (Char 'b') Down _ _ ) canv = canv { mode = Brush } | ||||
| handle (EventKey (Char 'e') Down _ _ ) canv = canv { mode = Eraser } | ||||
| handle _ canv = canv | ||||
|  | ||||
| update :: Float -> Canvas -> Canvas | ||||
| update _ _ = initial  | ||||
| update _ canv = canv  | ||||
		Reference in New Issue
	
	Block a user