(+) at least it's drawing
This commit is contained in:
parent
f63e4697f1
commit
e21fab1c49
|
@ -1,6 +1,6 @@
|
|||
module Canvas where
|
||||
|
||||
import Graphics.Gloss.Data.Picture ( Picture (Text), pictures, scale, translate )
|
||||
import Graphics.Gloss.Data.Picture ( Picture (Text, Blank), pictures, scale, translate, rectangleSolid, circle )
|
||||
import Graphics.Gloss.Interface.IO.Interact ( Event (EventKey, EventMotion), KeyState (Down, Up), Key (Char, MouseButton), MouseButton (LeftButton) )
|
||||
|
||||
type Dimension = (Int, Int)
|
||||
|
@ -17,10 +17,18 @@ data Canvas = Canvas {
|
|||
|
||||
data Mode = Brush | Eraser deriving (Eq, Show)
|
||||
|
||||
newtype Tip = Shape TipSize
|
||||
data Tip = Tip {
|
||||
shape :: Shape
|
||||
, size :: TipSize
|
||||
}
|
||||
|
||||
data Shape = Rectangular | Circular
|
||||
|
||||
nextPicture :: Canvas -> Picture
|
||||
nextPicture (Canvas _ Brush True position (Tip Rectangular size)) = uncurry translate position $ rectangleSolid size size
|
||||
nextPicture (Canvas _ Brush True position (Tip Circular size)) = uncurry translate position $ circle size
|
||||
nextPicture _ = Blank
|
||||
|
||||
windowSize :: Dimension
|
||||
windowSize = (500, 500)
|
||||
|
||||
|
@ -49,5 +57,5 @@ handle (EventMotion (x, y)) canv = canv { pos = (x, y)}
|
|||
handle _ canv = canv
|
||||
|
||||
update :: Float -> Canvas -> Canvas
|
||||
update _ canv = canv
|
||||
update _ canv = canv { items = nextPicture canv : items canv }
|
||||
|
||||
|
|
|
@ -16,5 +16,5 @@ initial = Canvas {
|
|||
, mode = Brush
|
||||
, drawing = False
|
||||
, pos = (0, 0)
|
||||
, tip = Rectangular 3
|
||||
, tip = Tip Rectangular 3
|
||||
}
|
Loading…
Reference in New Issue